| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- 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)
- }
|