summaryrefslogtreecommitdiffhomepage
path: root/internal/llm/models
diff options
context:
space:
mode:
authorKujtim Hoxha <[email protected]>2025-05-01 14:17:33 +0200
committeradamdottv <[email protected]>2025-05-01 11:08:26 -0500
commita61b2026eb97a1974a23aa3e5b154b1b0864edf3 (patch)
treeb767be32072e9cd3eca295d3f11d2fe0e33b9c39 /internal/llm/models
parent69ade34c2ccdadb44fdaac4434f2ec8a36e430a5 (diff)
downloadopencode-a61b2026eb97a1974a23aa3e5b154b1b0864edf3.tar.gz
opencode-a61b2026eb97a1974a23aa3e5b154b1b0864edf3.zip
add xai support (#135)
Diffstat (limited to 'internal/llm/models')
-rw-r--r--internal/llm/models/models.go1
-rw-r--r--internal/llm/models/xai.go61
2 files changed, 62 insertions, 0 deletions
diff --git a/internal/llm/models/models.go b/internal/llm/models/models.go
index fd0a2b41b..1e1cbde50 100644
--- a/internal/llm/models/models.go
+++ b/internal/llm/models/models.go
@@ -89,4 +89,5 @@ func init() {
maps.Copy(SupportedModels, GroqModels)
maps.Copy(SupportedModels, AzureModels)
maps.Copy(SupportedModels, OpenRouterModels)
+ maps.Copy(SupportedModels, XAIModels)
}
diff --git a/internal/llm/models/xai.go b/internal/llm/models/xai.go
new file mode 100644
index 000000000..00caf3b89
--- /dev/null
+++ b/internal/llm/models/xai.go
@@ -0,0 +1,61 @@
+package models
+
+const (
+ ProviderXAI ModelProvider = "xai"
+
+ XAIGrok3Beta ModelID = "grok-3-beta"
+ XAIGrok3MiniBeta ModelID = "grok-3-mini-beta"
+ XAIGrok3FastBeta ModelID = "grok-3-fast-beta"
+ XAiGrok3MiniFastBeta ModelID = "grok-3-mini-fast-beta"
+)
+
+var XAIModels = map[ModelID]Model{
+ XAIGrok3Beta: {
+ ID: XAIGrok3Beta,
+ Name: "Grok3 Beta",
+ Provider: ProviderXAI,
+ APIModel: "grok-3-beta",
+ CostPer1MIn: 3.0,
+ CostPer1MInCached: 0,
+ CostPer1MOut: 15,
+ CostPer1MOutCached: 0,
+ ContextWindow: 131_072,
+ DefaultMaxTokens: 20_000,
+ },
+ XAIGrok3MiniBeta: {
+ ID: XAIGrok3MiniBeta,
+ Name: "Grok3 Mini Beta",
+ Provider: ProviderXAI,
+ APIModel: "grok-3-mini-beta",
+ CostPer1MIn: 0.3,
+ CostPer1MInCached: 0,
+ CostPer1MOut: 0.5,
+ CostPer1MOutCached: 0,
+ ContextWindow: 131_072,
+ DefaultMaxTokens: 20_000,
+ },
+ XAIGrok3FastBeta: {
+ ID: XAIGrok3FastBeta,
+ Name: "Grok3 Fast Beta",
+ Provider: ProviderXAI,
+ APIModel: "grok-3-fast-beta",
+ CostPer1MIn: 5,
+ CostPer1MInCached: 0,
+ CostPer1MOut: 25,
+ CostPer1MOutCached: 0,
+ ContextWindow: 131_072,
+ DefaultMaxTokens: 20_000,
+ },
+ XAiGrok3MiniFastBeta: {
+ ID: XAiGrok3MiniFastBeta,
+ Name: "Grok3 Mini Fast Beta",
+ Provider: ProviderXAI,
+ APIModel: "grok-3-mini-fast-beta",
+ CostPer1MIn: 0.6,
+ CostPer1MInCached: 0,
+ CostPer1MOut: 4.0,
+ CostPer1MOutCached: 0,
+ ContextWindow: 131_072,
+ DefaultMaxTokens: 20_000,
+ },
+}