diff --git a/internal/cmd/genmodels/main.go b/internal/cmd/genmodels/main.go index a6615bf78..ea4792d7c 100644 --- a/internal/cmd/genmodels/main.go +++ b/internal/cmd/genmodels/main.go @@ -136,7 +136,6 @@ var generatedModels = map[string]ModelDefinition{ &buf, ` %q: { Name: %q, - Provider: %q, ContextLength: %d, MaxOutputTokens: %d, Supports: SupportedParameters{ @@ -145,7 +144,6 @@ var generatedModels = map[string]ModelDefinition{ `, m.ID, m.Name, - provider, m.ContextLen, m.TopProvider.MaxCompletionTokens, buildSupports(m.SupportedParams), diff --git a/pkg/llm/registry.go b/pkg/llm/registry.go index 1675a7e07..7efe65c61 100644 --- a/pkg/llm/registry.go +++ b/pkg/llm/registry.go @@ -24,7 +24,6 @@ type ( ModelDefinition struct { ID string Name string - Provider string ContextLength int MaxOutputTokens int Supports SupportedParameters @@ -89,6 +88,13 @@ func (r *Registry) Lookup(modelID string) (ModelDefinition, bool) { return ModelDefinition{}, false } +// Provider returns the provider prefix from the model ID (e.g. "anthropic" +// from "anthropic/claude-opus-4.6"). +func (m *ModelDefinition) Provider() string { + provider, _, _ := strings.Cut(m.ID, "/") + return provider +} + func (r *Registry) index(m *ModelDefinition) { r.byID[m.ID] = m diff --git a/pkg/llm/registry_gen.go b/pkg/llm/registry_gen.go index 71e06d4ac..5a725036c 100644 --- a/pkg/llm/registry_gen.go +++ b/pkg/llm/registry_gen.go @@ -14,14 +14,13 @@ // Code generated by genmodels; DO NOT EDIT. // Source: https://openrouter.ai/api/v1/models -// Generated: 2026-04-13T15:14:11Z +// Generated: 2026-04-13T15:17:27Z package llm var generatedModels = map[string]ModelDefinition{ "anthropic/claude-opus-4.6-fast": { Name: "Anthropic: Claude Opus 4.6 (Fast)", - Provider: "anthropic", ContextLength: 1000000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -42,7 +41,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemma-4-26b-a4b-it:free": { Name: "Google: Gemma 4 26B A4B (free)", - Provider: "google", ContextLength: 262144, MaxOutputTokens: 32768, Supports: SupportedParameters{ @@ -63,7 +61,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemma-4-26b-a4b-it": { Name: "Google: Gemma 4 26B A4B ", - Provider: "google", ContextLength: 262144, MaxOutputTokens: 262144, Supports: SupportedParameters{ @@ -84,7 +81,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemma-4-31b-it:free": { Name: "Google: Gemma 4 31B (free)", - Provider: "google", ContextLength: 262144, MaxOutputTokens: 32768, Supports: SupportedParameters{ @@ -105,7 +101,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemma-4-31b-it": { Name: "Google: Gemma 4 31B", - Provider: "google", ContextLength: 262144, MaxOutputTokens: 131072, Supports: SupportedParameters{ @@ -126,7 +121,6 @@ var generatedModels = map[string]ModelDefinition{ }, "x-ai/grok-4.20-multi-agent": { Name: "xAI: Grok 4.20 Multi-Agent", - Provider: "x-ai", ContextLength: 2000000, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -147,7 +141,6 @@ var generatedModels = map[string]ModelDefinition{ }, "x-ai/grok-4.20": { Name: "xAI: Grok 4.20", - Provider: "x-ai", ContextLength: 2000000, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -168,7 +161,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/lyria-3-pro-preview": { Name: "Google: Lyria 3 Pro Preview", - Provider: "google", ContextLength: 1048576, MaxOutputTokens: 65536, Supports: SupportedParameters{ @@ -189,7 +181,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/lyria-3-clip-preview": { Name: "Google: Lyria 3 Clip Preview", - Provider: "google", ContextLength: 1048576, MaxOutputTokens: 65536, Supports: SupportedParameters{ @@ -210,7 +201,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5.4-nano": { Name: "OpenAI: GPT-5.4 Nano", - Provider: "openai", ContextLength: 400000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -231,7 +221,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5.4-mini": { Name: "OpenAI: GPT-5.4 Mini", - Provider: "openai", ContextLength: 400000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -252,7 +241,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/mistral-small-2603": { Name: "Mistral: Mistral Small 4", - Provider: "mistralai", ContextLength: 262144, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -273,7 +261,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5.4-pro": { Name: "OpenAI: GPT-5.4 Pro", - Provider: "openai", ContextLength: 1050000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -294,7 +281,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5.4": { Name: "OpenAI: GPT-5.4", - Provider: "openai", ContextLength: 1050000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -315,7 +301,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5.3-chat": { Name: "OpenAI: GPT-5.3 Chat", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -336,7 +321,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemini-3.1-flash-lite-preview": { Name: "Google: Gemini 3.1 Flash Lite Preview", - Provider: "google", ContextLength: 1048576, MaxOutputTokens: 65536, Supports: SupportedParameters{ @@ -357,7 +341,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemini-3.1-flash-image-preview": { Name: "Google: Nano Banana 2 (Gemini 3.1 Flash Image Preview)", - Provider: "google", ContextLength: 65536, MaxOutputTokens: 65536, Supports: SupportedParameters{ @@ -378,7 +361,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemini-3.1-pro-preview-customtools": { Name: "Google: Gemini 3.1 Pro Preview Custom Tools", - Provider: "google", ContextLength: 1048576, MaxOutputTokens: 65536, Supports: SupportedParameters{ @@ -399,7 +381,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5.3-codex": { Name: "OpenAI: GPT-5.3-Codex", - Provider: "openai", ContextLength: 400000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -420,7 +401,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemini-3.1-pro-preview": { Name: "Google: Gemini 3.1 Pro Preview", - Provider: "google", ContextLength: 1048576, MaxOutputTokens: 65536, Supports: SupportedParameters{ @@ -441,7 +421,6 @@ var generatedModels = map[string]ModelDefinition{ }, "anthropic/claude-sonnet-4.6": { Name: "Anthropic: Claude Sonnet 4.6", - Provider: "anthropic", ContextLength: 1000000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -462,7 +441,6 @@ var generatedModels = map[string]ModelDefinition{ }, "anthropic/claude-opus-4.6": { Name: "Anthropic: Claude Opus 4.6", - Provider: "anthropic", ContextLength: 1000000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -483,7 +461,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-audio": { Name: "OpenAI: GPT Audio", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -504,7 +481,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-audio-mini": { Name: "OpenAI: GPT Audio Mini", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -525,7 +501,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5.2-codex": { Name: "OpenAI: GPT-5.2-Codex", - Provider: "openai", ContextLength: 400000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -546,7 +521,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemini-3-flash-preview": { Name: "Google: Gemini 3 Flash Preview", - Provider: "google", ContextLength: 1048576, MaxOutputTokens: 65536, Supports: SupportedParameters{ @@ -567,7 +541,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/mistral-small-creative": { Name: "Mistral: Mistral Small Creative", - Provider: "mistralai", ContextLength: 32768, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -588,7 +561,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5.2-chat": { Name: "OpenAI: GPT-5.2 Chat", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 32000, Supports: SupportedParameters{ @@ -609,7 +581,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5.2-pro": { Name: "OpenAI: GPT-5.2 Pro", - Provider: "openai", ContextLength: 400000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -630,7 +601,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5.2": { Name: "OpenAI: GPT-5.2", - Provider: "openai", ContextLength: 400000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -651,7 +621,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/devstral-2512": { Name: "Mistral: Devstral 2 2512", - Provider: "mistralai", ContextLength: 262144, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -672,7 +641,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5.1-codex-max": { Name: "OpenAI: GPT-5.1-Codex-Max", - Provider: "openai", ContextLength: 400000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -693,7 +661,6 @@ var generatedModels = map[string]ModelDefinition{ }, "amazon/nova-2-lite-v1": { Name: "Amazon: Nova 2 Lite", - Provider: "amazon", ContextLength: 1000000, MaxOutputTokens: 65535, Supports: SupportedParameters{ @@ -714,7 +681,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/ministral-14b-2512": { Name: "Mistral: Ministral 3 14B 2512", - Provider: "mistralai", ContextLength: 262144, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -735,7 +701,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/ministral-8b-2512": { Name: "Mistral: Ministral 3 8B 2512", - Provider: "mistralai", ContextLength: 262144, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -756,7 +721,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/ministral-3b-2512": { Name: "Mistral: Ministral 3 3B 2512", - Provider: "mistralai", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -777,7 +741,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/mistral-large-2512": { Name: "Mistral: Mistral Large 3 2512", - Provider: "mistralai", ContextLength: 262144, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -798,7 +761,6 @@ var generatedModels = map[string]ModelDefinition{ }, "deepseek/deepseek-v3.2-speciale": { Name: "DeepSeek: DeepSeek V3.2 Speciale", - Provider: "deepseek", ContextLength: 163840, MaxOutputTokens: 163840, Supports: SupportedParameters{ @@ -819,7 +781,6 @@ var generatedModels = map[string]ModelDefinition{ }, "deepseek/deepseek-v3.2": { Name: "DeepSeek: DeepSeek V3.2", - Provider: "deepseek", ContextLength: 163840, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -840,7 +801,6 @@ var generatedModels = map[string]ModelDefinition{ }, "anthropic/claude-opus-4.5": { Name: "Anthropic: Claude Opus 4.5", - Provider: "anthropic", ContextLength: 200000, MaxOutputTokens: 64000, Supports: SupportedParameters{ @@ -861,7 +821,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemini-3-pro-image-preview": { Name: "Google: Nano Banana Pro (Gemini 3 Pro Image Preview)", - Provider: "google", ContextLength: 65536, MaxOutputTokens: 32768, Supports: SupportedParameters{ @@ -882,7 +841,6 @@ var generatedModels = map[string]ModelDefinition{ }, "x-ai/grok-4.1-fast": { Name: "xAI: Grok 4.1 Fast", - Provider: "x-ai", ContextLength: 2000000, MaxOutputTokens: 30000, Supports: SupportedParameters{ @@ -903,7 +861,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5.1": { Name: "OpenAI: GPT-5.1", - Provider: "openai", ContextLength: 400000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -924,7 +881,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5.1-chat": { Name: "OpenAI: GPT-5.1 Chat", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -945,7 +901,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5.1-codex": { Name: "OpenAI: GPT-5.1-Codex", - Provider: "openai", ContextLength: 400000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -966,7 +921,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5.1-codex-mini": { Name: "OpenAI: GPT-5.1-Codex-Mini", - Provider: "openai", ContextLength: 400000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -987,7 +941,6 @@ var generatedModels = map[string]ModelDefinition{ }, "amazon/nova-premier-v1": { Name: "Amazon: Nova Premier 1.0", - Provider: "amazon", ContextLength: 1000000, MaxOutputTokens: 32000, Supports: SupportedParameters{ @@ -1008,7 +961,6 @@ var generatedModels = map[string]ModelDefinition{ }, "perplexity/sonar-pro-search": { Name: "Perplexity: Sonar Pro Search", - Provider: "perplexity", ContextLength: 200000, MaxOutputTokens: 8000, Supports: SupportedParameters{ @@ -1029,7 +981,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/voxtral-small-24b-2507": { Name: "Mistral: Voxtral Small 24B 2507", - Provider: "mistralai", ContextLength: 32000, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -1050,7 +1001,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-oss-safeguard-20b": { Name: "OpenAI: gpt-oss-safeguard-20b", - Provider: "openai", ContextLength: 131072, MaxOutputTokens: 65536, Supports: SupportedParameters{ @@ -1071,7 +1021,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5-image-mini": { Name: "OpenAI: GPT-5 Image Mini", - Provider: "openai", ContextLength: 400000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -1092,7 +1041,6 @@ var generatedModels = map[string]ModelDefinition{ }, "anthropic/claude-haiku-4.5": { Name: "Anthropic: Claude Haiku 4.5", - Provider: "anthropic", ContextLength: 200000, MaxOutputTokens: 64000, Supports: SupportedParameters{ @@ -1113,7 +1061,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5-image": { Name: "OpenAI: GPT-5 Image", - Provider: "openai", ContextLength: 400000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -1134,7 +1081,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/o3-deep-research": { Name: "OpenAI: o3 Deep Research", - Provider: "openai", ContextLength: 200000, MaxOutputTokens: 100000, Supports: SupportedParameters{ @@ -1155,7 +1101,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/o4-mini-deep-research": { Name: "OpenAI: o4 Mini Deep Research", - Provider: "openai", ContextLength: 200000, MaxOutputTokens: 100000, Supports: SupportedParameters{ @@ -1176,7 +1121,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemini-2.5-flash-image": { Name: "Google: Nano Banana (Gemini 2.5 Flash Image)", - Provider: "google", ContextLength: 32768, MaxOutputTokens: 32768, Supports: SupportedParameters{ @@ -1197,7 +1141,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5-pro": { Name: "OpenAI: GPT-5 Pro", - Provider: "openai", ContextLength: 400000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -1218,7 +1161,6 @@ var generatedModels = map[string]ModelDefinition{ }, "anthropic/claude-sonnet-4.5": { Name: "Anthropic: Claude Sonnet 4.5", - Provider: "anthropic", ContextLength: 1000000, MaxOutputTokens: 64000, Supports: SupportedParameters{ @@ -1239,7 +1181,6 @@ var generatedModels = map[string]ModelDefinition{ }, "deepseek/deepseek-v3.2-exp": { Name: "DeepSeek: DeepSeek V3.2 Exp", - Provider: "deepseek", ContextLength: 163840, MaxOutputTokens: 65536, Supports: SupportedParameters{ @@ -1260,7 +1201,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemini-2.5-flash-lite-preview-09-2025": { Name: "Google: Gemini 2.5 Flash Lite Preview 09-2025", - Provider: "google", ContextLength: 1048576, MaxOutputTokens: 65535, Supports: SupportedParameters{ @@ -1281,7 +1221,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5-codex": { Name: "OpenAI: GPT-5 Codex", - Provider: "openai", ContextLength: 400000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -1302,7 +1241,6 @@ var generatedModels = map[string]ModelDefinition{ }, "deepseek/deepseek-v3.1-terminus": { Name: "DeepSeek: DeepSeek V3.1 Terminus", - Provider: "deepseek", ContextLength: 163840, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -1323,7 +1261,6 @@ var generatedModels = map[string]ModelDefinition{ }, "x-ai/grok-4-fast": { Name: "xAI: Grok 4 Fast", - Provider: "x-ai", ContextLength: 2000000, MaxOutputTokens: 30000, Supports: SupportedParameters{ @@ -1344,7 +1281,6 @@ var generatedModels = map[string]ModelDefinition{ }, "x-ai/grok-code-fast-1": { Name: "xAI: Grok Code Fast 1", - Provider: "x-ai", ContextLength: 256000, MaxOutputTokens: 10000, Supports: SupportedParameters{ @@ -1365,7 +1301,6 @@ var generatedModels = map[string]ModelDefinition{ }, "deepseek/deepseek-chat-v3.1": { Name: "DeepSeek: DeepSeek V3.1", - Provider: "deepseek", ContextLength: 32768, MaxOutputTokens: 7168, Supports: SupportedParameters{ @@ -1386,7 +1321,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-4o-audio-preview": { Name: "OpenAI: GPT-4o Audio", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -1407,7 +1341,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/mistral-medium-3.1": { Name: "Mistral: Mistral Medium 3.1", - Provider: "mistralai", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -1428,7 +1361,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5-chat": { Name: "OpenAI: GPT-5 Chat", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -1449,7 +1381,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5": { Name: "OpenAI: GPT-5", - Provider: "openai", ContextLength: 400000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -1470,7 +1401,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5-mini": { Name: "OpenAI: GPT-5 Mini", - Provider: "openai", ContextLength: 400000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -1491,7 +1421,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-5-nano": { Name: "OpenAI: GPT-5 Nano", - Provider: "openai", ContextLength: 400000, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -1512,7 +1441,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-oss-120b:free": { Name: "OpenAI: gpt-oss-120b (free)", - Provider: "openai", ContextLength: 131072, MaxOutputTokens: 131072, Supports: SupportedParameters{ @@ -1533,7 +1461,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-oss-120b": { Name: "OpenAI: gpt-oss-120b", - Provider: "openai", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -1554,7 +1481,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-oss-20b:free": { Name: "OpenAI: gpt-oss-20b (free)", - Provider: "openai", ContextLength: 131072, MaxOutputTokens: 8192, Supports: SupportedParameters{ @@ -1575,7 +1501,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-oss-20b": { Name: "OpenAI: gpt-oss-20b", - Provider: "openai", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -1596,7 +1521,6 @@ var generatedModels = map[string]ModelDefinition{ }, "anthropic/claude-opus-4.1": { Name: "Anthropic: Claude Opus 4.1", - Provider: "anthropic", ContextLength: 200000, MaxOutputTokens: 32000, Supports: SupportedParameters{ @@ -1617,7 +1541,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/codestral-2508": { Name: "Mistral: Codestral 2508", - Provider: "mistralai", ContextLength: 256000, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -1638,7 +1561,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemini-2.5-flash-lite": { Name: "Google: Gemini 2.5 Flash Lite", - Provider: "google", ContextLength: 1048576, MaxOutputTokens: 65535, Supports: SupportedParameters{ @@ -1659,7 +1581,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/devstral-medium": { Name: "Mistral: Devstral Medium", - Provider: "mistralai", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -1680,7 +1601,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/devstral-small": { Name: "Mistral: Devstral Small 1.1", - Provider: "mistralai", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -1701,7 +1621,6 @@ var generatedModels = map[string]ModelDefinition{ }, "x-ai/grok-4": { Name: "xAI: Grok 4", - Provider: "x-ai", ContextLength: 256000, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -1722,7 +1641,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemma-3n-e2b-it:free": { Name: "Google: Gemma 3n 2B (free)", - Provider: "google", ContextLength: 8192, MaxOutputTokens: 2048, Supports: SupportedParameters{ @@ -1743,7 +1661,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/mistral-small-3.2-24b-instruct": { Name: "Mistral: Mistral Small 3.2 24B", - Provider: "mistralai", ContextLength: 128000, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -1764,7 +1681,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemini-2.5-flash": { Name: "Google: Gemini 2.5 Flash", - Provider: "google", ContextLength: 1048576, MaxOutputTokens: 65535, Supports: SupportedParameters{ @@ -1785,7 +1701,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemini-2.5-pro": { Name: "Google: Gemini 2.5 Pro", - Provider: "google", ContextLength: 1048576, MaxOutputTokens: 65536, Supports: SupportedParameters{ @@ -1806,7 +1721,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/o3-pro": { Name: "OpenAI: o3 Pro", - Provider: "openai", ContextLength: 200000, MaxOutputTokens: 100000, Supports: SupportedParameters{ @@ -1827,7 +1741,6 @@ var generatedModels = map[string]ModelDefinition{ }, "x-ai/grok-3-mini": { Name: "xAI: Grok 3 Mini", - Provider: "x-ai", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -1848,7 +1761,6 @@ var generatedModels = map[string]ModelDefinition{ }, "x-ai/grok-3": { Name: "xAI: Grok 3", - Provider: "x-ai", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -1869,7 +1781,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemini-2.5-pro-preview": { Name: "Google: Gemini 2.5 Pro Preview 06-05", - Provider: "google", ContextLength: 1048576, MaxOutputTokens: 65536, Supports: SupportedParameters{ @@ -1890,7 +1801,6 @@ var generatedModels = map[string]ModelDefinition{ }, "deepseek/deepseek-r1-0528": { Name: "DeepSeek: R1 0528", - Provider: "deepseek", ContextLength: 163840, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -1911,7 +1821,6 @@ var generatedModels = map[string]ModelDefinition{ }, "anthropic/claude-opus-4": { Name: "Anthropic: Claude Opus 4", - Provider: "anthropic", ContextLength: 200000, MaxOutputTokens: 32000, Supports: SupportedParameters{ @@ -1932,7 +1841,6 @@ var generatedModels = map[string]ModelDefinition{ }, "anthropic/claude-sonnet-4": { Name: "Anthropic: Claude Sonnet 4", - Provider: "anthropic", ContextLength: 1000000, MaxOutputTokens: 64000, Supports: SupportedParameters{ @@ -1953,7 +1861,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemma-3n-e4b-it:free": { Name: "Google: Gemma 3n 4B (free)", - Provider: "google", ContextLength: 8192, MaxOutputTokens: 2048, Supports: SupportedParameters{ @@ -1974,7 +1881,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemma-3n-e4b-it": { Name: "Google: Gemma 3n 4B", - Provider: "google", ContextLength: 32768, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -1995,7 +1901,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/mistral-medium-3": { Name: "Mistral: Mistral Medium 3", - Provider: "mistralai", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -2016,7 +1921,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemini-2.5-pro-preview-05-06": { Name: "Google: Gemini 2.5 Pro Preview 05-06", - Provider: "google", ContextLength: 1048576, MaxOutputTokens: 65535, Supports: SupportedParameters{ @@ -2037,7 +1941,6 @@ var generatedModels = map[string]ModelDefinition{ }, "meta-llama/llama-guard-4-12b": { Name: "Meta: Llama Guard 4 12B", - Provider: "meta-llama", ContextLength: 163840, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -2058,7 +1961,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/o4-mini-high": { Name: "OpenAI: o4 Mini High", - Provider: "openai", ContextLength: 200000, MaxOutputTokens: 100000, Supports: SupportedParameters{ @@ -2079,7 +1981,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/o3": { Name: "OpenAI: o3", - Provider: "openai", ContextLength: 200000, MaxOutputTokens: 100000, Supports: SupportedParameters{ @@ -2100,7 +2001,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/o4-mini": { Name: "OpenAI: o4 Mini", - Provider: "openai", ContextLength: 200000, MaxOutputTokens: 100000, Supports: SupportedParameters{ @@ -2121,7 +2021,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-4.1": { Name: "OpenAI: GPT-4.1", - Provider: "openai", ContextLength: 1047576, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -2142,7 +2041,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-4.1-mini": { Name: "OpenAI: GPT-4.1 Mini", - Provider: "openai", ContextLength: 1047576, MaxOutputTokens: 32768, Supports: SupportedParameters{ @@ -2163,7 +2061,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-4.1-nano": { Name: "OpenAI: GPT-4.1 Nano", - Provider: "openai", ContextLength: 1047576, MaxOutputTokens: 32768, Supports: SupportedParameters{ @@ -2184,7 +2081,6 @@ var generatedModels = map[string]ModelDefinition{ }, "x-ai/grok-3-mini-beta": { Name: "xAI: Grok 3 Mini Beta", - Provider: "x-ai", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -2205,7 +2101,6 @@ var generatedModels = map[string]ModelDefinition{ }, "x-ai/grok-3-beta": { Name: "xAI: Grok 3 Beta", - Provider: "x-ai", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -2226,7 +2121,6 @@ var generatedModels = map[string]ModelDefinition{ }, "meta-llama/llama-4-maverick": { Name: "Meta: Llama 4 Maverick", - Provider: "meta-llama", ContextLength: 1048576, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -2247,7 +2141,6 @@ var generatedModels = map[string]ModelDefinition{ }, "meta-llama/llama-4-scout": { Name: "Meta: Llama 4 Scout", - Provider: "meta-llama", ContextLength: 327680, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -2268,7 +2161,6 @@ var generatedModels = map[string]ModelDefinition{ }, "deepseek/deepseek-chat-v3-0324": { Name: "DeepSeek: DeepSeek V3 0324", - Provider: "deepseek", ContextLength: 163840, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -2289,7 +2181,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/o1-pro": { Name: "OpenAI: o1-pro", - Provider: "openai", ContextLength: 200000, MaxOutputTokens: 100000, Supports: SupportedParameters{ @@ -2310,7 +2201,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/mistral-small-3.1-24b-instruct": { Name: "Mistral: Mistral Small 3.1 24B", - Provider: "mistralai", ContextLength: 128000, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -2331,7 +2221,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemma-3-4b-it:free": { Name: "Google: Gemma 3 4B (free)", - Provider: "google", ContextLength: 32768, MaxOutputTokens: 8192, Supports: SupportedParameters{ @@ -2352,7 +2241,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemma-3-4b-it": { Name: "Google: Gemma 3 4B", - Provider: "google", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -2373,7 +2261,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemma-3-12b-it:free": { Name: "Google: Gemma 3 12B (free)", - Provider: "google", ContextLength: 32768, MaxOutputTokens: 8192, Supports: SupportedParameters{ @@ -2394,7 +2281,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemma-3-12b-it": { Name: "Google: Gemma 3 12B", - Provider: "google", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -2415,7 +2301,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-4o-mini-search-preview": { Name: "OpenAI: GPT-4o-mini Search Preview", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -2436,7 +2321,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-4o-search-preview": { Name: "OpenAI: GPT-4o Search Preview", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -2457,7 +2341,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemma-3-27b-it:free": { Name: "Google: Gemma 3 27B (free)", - Provider: "google", ContextLength: 131072, MaxOutputTokens: 8192, Supports: SupportedParameters{ @@ -2478,7 +2361,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemma-3-27b-it": { Name: "Google: Gemma 3 27B", - Provider: "google", ContextLength: 131072, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -2499,7 +2381,6 @@ var generatedModels = map[string]ModelDefinition{ }, "perplexity/sonar-reasoning-pro": { Name: "Perplexity: Sonar Reasoning Pro", - Provider: "perplexity", ContextLength: 128000, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -2520,7 +2401,6 @@ var generatedModels = map[string]ModelDefinition{ }, "perplexity/sonar-pro": { Name: "Perplexity: Sonar Pro", - Provider: "perplexity", ContextLength: 200000, MaxOutputTokens: 8000, Supports: SupportedParameters{ @@ -2541,7 +2421,6 @@ var generatedModels = map[string]ModelDefinition{ }, "perplexity/sonar-deep-research": { Name: "Perplexity: Sonar Deep Research", - Provider: "perplexity", ContextLength: 128000, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -2562,7 +2441,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemini-2.0-flash-lite-001": { Name: "Google: Gemini 2.0 Flash Lite", - Provider: "google", ContextLength: 1048576, MaxOutputTokens: 8192, Supports: SupportedParameters{ @@ -2583,7 +2461,6 @@ var generatedModels = map[string]ModelDefinition{ }, "anthropic/claude-3.7-sonnet": { Name: "Anthropic: Claude 3.7 Sonnet", - Provider: "anthropic", ContextLength: 200000, MaxOutputTokens: 128000, Supports: SupportedParameters{ @@ -2604,7 +2481,6 @@ var generatedModels = map[string]ModelDefinition{ }, "anthropic/claude-3.7-sonnet:thinking": { Name: "Anthropic: Claude 3.7 Sonnet (thinking)", - Provider: "anthropic", ContextLength: 200000, MaxOutputTokens: 64000, Supports: SupportedParameters{ @@ -2625,7 +2501,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/mistral-saba": { Name: "Mistral: Saba", - Provider: "mistralai", ContextLength: 32768, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -2646,7 +2521,6 @@ var generatedModels = map[string]ModelDefinition{ }, "meta-llama/llama-guard-3-8b": { Name: "Llama Guard 3 8B", - Provider: "meta-llama", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -2667,7 +2541,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/o3-mini-high": { Name: "OpenAI: o3 Mini High", - Provider: "openai", ContextLength: 200000, MaxOutputTokens: 100000, Supports: SupportedParameters{ @@ -2688,7 +2561,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemini-2.0-flash-001": { Name: "Google: Gemini 2.0 Flash", - Provider: "google", ContextLength: 1048576, MaxOutputTokens: 8192, Supports: SupportedParameters{ @@ -2709,7 +2581,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/o3-mini": { Name: "OpenAI: o3 Mini", - Provider: "openai", ContextLength: 200000, MaxOutputTokens: 100000, Supports: SupportedParameters{ @@ -2730,7 +2601,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/mistral-small-24b-instruct-2501": { Name: "Mistral: Mistral Small 3", - Provider: "mistralai", ContextLength: 32768, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -2751,7 +2621,6 @@ var generatedModels = map[string]ModelDefinition{ }, "deepseek/deepseek-r1-distill-qwen-32b": { Name: "DeepSeek: R1 Distill Qwen 32B", - Provider: "deepseek", ContextLength: 32768, MaxOutputTokens: 32768, Supports: SupportedParameters{ @@ -2772,7 +2641,6 @@ var generatedModels = map[string]ModelDefinition{ }, "perplexity/sonar": { Name: "Perplexity: Sonar", - Provider: "perplexity", ContextLength: 127072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -2793,7 +2661,6 @@ var generatedModels = map[string]ModelDefinition{ }, "deepseek/deepseek-r1-distill-llama-70b": { Name: "DeepSeek: R1 Distill Llama 70B", - Provider: "deepseek", ContextLength: 131072, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -2814,7 +2681,6 @@ var generatedModels = map[string]ModelDefinition{ }, "deepseek/deepseek-r1": { Name: "DeepSeek: R1", - Provider: "deepseek", ContextLength: 64000, MaxOutputTokens: 16000, Supports: SupportedParameters{ @@ -2835,7 +2701,6 @@ var generatedModels = map[string]ModelDefinition{ }, "deepseek/deepseek-chat": { Name: "DeepSeek: DeepSeek V3", - Provider: "deepseek", ContextLength: 163840, MaxOutputTokens: 163840, Supports: SupportedParameters{ @@ -2856,7 +2721,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/o1": { Name: "OpenAI: o1", - Provider: "openai", ContextLength: 200000, MaxOutputTokens: 100000, Supports: SupportedParameters{ @@ -2877,7 +2741,6 @@ var generatedModels = map[string]ModelDefinition{ }, "meta-llama/llama-3.3-70b-instruct:free": { Name: "Meta: Llama 3.3 70B Instruct (free)", - Provider: "meta-llama", ContextLength: 65536, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -2898,7 +2761,6 @@ var generatedModels = map[string]ModelDefinition{ }, "meta-llama/llama-3.3-70b-instruct": { Name: "Meta: Llama 3.3 70B Instruct", - Provider: "meta-llama", ContextLength: 131072, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -2919,7 +2781,6 @@ var generatedModels = map[string]ModelDefinition{ }, "amazon/nova-lite-v1": { Name: "Amazon: Nova Lite 1.0", - Provider: "amazon", ContextLength: 300000, MaxOutputTokens: 5120, Supports: SupportedParameters{ @@ -2940,7 +2801,6 @@ var generatedModels = map[string]ModelDefinition{ }, "amazon/nova-micro-v1": { Name: "Amazon: Nova Micro 1.0", - Provider: "amazon", ContextLength: 128000, MaxOutputTokens: 5120, Supports: SupportedParameters{ @@ -2961,7 +2821,6 @@ var generatedModels = map[string]ModelDefinition{ }, "amazon/nova-pro-v1": { Name: "Amazon: Nova Pro 1.0", - Provider: "amazon", ContextLength: 300000, MaxOutputTokens: 5120, Supports: SupportedParameters{ @@ -2982,7 +2841,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-4o-2024-11-20": { Name: "OpenAI: GPT-4o (2024-11-20)", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -3003,7 +2861,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/mistral-large-2411": { Name: "Mistral Large 2411", - Provider: "mistralai", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -3024,7 +2881,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/mistral-large-2407": { Name: "Mistral Large 2407", - Provider: "mistralai", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -3045,7 +2901,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/pixtral-large-2411": { Name: "Mistral: Pixtral Large 2411", - Provider: "mistralai", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -3066,7 +2921,6 @@ var generatedModels = map[string]ModelDefinition{ }, "anthropic/claude-3.5-haiku": { Name: "Anthropic: Claude 3.5 Haiku", - Provider: "anthropic", ContextLength: 200000, MaxOutputTokens: 8192, Supports: SupportedParameters{ @@ -3087,7 +2941,6 @@ var generatedModels = map[string]ModelDefinition{ }, "meta-llama/llama-3.2-1b-instruct": { Name: "Meta: Llama 3.2 1B Instruct", - Provider: "meta-llama", ContextLength: 60000, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -3108,7 +2961,6 @@ var generatedModels = map[string]ModelDefinition{ }, "meta-llama/llama-3.2-11b-vision-instruct": { Name: "Meta: Llama 3.2 11B Vision Instruct", - Provider: "meta-llama", ContextLength: 131072, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -3129,7 +2981,6 @@ var generatedModels = map[string]ModelDefinition{ }, "meta-llama/llama-3.2-3b-instruct:free": { Name: "Meta: Llama 3.2 3B Instruct (free)", - Provider: "meta-llama", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -3150,7 +3001,6 @@ var generatedModels = map[string]ModelDefinition{ }, "meta-llama/llama-3.2-3b-instruct": { Name: "Meta: Llama 3.2 3B Instruct", - Provider: "meta-llama", ContextLength: 80000, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -3171,7 +3021,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-4o-2024-08-06": { Name: "OpenAI: GPT-4o (2024-08-06)", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -3192,7 +3041,6 @@ var generatedModels = map[string]ModelDefinition{ }, "meta-llama/llama-3.1-8b-instruct": { Name: "Meta: Llama 3.1 8B Instruct", - Provider: "meta-llama", ContextLength: 16384, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -3213,7 +3061,6 @@ var generatedModels = map[string]ModelDefinition{ }, "meta-llama/llama-3.1-70b-instruct": { Name: "Meta: Llama 3.1 70B Instruct", - Provider: "meta-llama", ContextLength: 131072, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -3234,7 +3081,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/mistral-nemo": { Name: "Mistral: Mistral Nemo", - Provider: "mistralai", ContextLength: 131072, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -3255,7 +3101,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-4o-mini-2024-07-18": { Name: "OpenAI: GPT-4o-mini (2024-07-18)", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -3276,7 +3121,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-4o-mini": { Name: "OpenAI: GPT-4o-mini", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -3297,7 +3141,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemma-2-27b-it": { Name: "Google: Gemma 2 27B", - Provider: "google", ContextLength: 8192, MaxOutputTokens: 2048, Supports: SupportedParameters{ @@ -3318,7 +3161,6 @@ var generatedModels = map[string]ModelDefinition{ }, "google/gemma-2-9b-it": { Name: "Google: Gemma 2 9B", - Provider: "google", ContextLength: 8192, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -3339,7 +3181,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-4o-2024-05-13": { Name: "OpenAI: GPT-4o (2024-05-13)", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 4096, Supports: SupportedParameters{ @@ -3360,7 +3201,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-4o": { Name: "OpenAI: GPT-4o", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -3381,7 +3221,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-4o:extended": { Name: "OpenAI: GPT-4o (extended)", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 64000, Supports: SupportedParameters{ @@ -3402,7 +3241,6 @@ var generatedModels = map[string]ModelDefinition{ }, "meta-llama/llama-3-8b-instruct": { Name: "Meta: Llama 3 8B Instruct", - Provider: "meta-llama", ContextLength: 8192, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -3423,7 +3261,6 @@ var generatedModels = map[string]ModelDefinition{ }, "meta-llama/llama-3-70b-instruct": { Name: "Meta: Llama 3 70B Instruct", - Provider: "meta-llama", ContextLength: 8192, MaxOutputTokens: 8000, Supports: SupportedParameters{ @@ -3444,7 +3281,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/mixtral-8x22b-instruct": { Name: "Mistral: Mixtral 8x22B Instruct", - Provider: "mistralai", ContextLength: 65536, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -3465,7 +3301,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-4-turbo": { Name: "OpenAI: GPT-4 Turbo", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 4096, Supports: SupportedParameters{ @@ -3486,7 +3321,6 @@ var generatedModels = map[string]ModelDefinition{ }, "anthropic/claude-3-haiku": { Name: "Anthropic: Claude 3 Haiku", - Provider: "anthropic", ContextLength: 200000, MaxOutputTokens: 4096, Supports: SupportedParameters{ @@ -3507,7 +3341,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/mistral-large": { Name: "Mistral Large", - Provider: "mistralai", ContextLength: 128000, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -3528,7 +3361,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-3.5-turbo-0613": { Name: "OpenAI: GPT-3.5 Turbo (older v0613)", - Provider: "openai", ContextLength: 4095, MaxOutputTokens: 4096, Supports: SupportedParameters{ @@ -3549,7 +3381,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-4-turbo-preview": { Name: "OpenAI: GPT-4 Turbo Preview", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 4096, Supports: SupportedParameters{ @@ -3570,7 +3401,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/mixtral-8x7b-instruct": { Name: "Mistral: Mixtral 8x7B Instruct", - Provider: "mistralai", ContextLength: 32768, MaxOutputTokens: 16384, Supports: SupportedParameters{ @@ -3591,7 +3421,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-4-1106-preview": { Name: "OpenAI: GPT-4 Turbo (older v1106)", - Provider: "openai", ContextLength: 128000, MaxOutputTokens: 4096, Supports: SupportedParameters{ @@ -3612,7 +3441,6 @@ var generatedModels = map[string]ModelDefinition{ }, "mistralai/mistral-7b-instruct-v0.1": { Name: "Mistral: Mistral 7B Instruct v0.1", - Provider: "mistralai", ContextLength: 2824, MaxOutputTokens: 0, Supports: SupportedParameters{ @@ -3633,7 +3461,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-3.5-turbo-instruct": { Name: "OpenAI: GPT-3.5 Turbo Instruct", - Provider: "openai", ContextLength: 4095, MaxOutputTokens: 4096, Supports: SupportedParameters{ @@ -3654,7 +3481,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-3.5-turbo-16k": { Name: "OpenAI: GPT-3.5 Turbo 16k", - Provider: "openai", ContextLength: 16385, MaxOutputTokens: 4096, Supports: SupportedParameters{ @@ -3675,7 +3501,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-4-0314": { Name: "OpenAI: GPT-4 (older v0314)", - Provider: "openai", ContextLength: 8191, MaxOutputTokens: 4096, Supports: SupportedParameters{ @@ -3696,7 +3521,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-3.5-turbo": { Name: "OpenAI: GPT-3.5 Turbo", - Provider: "openai", ContextLength: 16385, MaxOutputTokens: 4096, Supports: SupportedParameters{ @@ -3717,7 +3541,6 @@ var generatedModels = map[string]ModelDefinition{ }, "openai/gpt-4": { Name: "OpenAI: GPT-4", - Provider: "openai", ContextLength: 8191, MaxOutputTokens: 4096, Supports: SupportedParameters{ diff --git a/pkg/llm/registry_test.go b/pkg/llm/registry_test.go index e1d6adf44..f9a09000c 100644 --- a/pkg/llm/registry_test.go +++ b/pkg/llm/registry_test.go @@ -28,7 +28,6 @@ func TestRegistry_Lookup(t *testing.T) { r := llm.NewRegistry(map[string]llm.ModelDefinition{ "acme/test-model-1.5": { Name: "Acme: Test Model 1.5", - Provider: "acme", ContextLength: 8192, MaxOutputTokens: 4096, Supports: llm.SupportedParameters{ @@ -46,7 +45,7 @@ func TestRegistry_Lookup(t *testing.T) { m, ok := r.Lookup("acme/test-model-1.5") require.True(t, ok) assert.Equal(t, "acme/test-model-1.5", m.ID) - assert.Equal(t, "acme", m.Provider) + assert.Equal(t, "acme", m.Provider()) assert.Equal(t, 8192, m.ContextLength) assert.Equal(t, 4096, m.MaxOutputTokens) }, @@ -59,7 +58,7 @@ func TestRegistry_Lookup(t *testing.T) { m, ok := r.Lookup("test-model-1.5") require.True(t, ok) - assert.Equal(t, "acme", m.Provider) + assert.Equal(t, "acme", m.Provider()) }, ) @@ -70,7 +69,7 @@ func TestRegistry_Lookup(t *testing.T) { m, ok := r.Lookup("test-model-1-5") require.True(t, ok) - assert.Equal(t, "acme", m.Provider) + assert.Equal(t, "acme", m.Provider()) }, ) @@ -110,16 +109,14 @@ func TestRegistry_Capabilities(t *testing.T) { r := llm.NewRegistry(map[string]llm.ModelDefinition{ "acme/reasoning-model": { - Name: "Acme: Reasoning Model", - Provider: "acme", + Name: "Acme: Reasoning Model", Supports: llm.SupportedParameters{ Reasoning: true, Seed: true, }, }, "acme/chat-model": { - Name: "Acme: Chat Model", - Provider: "acme", + Name: "Acme: Chat Model", Supports: llm.SupportedParameters{ Temperature: true, TopP: true,