diff options
Diffstat (limited to 'internal/llm/models')
| -rw-r--r-- | internal/llm/models/anthropic.go | 97 | ||||
| -rw-r--r-- | internal/llm/models/azure.go | 168 | ||||
| -rw-r--r-- | internal/llm/models/bedrock.go | 25 | ||||
| -rw-r--r-- | internal/llm/models/gemini.go | 67 | ||||
| -rw-r--r-- | internal/llm/models/groq.go | 89 | ||||
| -rw-r--r-- | internal/llm/models/models.go | 54 | ||||
| -rw-r--r-- | internal/llm/models/openai.go | 196 | ||||
| -rw-r--r-- | internal/llm/models/openrouter.go | 327 | ||||
| -rw-r--r-- | internal/llm/models/vertexai.go | 38 | ||||
| -rw-r--r-- | internal/llm/models/xai.go | 61 |
10 files changed, 0 insertions, 1122 deletions
diff --git a/internal/llm/models/anthropic.go b/internal/llm/models/anthropic.go deleted file mode 100644 index f67a74842..000000000 --- a/internal/llm/models/anthropic.go +++ /dev/null @@ -1,97 +0,0 @@ -package models - -const ( - ProviderAnthropic ModelProvider = "anthropic" - - // Models - Claude35Sonnet ModelID = "claude-3.5-sonnet" - Claude3Haiku ModelID = "claude-3-haiku" - Claude37Sonnet ModelID = "claude-3.7-sonnet" - Claude35Haiku ModelID = "claude-3.5-haiku" - Claude3Opus ModelID = "claude-3-opus" - Claude4Sonnet ModelID = "claude-4-sonnet" -) - -// https://docs.anthropic.com/en/docs/about-claude/models/all-models -var AnthropicModels = map[ModelID]Model{ - Claude35Sonnet: { - ID: Claude35Sonnet, - Name: "Claude 3.5 Sonnet", - Provider: ProviderAnthropic, - APIModel: "claude-3-5-sonnet-latest", - CostPer1MIn: 3.0, - CostPer1MInCached: 3.75, - CostPer1MOutCached: 0.30, - CostPer1MOut: 15.0, - ContextWindow: 200000, - DefaultMaxTokens: 5000, - SupportsAttachments: true, - }, - Claude3Haiku: { - ID: Claude3Haiku, - Name: "Claude 3 Haiku", - Provider: ProviderAnthropic, - APIModel: "claude-3-haiku-20240307", // doesn't support "-latest" - CostPer1MIn: 0.25, - CostPer1MInCached: 0.30, - CostPer1MOutCached: 0.03, - CostPer1MOut: 1.25, - ContextWindow: 200000, - DefaultMaxTokens: 4096, - SupportsAttachments: true, - }, - Claude37Sonnet: { - ID: Claude37Sonnet, - Name: "Claude 3.7 Sonnet", - Provider: ProviderAnthropic, - APIModel: "claude-3-7-sonnet-latest", - CostPer1MIn: 3.0, - CostPer1MInCached: 3.75, - CostPer1MOutCached: 0.30, - CostPer1MOut: 15.0, - ContextWindow: 200000, - DefaultMaxTokens: 50000, - CanReason: true, - SupportsAttachments: true, - }, - Claude4Sonnet: { - ID: Claude4Sonnet, - Name: "Claude 4 Sonnet", - Provider: ProviderAnthropic, - APIModel: "claude-sonnet-4-20250514", - CostPer1MIn: 3.0, - CostPer1MInCached: 3.75, - CostPer1MOutCached: 0.30, - CostPer1MOut: 15.0, - ContextWindow: 200000, - DefaultMaxTokens: 50000, - CanReason: true, - SupportsAttachments: true, - }, - Claude35Haiku: { - ID: Claude35Haiku, - Name: "Claude 3.5 Haiku", - Provider: ProviderAnthropic, - APIModel: "claude-3-5-haiku-latest", - CostPer1MIn: 0.80, - CostPer1MInCached: 1.0, - CostPer1MOutCached: 0.08, - CostPer1MOut: 4.0, - ContextWindow: 200000, - DefaultMaxTokens: 4096, - SupportsAttachments: true, - }, - Claude3Opus: { - ID: Claude3Opus, - Name: "Claude 3 Opus", - Provider: ProviderAnthropic, - APIModel: "claude-3-opus-latest", - CostPer1MIn: 15.0, - CostPer1MInCached: 18.75, - CostPer1MOutCached: 1.50, - CostPer1MOut: 75.0, - ContextWindow: 200000, - DefaultMaxTokens: 4096, - SupportsAttachments: true, - }, -} diff --git a/internal/llm/models/azure.go b/internal/llm/models/azure.go deleted file mode 100644 index 416597302..000000000 --- a/internal/llm/models/azure.go +++ /dev/null @@ -1,168 +0,0 @@ -package models - -const ProviderAzure ModelProvider = "azure" - -const ( - AzureGPT41 ModelID = "azure.gpt-4.1" - AzureGPT41Mini ModelID = "azure.gpt-4.1-mini" - AzureGPT41Nano ModelID = "azure.gpt-4.1-nano" - AzureGPT45Preview ModelID = "azure.gpt-4.5-preview" - AzureGPT4o ModelID = "azure.gpt-4o" - AzureGPT4oMini ModelID = "azure.gpt-4o-mini" - AzureO1 ModelID = "azure.o1" - AzureO1Mini ModelID = "azure.o1-mini" - AzureO3 ModelID = "azure.o3" - AzureO3Mini ModelID = "azure.o3-mini" - AzureO4Mini ModelID = "azure.o4-mini" -) - -var AzureModels = map[ModelID]Model{ - AzureGPT41: { - ID: AzureGPT41, - Name: "Azure OpenAI – GPT 4.1", - Provider: ProviderAzure, - APIModel: "gpt-4.1", - CostPer1MIn: OpenAIModels[GPT41].CostPer1MIn, - CostPer1MInCached: OpenAIModels[GPT41].CostPer1MInCached, - CostPer1MOut: OpenAIModels[GPT41].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[GPT41].CostPer1MOutCached, - ContextWindow: OpenAIModels[GPT41].ContextWindow, - DefaultMaxTokens: OpenAIModels[GPT41].DefaultMaxTokens, - SupportsAttachments: true, - }, - AzureGPT41Mini: { - ID: AzureGPT41Mini, - Name: "Azure OpenAI – GPT 4.1 mini", - Provider: ProviderAzure, - APIModel: "gpt-4.1-mini", - CostPer1MIn: OpenAIModels[GPT41Mini].CostPer1MIn, - CostPer1MInCached: OpenAIModels[GPT41Mini].CostPer1MInCached, - CostPer1MOut: OpenAIModels[GPT41Mini].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[GPT41Mini].CostPer1MOutCached, - ContextWindow: OpenAIModels[GPT41Mini].ContextWindow, - DefaultMaxTokens: OpenAIModels[GPT41Mini].DefaultMaxTokens, - SupportsAttachments: true, - }, - AzureGPT41Nano: { - ID: AzureGPT41Nano, - Name: "Azure OpenAI – GPT 4.1 nano", - Provider: ProviderAzure, - APIModel: "gpt-4.1-nano", - CostPer1MIn: OpenAIModels[GPT41Nano].CostPer1MIn, - CostPer1MInCached: OpenAIModels[GPT41Nano].CostPer1MInCached, - CostPer1MOut: OpenAIModels[GPT41Nano].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[GPT41Nano].CostPer1MOutCached, - ContextWindow: OpenAIModels[GPT41Nano].ContextWindow, - DefaultMaxTokens: OpenAIModels[GPT41Nano].DefaultMaxTokens, - SupportsAttachments: true, - }, - AzureGPT45Preview: { - ID: AzureGPT45Preview, - Name: "Azure OpenAI – GPT 4.5 preview", - Provider: ProviderAzure, - APIModel: "gpt-4.5-preview", - CostPer1MIn: OpenAIModels[GPT45Preview].CostPer1MIn, - CostPer1MInCached: OpenAIModels[GPT45Preview].CostPer1MInCached, - CostPer1MOut: OpenAIModels[GPT45Preview].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[GPT45Preview].CostPer1MOutCached, - ContextWindow: OpenAIModels[GPT45Preview].ContextWindow, - DefaultMaxTokens: OpenAIModels[GPT45Preview].DefaultMaxTokens, - SupportsAttachments: true, - }, - AzureGPT4o: { - ID: AzureGPT4o, - Name: "Azure OpenAI – GPT-4o", - Provider: ProviderAzure, - APIModel: "gpt-4o", - CostPer1MIn: OpenAIModels[GPT4o].CostPer1MIn, - CostPer1MInCached: OpenAIModels[GPT4o].CostPer1MInCached, - CostPer1MOut: OpenAIModels[GPT4o].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[GPT4o].CostPer1MOutCached, - ContextWindow: OpenAIModels[GPT4o].ContextWindow, - DefaultMaxTokens: OpenAIModels[GPT4o].DefaultMaxTokens, - SupportsAttachments: true, - }, - AzureGPT4oMini: { - ID: AzureGPT4oMini, - Name: "Azure OpenAI – GPT-4o mini", - Provider: ProviderAzure, - APIModel: "gpt-4o-mini", - CostPer1MIn: OpenAIModels[GPT4oMini].CostPer1MIn, - CostPer1MInCached: OpenAIModels[GPT4oMini].CostPer1MInCached, - CostPer1MOut: OpenAIModels[GPT4oMini].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[GPT4oMini].CostPer1MOutCached, - ContextWindow: OpenAIModels[GPT4oMini].ContextWindow, - DefaultMaxTokens: OpenAIModels[GPT4oMini].DefaultMaxTokens, - SupportsAttachments: true, - }, - AzureO1: { - ID: AzureO1, - Name: "Azure OpenAI – O1", - Provider: ProviderAzure, - APIModel: "o1", - CostPer1MIn: OpenAIModels[O1].CostPer1MIn, - CostPer1MInCached: OpenAIModels[O1].CostPer1MInCached, - CostPer1MOut: OpenAIModels[O1].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[O1].CostPer1MOutCached, - ContextWindow: OpenAIModels[O1].ContextWindow, - DefaultMaxTokens: OpenAIModels[O1].DefaultMaxTokens, - CanReason: OpenAIModels[O1].CanReason, - SupportsAttachments: true, - }, - AzureO1Mini: { - ID: AzureO1Mini, - Name: "Azure OpenAI – O1 mini", - Provider: ProviderAzure, - APIModel: "o1-mini", - CostPer1MIn: OpenAIModels[O1Mini].CostPer1MIn, - CostPer1MInCached: OpenAIModels[O1Mini].CostPer1MInCached, - CostPer1MOut: OpenAIModels[O1Mini].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[O1Mini].CostPer1MOutCached, - ContextWindow: OpenAIModels[O1Mini].ContextWindow, - DefaultMaxTokens: OpenAIModels[O1Mini].DefaultMaxTokens, - CanReason: OpenAIModels[O1Mini].CanReason, - SupportsAttachments: true, - }, - AzureO3: { - ID: AzureO3, - Name: "Azure OpenAI – O3", - Provider: ProviderAzure, - APIModel: "o3", - CostPer1MIn: OpenAIModels[O3].CostPer1MIn, - CostPer1MInCached: OpenAIModels[O3].CostPer1MInCached, - CostPer1MOut: OpenAIModels[O3].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[O3].CostPer1MOutCached, - ContextWindow: OpenAIModels[O3].ContextWindow, - DefaultMaxTokens: OpenAIModels[O3].DefaultMaxTokens, - CanReason: OpenAIModels[O3].CanReason, - SupportsAttachments: true, - }, - AzureO3Mini: { - ID: AzureO3Mini, - Name: "Azure OpenAI – O3 mini", - Provider: ProviderAzure, - APIModel: "o3-mini", - CostPer1MIn: OpenAIModels[O3Mini].CostPer1MIn, - CostPer1MInCached: OpenAIModels[O3Mini].CostPer1MInCached, - CostPer1MOut: OpenAIModels[O3Mini].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[O3Mini].CostPer1MOutCached, - ContextWindow: OpenAIModels[O3Mini].ContextWindow, - DefaultMaxTokens: OpenAIModels[O3Mini].DefaultMaxTokens, - CanReason: OpenAIModels[O3Mini].CanReason, - SupportsAttachments: false, - }, - AzureO4Mini: { - ID: AzureO4Mini, - Name: "Azure OpenAI – O4 mini", - Provider: ProviderAzure, - APIModel: "o4-mini", - CostPer1MIn: OpenAIModels[O4Mini].CostPer1MIn, - CostPer1MInCached: OpenAIModels[O4Mini].CostPer1MInCached, - CostPer1MOut: OpenAIModels[O4Mini].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[O4Mini].CostPer1MOutCached, - ContextWindow: OpenAIModels[O4Mini].ContextWindow, - DefaultMaxTokens: OpenAIModels[O4Mini].DefaultMaxTokens, - CanReason: OpenAIModels[O4Mini].CanReason, - SupportsAttachments: true, - }, -} diff --git a/internal/llm/models/bedrock.go b/internal/llm/models/bedrock.go deleted file mode 100644 index 06f825654..000000000 --- a/internal/llm/models/bedrock.go +++ /dev/null @@ -1,25 +0,0 @@ -package models - -const ( - ProviderBedrock ModelProvider = "bedrock" - - // Models - BedrockClaude37Sonnet ModelID = "bedrock.claude-3.7-sonnet" -) - -var BedrockModels = map[ModelID]Model{ - BedrockClaude37Sonnet: { - ID: BedrockClaude37Sonnet, - Name: "Bedrock: Claude 3.7 Sonnet", - Provider: ProviderBedrock, - APIModel: "anthropic.claude-3-7-sonnet-20250219-v1:0", - CostPer1MIn: 3.0, - CostPer1MInCached: 3.75, - CostPer1MOutCached: 0.30, - CostPer1MOut: 15.0, - ContextWindow: 200_000, - DefaultMaxTokens: 50_000, - CanReason: true, - SupportsAttachments: true, - }, -} diff --git a/internal/llm/models/gemini.go b/internal/llm/models/gemini.go deleted file mode 100644 index f73910166..000000000 --- a/internal/llm/models/gemini.go +++ /dev/null @@ -1,67 +0,0 @@ -package models - -const ( - ProviderGemini ModelProvider = "gemini" - - // Models - Gemini25Flash ModelID = "gemini-2.5-flash" - Gemini25 ModelID = "gemini-2.5" - Gemini20Flash ModelID = "gemini-2.0-flash" - Gemini20FlashLite ModelID = "gemini-2.0-flash-lite" -) - -var GeminiModels = map[ModelID]Model{ - Gemini25Flash: { - ID: Gemini25Flash, - Name: "Gemini 2.5 Flash", - Provider: ProviderGemini, - APIModel: "gemini-2.5-flash-preview-04-17", - CostPer1MIn: 0.15, - CostPer1MInCached: 0, - CostPer1MOutCached: 0, - CostPer1MOut: 0.60, - ContextWindow: 1000000, - DefaultMaxTokens: 50000, - SupportsAttachments: true, - }, - Gemini25: { - ID: Gemini25, - Name: "Gemini 2.5 Pro", - Provider: ProviderGemini, - APIModel: "gemini-2.5-pro-preview-03-25", - CostPer1MIn: 1.25, - CostPer1MInCached: 0, - CostPer1MOutCached: 0, - CostPer1MOut: 10, - ContextWindow: 1000000, - DefaultMaxTokens: 50000, - SupportsAttachments: true, - }, - - Gemini20Flash: { - ID: Gemini20Flash, - Name: "Gemini 2.0 Flash", - Provider: ProviderGemini, - APIModel: "gemini-2.0-flash", - CostPer1MIn: 0.10, - CostPer1MInCached: 0, - CostPer1MOutCached: 0, - CostPer1MOut: 0.40, - ContextWindow: 1000000, - DefaultMaxTokens: 6000, - SupportsAttachments: true, - }, - Gemini20FlashLite: { - ID: Gemini20FlashLite, - Name: "Gemini 2.0 Flash Lite", - Provider: ProviderGemini, - APIModel: "gemini-2.0-flash-lite", - CostPer1MIn: 0.05, - CostPer1MInCached: 0, - CostPer1MOutCached: 0, - CostPer1MOut: 0.30, - ContextWindow: 1000000, - DefaultMaxTokens: 6000, - SupportsAttachments: true, - }, -} diff --git a/internal/llm/models/groq.go b/internal/llm/models/groq.go deleted file mode 100644 index 0a54053de..000000000 --- a/internal/llm/models/groq.go +++ /dev/null @@ -1,89 +0,0 @@ -package models - -const ( - ProviderGROQ ModelProvider = "groq" - - // GROQ - QWENQwq ModelID = "qwen-qwq" - - // GROQ preview models - Llama4Scout ModelID = "meta-llama/llama-4-scout-17b-16e-instruct" - Llama4Maverick ModelID = "meta-llama/llama-4-maverick-17b-128e-instruct" - Llama3_3_70BVersatile ModelID = "llama-3.3-70b-versatile" - DeepseekR1DistillLlama70b ModelID = "deepseek-r1-distill-llama-70b" -) - -var GroqModels = map[ModelID]Model{ - // - // GROQ - QWENQwq: { - ID: QWENQwq, - Name: "Qwen Qwq", - Provider: ProviderGROQ, - APIModel: "qwen-qwq-32b", - CostPer1MIn: 0.29, - CostPer1MInCached: 0.275, - CostPer1MOutCached: 0.0, - CostPer1MOut: 0.39, - ContextWindow: 128_000, - DefaultMaxTokens: 50000, - // for some reason, the groq api doesn't like the reasoningEffort parameter - CanReason: false, - SupportsAttachments: false, - }, - - Llama4Scout: { - ID: Llama4Scout, - Name: "Llama4Scout", - Provider: ProviderGROQ, - APIModel: "meta-llama/llama-4-scout-17b-16e-instruct", - CostPer1MIn: 0.11, - CostPer1MInCached: 0, - CostPer1MOutCached: 0, - CostPer1MOut: 0.34, - DefaultMaxTokens: 8192, - ContextWindow: 128_000, // 10M when? - SupportsAttachments: true, - }, - - Llama4Maverick: { - ID: Llama4Maverick, - Name: "Llama4Maverick", - Provider: ProviderGROQ, - APIModel: "meta-llama/llama-4-maverick-17b-128e-instruct", - CostPer1MIn: 0.20, - CostPer1MInCached: 0, - CostPer1MOutCached: 0, - CostPer1MOut: 0.20, - DefaultMaxTokens: 8192, - ContextWindow: 128_000, - SupportsAttachments: true, - }, - - Llama3_3_70BVersatile: { - ID: Llama3_3_70BVersatile, - Name: "Llama3_3_70BVersatile", - Provider: ProviderGROQ, - APIModel: "llama-3.3-70b-versatile", - CostPer1MIn: 0.59, - CostPer1MInCached: 0, - CostPer1MOutCached: 0, - CostPer1MOut: 0.79, - ContextWindow: 128_000, - SupportsAttachments: false, - }, - - DeepseekR1DistillLlama70b: { - ID: DeepseekR1DistillLlama70b, - Name: "DeepseekR1DistillLlama70b", - Provider: ProviderGROQ, - APIModel: "deepseek-r1-distill-llama-70b", - CostPer1MIn: 0.75, - CostPer1MInCached: 0, - CostPer1MOutCached: 0, - CostPer1MOut: 0.99, - ContextWindow: 128_000, - CanReason: true, - SupportsAttachments: false, - }, -} diff --git a/internal/llm/models/models.go b/internal/llm/models/models.go deleted file mode 100644 index bfdd0d2d8..000000000 --- a/internal/llm/models/models.go +++ /dev/null @@ -1,54 +0,0 @@ -package models - -import "maps" - -type ( - ModelID string - ModelProvider string -) - -type Model struct { - ID ModelID `json:"id"` - Name string `json:"name"` - Provider ModelProvider `json:"provider"` - APIModel string `json:"api_model"` - CostPer1MIn float64 `json:"cost_per_1m_in"` - CostPer1MOut float64 `json:"cost_per_1m_out"` - CostPer1MInCached float64 `json:"cost_per_1m_in_cached"` - CostPer1MOutCached float64 `json:"cost_per_1m_out_cached"` - ContextWindow int64 `json:"context_window"` - DefaultMaxTokens int64 `json:"default_max_tokens"` - CanReason bool `json:"can_reason"` - SupportsAttachments bool `json:"supports_attachments"` -} - -const ( - // ForTests - ProviderMock ModelProvider = "__mock" -) - -// Providers in order of popularity -var ProviderPopularity = map[ModelProvider]int{ - ProviderAnthropic: 1, - ProviderOpenAI: 2, - ProviderGemini: 3, - ProviderGROQ: 4, - ProviderOpenRouter: 5, - ProviderBedrock: 6, - ProviderAzure: 7, - ProviderVertexAI: 8, -} - -var SupportedModels = map[ModelID]Model{} - -func init() { - maps.Copy(SupportedModels, AnthropicModels) - maps.Copy(SupportedModels, BedrockModels) - maps.Copy(SupportedModels, OpenAIModels) - maps.Copy(SupportedModels, GeminiModels) - maps.Copy(SupportedModels, GroqModels) - maps.Copy(SupportedModels, AzureModels) - maps.Copy(SupportedModels, OpenRouterModels) - maps.Copy(SupportedModels, XAIModels) - maps.Copy(SupportedModels, VertexAIGeminiModels) -} diff --git a/internal/llm/models/openai.go b/internal/llm/models/openai.go deleted file mode 100644 index fdca5bed3..000000000 --- a/internal/llm/models/openai.go +++ /dev/null @@ -1,196 +0,0 @@ -package models - -const ( - ProviderOpenAI ModelProvider = "openai" - - CodexMini ModelID = "codex-mini" - GPT41 ModelID = "gpt-4.1" - GPT41Mini ModelID = "gpt-4.1-mini" - GPT41Nano ModelID = "gpt-4.1-nano" - GPT45Preview ModelID = "gpt-4.5-preview" - GPT4o ModelID = "gpt-4o" - GPT4oMini ModelID = "gpt-4o-mini" - O1 ModelID = "o1" - O1Pro ModelID = "o1-pro" - O1Mini ModelID = "o1-mini" - O3 ModelID = "o3" - O3Mini ModelID = "o3-mini" - O4Mini ModelID = "o4-mini" -) - -var OpenAIModels = map[ModelID]Model{ - CodexMini: { - ID: CodexMini, - Name: "Codex Mini", - Provider: ProviderOpenAI, - APIModel: "codex-mini-latest", - CostPer1MIn: 1.50, - CostPer1MInCached: 0.375, - CostPer1MOutCached: 0.0, - CostPer1MOut: 6.00, - ContextWindow: 200_000, - DefaultMaxTokens: 100_000, - CanReason: true, - SupportsAttachments: true, - }, - GPT41: { - ID: GPT41, - Name: "GPT 4.1", - Provider: ProviderOpenAI, - APIModel: "gpt-4.1", - CostPer1MIn: 2.00, - CostPer1MInCached: 0.50, - CostPer1MOutCached: 0.0, - CostPer1MOut: 8.00, - ContextWindow: 1_047_576, - DefaultMaxTokens: 20000, - SupportsAttachments: true, - }, - GPT41Mini: { - ID: GPT41Mini, - Name: "GPT 4.1 mini", - Provider: ProviderOpenAI, - APIModel: "gpt-4.1", - CostPer1MIn: 0.40, - CostPer1MInCached: 0.10, - CostPer1MOutCached: 0.0, - CostPer1MOut: 1.60, - ContextWindow: 200_000, - DefaultMaxTokens: 20000, - SupportsAttachments: true, - }, - GPT41Nano: { - ID: GPT41Nano, - Name: "GPT 4.1 nano", - Provider: ProviderOpenAI, - APIModel: "gpt-4.1-nano", - CostPer1MIn: 0.10, - CostPer1MInCached: 0.025, - CostPer1MOutCached: 0.0, - CostPer1MOut: 0.40, - ContextWindow: 1_047_576, - DefaultMaxTokens: 20000, - SupportsAttachments: true, - }, - GPT45Preview: { - ID: GPT45Preview, - Name: "GPT 4.5 preview", - Provider: ProviderOpenAI, - APIModel: "gpt-4.5-preview", - CostPer1MIn: 75.00, - CostPer1MInCached: 37.50, - CostPer1MOutCached: 0.0, - CostPer1MOut: 150.00, - ContextWindow: 128_000, - DefaultMaxTokens: 15000, - SupportsAttachments: true, - }, - GPT4o: { - ID: GPT4o, - Name: "GPT 4o", - Provider: ProviderOpenAI, - APIModel: "gpt-4o", - CostPer1MIn: 2.50, - CostPer1MInCached: 1.25, - CostPer1MOutCached: 0.0, - CostPer1MOut: 10.00, - ContextWindow: 128_000, - DefaultMaxTokens: 4096, - SupportsAttachments: true, - }, - GPT4oMini: { - ID: GPT4oMini, - Name: "GPT 4o mini", - Provider: ProviderOpenAI, - APIModel: "gpt-4o-mini", - CostPer1MIn: 0.15, - CostPer1MInCached: 0.075, - CostPer1MOutCached: 0.0, - CostPer1MOut: 0.60, - ContextWindow: 128_000, - SupportsAttachments: true, - }, - O1: { - ID: O1, - Name: "O1", - Provider: ProviderOpenAI, - APIModel: "o1", - CostPer1MIn: 15.00, - CostPer1MInCached: 7.50, - CostPer1MOutCached: 0.0, - CostPer1MOut: 60.00, - ContextWindow: 200_000, - DefaultMaxTokens: 50000, - CanReason: true, - SupportsAttachments: true, - }, - O1Pro: { - ID: O1Pro, - Name: "o1 pro", - Provider: ProviderOpenAI, - APIModel: "o1-pro", - CostPer1MIn: 150.00, - CostPer1MInCached: 0.0, - CostPer1MOutCached: 0.0, - CostPer1MOut: 600.00, - ContextWindow: 200_000, - DefaultMaxTokens: 50000, - CanReason: true, - SupportsAttachments: true, - }, - O1Mini: { - ID: O1Mini, - Name: "o1 mini", - Provider: ProviderOpenAI, - APIModel: "o1-mini", - CostPer1MIn: 1.10, - CostPer1MInCached: 0.55, - CostPer1MOutCached: 0.0, - CostPer1MOut: 4.40, - ContextWindow: 128_000, - DefaultMaxTokens: 50000, - CanReason: true, - SupportsAttachments: true, - }, - O3: { - ID: O3, - Name: "o3", - Provider: ProviderOpenAI, - APIModel: "o3", - CostPer1MIn: 10.00, - CostPer1MInCached: 2.50, - CostPer1MOutCached: 0.0, - CostPer1MOut: 40.00, - ContextWindow: 200_000, - CanReason: true, - SupportsAttachments: true, - }, - O3Mini: { - ID: O3Mini, - Name: "o3 mini", - Provider: ProviderOpenAI, - APIModel: "o3-mini", - CostPer1MIn: 1.10, - CostPer1MInCached: 0.55, - CostPer1MOutCached: 0.0, - CostPer1MOut: 4.40, - ContextWindow: 200_000, - DefaultMaxTokens: 50000, - CanReason: true, - SupportsAttachments: false, - }, - O4Mini: { - ID: O4Mini, - Name: "o4 mini", - Provider: ProviderOpenAI, - APIModel: "o4-mini", - CostPer1MIn: 1.10, - CostPer1MInCached: 0.275, - CostPer1MOutCached: 0.0, - CostPer1MOut: 4.40, - ContextWindow: 128_000, - DefaultMaxTokens: 50000, - CanReason: true, - SupportsAttachments: true, - }, -} diff --git a/internal/llm/models/openrouter.go b/internal/llm/models/openrouter.go deleted file mode 100644 index faee734a0..000000000 --- a/internal/llm/models/openrouter.go +++ /dev/null @@ -1,327 +0,0 @@ -package models - -const ( - ProviderOpenRouter ModelProvider = "openrouter" - - OpenRouterGPT41 ModelID = "openrouter.gpt-4.1" - OpenRouterGPT41Mini ModelID = "openrouter.gpt-4.1-mini" - OpenRouterGPT41Nano ModelID = "openrouter.gpt-4.1-nano" - OpenRouterGPT45Preview ModelID = "openrouter.gpt-4.5-preview" - OpenRouterGPT4o ModelID = "openrouter.gpt-4o" - OpenRouterGPT4oMini ModelID = "openrouter.gpt-4o-mini" - OpenRouterO1 ModelID = "openrouter.o1" - OpenRouterO1Pro ModelID = "openrouter.o1-pro" - OpenRouterO1Mini ModelID = "openrouter.o1-mini" - OpenRouterO3 ModelID = "openrouter.o3" - OpenRouterO3Mini ModelID = "openrouter.o3-mini" - OpenRouterO4Mini ModelID = "openrouter.o4-mini" - OpenRouterGemini25Flash ModelID = "openrouter.gemini-2.5-flash" - OpenRouterGemini25 ModelID = "openrouter.gemini-2.5" - OpenRouterClaude35Sonnet ModelID = "openrouter.claude-3.5-sonnet" - OpenRouterClaude3Haiku ModelID = "openrouter.claude-3-haiku" - OpenRouterClaude37Sonnet ModelID = "openrouter.claude-3.7-sonnet" - OpenRouterClaude35Haiku ModelID = "openrouter.claude-3.5-haiku" - OpenRouterClaude3Opus ModelID = "openrouter.claude-3-opus" - OpenRouterQwen235B ModelID = "openrouter.qwen-3-235b" - OpenRouterQwen32B ModelID = "openrouter.qwen-3-32b" - OpenRouterQwen30B ModelID = "openrouter.qwen-3-30b" - OpenRouterQwen14B ModelID = "openrouter.qwen-3-14b" - OpenRouterQwen8B ModelID = "openrouter.qwen-3-8b" -) - -var OpenRouterModels = map[ModelID]Model{ - OpenRouterGPT41: { - ID: OpenRouterGPT41, - Name: "OpenRouter: GPT 4.1", - Provider: ProviderOpenRouter, - APIModel: "openai/gpt-4.1", - CostPer1MIn: OpenAIModels[GPT41].CostPer1MIn, - CostPer1MInCached: OpenAIModels[GPT41].CostPer1MInCached, - CostPer1MOut: OpenAIModels[GPT41].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[GPT41].CostPer1MOutCached, - ContextWindow: OpenAIModels[GPT41].ContextWindow, - DefaultMaxTokens: OpenAIModels[GPT41].DefaultMaxTokens, - }, - OpenRouterGPT41Mini: { - ID: OpenRouterGPT41Mini, - Name: "OpenRouter: GPT 4.1 mini", - Provider: ProviderOpenRouter, - APIModel: "openai/gpt-4.1-mini", - CostPer1MIn: OpenAIModels[GPT41Mini].CostPer1MIn, - CostPer1MInCached: OpenAIModels[GPT41Mini].CostPer1MInCached, - CostPer1MOut: OpenAIModels[GPT41Mini].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[GPT41Mini].CostPer1MOutCached, - ContextWindow: OpenAIModels[GPT41Mini].ContextWindow, - DefaultMaxTokens: OpenAIModels[GPT41Mini].DefaultMaxTokens, - }, - OpenRouterGPT41Nano: { - ID: OpenRouterGPT41Nano, - Name: "OpenRouter: GPT 4.1 nano", - Provider: ProviderOpenRouter, - APIModel: "openai/gpt-4.1-nano", - CostPer1MIn: OpenAIModels[GPT41Nano].CostPer1MIn, - CostPer1MInCached: OpenAIModels[GPT41Nano].CostPer1MInCached, - CostPer1MOut: OpenAIModels[GPT41Nano].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[GPT41Nano].CostPer1MOutCached, - ContextWindow: OpenAIModels[GPT41Nano].ContextWindow, - DefaultMaxTokens: OpenAIModels[GPT41Nano].DefaultMaxTokens, - }, - OpenRouterGPT45Preview: { - ID: OpenRouterGPT45Preview, - Name: "OpenRouter: GPT 4.5 preview", - Provider: ProviderOpenRouter, - APIModel: "openai/gpt-4.5-preview", - CostPer1MIn: OpenAIModels[GPT45Preview].CostPer1MIn, - CostPer1MInCached: OpenAIModels[GPT45Preview].CostPer1MInCached, - CostPer1MOut: OpenAIModels[GPT45Preview].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[GPT45Preview].CostPer1MOutCached, - ContextWindow: OpenAIModels[GPT45Preview].ContextWindow, - DefaultMaxTokens: OpenAIModels[GPT45Preview].DefaultMaxTokens, - }, - OpenRouterGPT4o: { - ID: OpenRouterGPT4o, - Name: "OpenRouter: GPT 4o", - Provider: ProviderOpenRouter, - APIModel: "openai/gpt-4o", - CostPer1MIn: OpenAIModels[GPT4o].CostPer1MIn, - CostPer1MInCached: OpenAIModels[GPT4o].CostPer1MInCached, - CostPer1MOut: OpenAIModels[GPT4o].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[GPT4o].CostPer1MOutCached, - ContextWindow: OpenAIModels[GPT4o].ContextWindow, - DefaultMaxTokens: OpenAIModels[GPT4o].DefaultMaxTokens, - }, - OpenRouterGPT4oMini: { - ID: OpenRouterGPT4oMini, - Name: "OpenRouter: GPT 4o mini", - Provider: ProviderOpenRouter, - APIModel: "openai/gpt-4o-mini", - CostPer1MIn: OpenAIModels[GPT4oMini].CostPer1MIn, - CostPer1MInCached: OpenAIModels[GPT4oMini].CostPer1MInCached, - CostPer1MOut: OpenAIModels[GPT4oMini].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[GPT4oMini].CostPer1MOutCached, - ContextWindow: OpenAIModels[GPT4oMini].ContextWindow, - }, - OpenRouterO1: { - ID: OpenRouterO1, - Name: "OpenRouter: O1", - Provider: ProviderOpenRouter, - APIModel: "openai/o1", - CostPer1MIn: OpenAIModels[O1].CostPer1MIn, - CostPer1MInCached: OpenAIModels[O1].CostPer1MInCached, - CostPer1MOut: OpenAIModels[O1].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[O1].CostPer1MOutCached, - ContextWindow: OpenAIModels[O1].ContextWindow, - DefaultMaxTokens: OpenAIModels[O1].DefaultMaxTokens, - CanReason: OpenAIModels[O1].CanReason, - }, - OpenRouterO1Pro: { - ID: OpenRouterO1Pro, - Name: "OpenRouter: o1 pro", - Provider: ProviderOpenRouter, - APIModel: "openai/o1-pro", - CostPer1MIn: OpenAIModels[O1Pro].CostPer1MIn, - CostPer1MInCached: OpenAIModels[O1Pro].CostPer1MInCached, - CostPer1MOut: OpenAIModels[O1Pro].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[O1Pro].CostPer1MOutCached, - ContextWindow: OpenAIModels[O1Pro].ContextWindow, - DefaultMaxTokens: OpenAIModels[O1Pro].DefaultMaxTokens, - CanReason: OpenAIModels[O1Pro].CanReason, - }, - OpenRouterO1Mini: { - ID: OpenRouterO1Mini, - Name: "OpenRouter: o1 mini", - Provider: ProviderOpenRouter, - APIModel: "openai/o1-mini", - CostPer1MIn: OpenAIModels[O1Mini].CostPer1MIn, - CostPer1MInCached: OpenAIModels[O1Mini].CostPer1MInCached, - CostPer1MOut: OpenAIModels[O1Mini].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[O1Mini].CostPer1MOutCached, - ContextWindow: OpenAIModels[O1Mini].ContextWindow, - DefaultMaxTokens: OpenAIModels[O1Mini].DefaultMaxTokens, - CanReason: OpenAIModels[O1Mini].CanReason, - }, - OpenRouterO3: { - ID: OpenRouterO3, - Name: "OpenRouter: o3", - Provider: ProviderOpenRouter, - APIModel: "openai/o3", - CostPer1MIn: OpenAIModels[O3].CostPer1MIn, - CostPer1MInCached: OpenAIModels[O3].CostPer1MInCached, - CostPer1MOut: OpenAIModels[O3].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[O3].CostPer1MOutCached, - ContextWindow: OpenAIModels[O3].ContextWindow, - DefaultMaxTokens: OpenAIModels[O3].DefaultMaxTokens, - CanReason: OpenAIModels[O3].CanReason, - }, - OpenRouterO3Mini: { - ID: OpenRouterO3Mini, - Name: "OpenRouter: o3 mini", - Provider: ProviderOpenRouter, - APIModel: "openai/o3-mini-high", - CostPer1MIn: OpenAIModels[O3Mini].CostPer1MIn, - CostPer1MInCached: OpenAIModels[O3Mini].CostPer1MInCached, - CostPer1MOut: OpenAIModels[O3Mini].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[O3Mini].CostPer1MOutCached, - ContextWindow: OpenAIModels[O3Mini].ContextWindow, - DefaultMaxTokens: OpenAIModels[O3Mini].DefaultMaxTokens, - CanReason: OpenAIModels[O3Mini].CanReason, - }, - OpenRouterO4Mini: { - ID: OpenRouterO4Mini, - Name: "OpenRouter: o4 mini", - Provider: ProviderOpenRouter, - APIModel: "openai/o4-mini-high", - CostPer1MIn: OpenAIModels[O4Mini].CostPer1MIn, - CostPer1MInCached: OpenAIModels[O4Mini].CostPer1MInCached, - CostPer1MOut: OpenAIModels[O4Mini].CostPer1MOut, - CostPer1MOutCached: OpenAIModels[O4Mini].CostPer1MOutCached, - ContextWindow: OpenAIModels[O4Mini].ContextWindow, - DefaultMaxTokens: OpenAIModels[O4Mini].DefaultMaxTokens, - CanReason: OpenAIModels[O4Mini].CanReason, - }, - OpenRouterGemini25Flash: { - ID: OpenRouterGemini25Flash, - Name: "OpenRouter: Gemini 2.5 Flash", - Provider: ProviderOpenRouter, - APIModel: "google/gemini-2.5-flash-preview:thinking", - CostPer1MIn: GeminiModels[Gemini25Flash].CostPer1MIn, - CostPer1MInCached: GeminiModels[Gemini25Flash].CostPer1MInCached, - CostPer1MOut: GeminiModels[Gemini25Flash].CostPer1MOut, - CostPer1MOutCached: GeminiModels[Gemini25Flash].CostPer1MOutCached, - ContextWindow: GeminiModels[Gemini25Flash].ContextWindow, - DefaultMaxTokens: GeminiModels[Gemini25Flash].DefaultMaxTokens, - }, - OpenRouterGemini25: { - ID: OpenRouterGemini25, - Name: "OpenRouter: Gemini 2.5 Pro", - Provider: ProviderOpenRouter, - APIModel: "google/gemini-2.5-pro-preview-03-25", - CostPer1MIn: GeminiModels[Gemini25].CostPer1MIn, - CostPer1MInCached: GeminiModels[Gemini25].CostPer1MInCached, - CostPer1MOut: GeminiModels[Gemini25].CostPer1MOut, - CostPer1MOutCached: GeminiModels[Gemini25].CostPer1MOutCached, - ContextWindow: GeminiModels[Gemini25].ContextWindow, - DefaultMaxTokens: GeminiModels[Gemini25].DefaultMaxTokens, - }, - OpenRouterClaude35Sonnet: { - ID: OpenRouterClaude35Sonnet, - Name: "OpenRouter: Claude 3.5 Sonnet", - Provider: ProviderOpenRouter, - APIModel: "anthropic/claude-3.5-sonnet", - CostPer1MIn: AnthropicModels[Claude35Sonnet].CostPer1MIn, - CostPer1MInCached: AnthropicModels[Claude35Sonnet].CostPer1MInCached, - CostPer1MOut: AnthropicModels[Claude35Sonnet].CostPer1MOut, - CostPer1MOutCached: AnthropicModels[Claude35Sonnet].CostPer1MOutCached, - ContextWindow: AnthropicModels[Claude35Sonnet].ContextWindow, - DefaultMaxTokens: AnthropicModels[Claude35Sonnet].DefaultMaxTokens, - }, - OpenRouterClaude3Haiku: { - ID: OpenRouterClaude3Haiku, - Name: "OpenRouter: Claude 3 Haiku", - Provider: ProviderOpenRouter, - APIModel: "anthropic/claude-3-haiku", - CostPer1MIn: AnthropicModels[Claude3Haiku].CostPer1MIn, - CostPer1MInCached: AnthropicModels[Claude3Haiku].CostPer1MInCached, - CostPer1MOut: AnthropicModels[Claude3Haiku].CostPer1MOut, - CostPer1MOutCached: AnthropicModels[Claude3Haiku].CostPer1MOutCached, - ContextWindow: AnthropicModels[Claude3Haiku].ContextWindow, - DefaultMaxTokens: AnthropicModels[Claude3Haiku].DefaultMaxTokens, - }, - OpenRouterClaude37Sonnet: { - ID: OpenRouterClaude37Sonnet, - Name: "OpenRouter: Claude 3.7 Sonnet", - Provider: ProviderOpenRouter, - APIModel: "anthropic/claude-3.7-sonnet", - CostPer1MIn: AnthropicModels[Claude37Sonnet].CostPer1MIn, - CostPer1MInCached: AnthropicModels[Claude37Sonnet].CostPer1MInCached, - CostPer1MOut: AnthropicModels[Claude37Sonnet].CostPer1MOut, - CostPer1MOutCached: AnthropicModels[Claude37Sonnet].CostPer1MOutCached, - ContextWindow: AnthropicModels[Claude37Sonnet].ContextWindow, - DefaultMaxTokens: AnthropicModels[Claude37Sonnet].DefaultMaxTokens, - CanReason: AnthropicModels[Claude37Sonnet].CanReason, - }, - OpenRouterClaude35Haiku: { - ID: OpenRouterClaude35Haiku, - Name: "OpenRouter: Claude 3.5 Haiku", - Provider: ProviderOpenRouter, - APIModel: "anthropic/claude-3.5-haiku", - CostPer1MIn: AnthropicModels[Claude35Haiku].CostPer1MIn, - CostPer1MInCached: AnthropicModels[Claude35Haiku].CostPer1MInCached, - CostPer1MOut: AnthropicModels[Claude35Haiku].CostPer1MOut, - CostPer1MOutCached: AnthropicModels[Claude35Haiku].CostPer1MOutCached, - ContextWindow: AnthropicModels[Claude35Haiku].ContextWindow, - DefaultMaxTokens: AnthropicModels[Claude35Haiku].DefaultMaxTokens, - }, - OpenRouterClaude3Opus: { - ID: OpenRouterClaude3Opus, - Name: "OpenRouter: Claude 3 Opus", - Provider: ProviderOpenRouter, - APIModel: "anthropic/claude-3-opus", - CostPer1MIn: AnthropicModels[Claude3Opus].CostPer1MIn, - CostPer1MInCached: AnthropicModels[Claude3Opus].CostPer1MInCached, - CostPer1MOut: AnthropicModels[Claude3Opus].CostPer1MOut, - CostPer1MOutCached: AnthropicModels[Claude3Opus].CostPer1MOutCached, - ContextWindow: AnthropicModels[Claude3Opus].ContextWindow, - DefaultMaxTokens: AnthropicModels[Claude3Opus].DefaultMaxTokens, - }, - OpenRouterQwen235B: { - ID: OpenRouterQwen235B, - Name: "OpenRouter: Qwen3 235B A22B", - Provider: ProviderOpenRouter, - APIModel: "qwen/qwen3-235b-a22b", - CostPer1MIn: 0.1, - CostPer1MInCached: 0.1, - CostPer1MOut: 0.1, - CostPer1MOutCached: 0.1, - ContextWindow: 40960, - DefaultMaxTokens: 4096, - }, - OpenRouterQwen32B: { - ID: OpenRouterQwen32B, - Name: "OpenRouter: Qwen3 32B", - Provider: ProviderOpenRouter, - APIModel: "qwen/qwen3-32b", - CostPer1MIn: 0.1, - CostPer1MInCached: 0.1, - CostPer1MOut: 0.3, - CostPer1MOutCached: 0.3, - ContextWindow: 40960, - DefaultMaxTokens: 4096, - }, - OpenRouterQwen30B: { - ID: OpenRouterQwen30B, - Name: "OpenRouter: Qwen3 30B A3B", - Provider: ProviderOpenRouter, - APIModel: "qwen/qwen3-30b-a3b", - CostPer1MIn: 0.1, - CostPer1MInCached: 0.1, - CostPer1MOut: 0.3, - CostPer1MOutCached: 0.3, - ContextWindow: 40960, - DefaultMaxTokens: 4096, - }, - OpenRouterQwen14B: { - ID: OpenRouterQwen14B, - Name: "OpenRouter: Qwen3 14B", - Provider: ProviderOpenRouter, - APIModel: "qwen/qwen3-14b", - CostPer1MIn: 0.7, - CostPer1MInCached: 0.7, - CostPer1MOut: 0.24, - CostPer1MOutCached: 0.24, - ContextWindow: 40960, - DefaultMaxTokens: 4096, - }, - OpenRouterQwen8B: { - ID: OpenRouterQwen8B, - Name: "OpenRouter: Qwen3 8B", - Provider: ProviderOpenRouter, - APIModel: "qwen/qwen3-8b", - CostPer1MIn: 0.35, - CostPer1MInCached: 0.35, - CostPer1MOut: 0.138, - CostPer1MOutCached: 0.138, - ContextWindow: 128000, - DefaultMaxTokens: 4096, - }, -} diff --git a/internal/llm/models/vertexai.go b/internal/llm/models/vertexai.go deleted file mode 100644 index d71dfc0be..000000000 --- a/internal/llm/models/vertexai.go +++ /dev/null @@ -1,38 +0,0 @@ -package models - -const ( - ProviderVertexAI ModelProvider = "vertexai" - - // Models - VertexAIGemini25Flash ModelID = "vertexai.gemini-2.5-flash" - VertexAIGemini25 ModelID = "vertexai.gemini-2.5" -) - -var VertexAIGeminiModels = map[ModelID]Model{ - VertexAIGemini25Flash: { - ID: VertexAIGemini25Flash, - Name: "VertexAI: Gemini 2.5 Flash", - Provider: ProviderVertexAI, - APIModel: "gemini-2.5-flash-preview-04-17", - CostPer1MIn: GeminiModels[Gemini25Flash].CostPer1MIn, - CostPer1MInCached: GeminiModels[Gemini25Flash].CostPer1MInCached, - CostPer1MOut: GeminiModels[Gemini25Flash].CostPer1MOut, - CostPer1MOutCached: GeminiModels[Gemini25Flash].CostPer1MOutCached, - ContextWindow: GeminiModels[Gemini25Flash].ContextWindow, - DefaultMaxTokens: GeminiModels[Gemini25Flash].DefaultMaxTokens, - SupportsAttachments: true, - }, - VertexAIGemini25: { - ID: VertexAIGemini25, - Name: "VertexAI: Gemini 2.5 Pro", - Provider: ProviderVertexAI, - APIModel: "gemini-2.5-pro-preview-03-25", - CostPer1MIn: GeminiModels[Gemini25].CostPer1MIn, - CostPer1MInCached: GeminiModels[Gemini25].CostPer1MInCached, - CostPer1MOut: GeminiModels[Gemini25].CostPer1MOut, - CostPer1MOutCached: GeminiModels[Gemini25].CostPer1MOutCached, - ContextWindow: GeminiModels[Gemini25].ContextWindow, - DefaultMaxTokens: GeminiModels[Gemini25].DefaultMaxTokens, - SupportsAttachments: true, - }, -} diff --git a/internal/llm/models/xai.go b/internal/llm/models/xai.go deleted file mode 100644 index 00caf3b89..000000000 --- a/internal/llm/models/xai.go +++ /dev/null @@ -1,61 +0,0 @@ -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, - }, -} |
