openrouter.go

  1package models
  2
  3const (
  4	ProviderOpenRouter ModelProvider = "openrouter"
  5
  6	OpenRouterGPT41          ModelID = "openrouter.gpt-4.1"
  7	OpenRouterGPT41Mini      ModelID = "openrouter.gpt-4.1-mini"
  8	OpenRouterGPT41Nano      ModelID = "openrouter.gpt-4.1-nano"
  9	OpenRouterGPT45Preview   ModelID = "openrouter.gpt-4.5-preview"
 10	OpenRouterGPT4o          ModelID = "openrouter.gpt-4o"
 11	OpenRouterGPT4oMini      ModelID = "openrouter.gpt-4o-mini"
 12	OpenRouterO1             ModelID = "openrouter.o1"
 13	OpenRouterO1Pro          ModelID = "openrouter.o1-pro"
 14	OpenRouterO1Mini         ModelID = "openrouter.o1-mini"
 15	OpenRouterO3             ModelID = "openrouter.o3"
 16	OpenRouterO3Mini         ModelID = "openrouter.o3-mini"
 17	OpenRouterO4Mini         ModelID = "openrouter.o4-mini"
 18	OpenRouterGemini25Flash  ModelID = "openrouter.gemini-2.5-flash"
 19	OpenRouterGemini25       ModelID = "openrouter.gemini-2.5"
 20	OpenRouterClaude35Sonnet ModelID = "openrouter.claude-3.5-sonnet"
 21	OpenRouterClaude3Haiku   ModelID = "openrouter.claude-3-haiku"
 22	OpenRouterClaude37Sonnet ModelID = "openrouter.claude-3.7-sonnet"
 23	OpenRouterClaude35Haiku  ModelID = "openrouter.claude-3.5-haiku"
 24	OpenRouterClaude3Opus    ModelID = "openrouter.claude-3-opus"
 25)
 26
 27var OpenRouterModels = map[ModelID]Model{
 28	OpenRouterGPT41: {
 29		ID:                 OpenRouterGPT41,
 30		Name:               "OpenRouter – GPT 4.1",
 31		Provider:           ProviderOpenRouter,
 32		APIModel:           "openai/gpt-4.1",
 33		CostPer1MIn:        OpenAIModels[GPT41].CostPer1MIn,
 34		CostPer1MInCached:  OpenAIModels[GPT41].CostPer1MInCached,
 35		CostPer1MOut:       OpenAIModels[GPT41].CostPer1MOut,
 36		CostPer1MOutCached: OpenAIModels[GPT41].CostPer1MOutCached,
 37		ContextWindow:      OpenAIModels[GPT41].ContextWindow,
 38		DefaultMaxTokens:   OpenAIModels[GPT41].DefaultMaxTokens,
 39	},
 40	OpenRouterGPT41Mini: {
 41		ID:                 OpenRouterGPT41Mini,
 42		Name:               "OpenRouter – GPT 4.1 mini",
 43		Provider:           ProviderOpenRouter,
 44		APIModel:           "openai/gpt-4.1-mini",
 45		CostPer1MIn:        OpenAIModels[GPT41Mini].CostPer1MIn,
 46		CostPer1MInCached:  OpenAIModels[GPT41Mini].CostPer1MInCached,
 47		CostPer1MOut:       OpenAIModels[GPT41Mini].CostPer1MOut,
 48		CostPer1MOutCached: OpenAIModels[GPT41Mini].CostPer1MOutCached,
 49		ContextWindow:      OpenAIModels[GPT41Mini].ContextWindow,
 50		DefaultMaxTokens:   OpenAIModels[GPT41Mini].DefaultMaxTokens,
 51	},
 52	OpenRouterGPT41Nano: {
 53		ID:                 OpenRouterGPT41Nano,
 54		Name:               "OpenRouter – GPT 4.1 nano",
 55		Provider:           ProviderOpenRouter,
 56		APIModel:           "openai/gpt-4.1-nano",
 57		CostPer1MIn:        OpenAIModels[GPT41Nano].CostPer1MIn,
 58		CostPer1MInCached:  OpenAIModels[GPT41Nano].CostPer1MInCached,
 59		CostPer1MOut:       OpenAIModels[GPT41Nano].CostPer1MOut,
 60		CostPer1MOutCached: OpenAIModels[GPT41Nano].CostPer1MOutCached,
 61		ContextWindow:      OpenAIModels[GPT41Nano].ContextWindow,
 62		DefaultMaxTokens:   OpenAIModels[GPT41Nano].DefaultMaxTokens,
 63	},
 64	OpenRouterGPT45Preview: {
 65		ID:                 OpenRouterGPT45Preview,
 66		Name:               "OpenRouter – GPT 4.5 preview",
 67		Provider:           ProviderOpenRouter,
 68		APIModel:           "openai/gpt-4.5-preview",
 69		CostPer1MIn:        OpenAIModels[GPT45Preview].CostPer1MIn,
 70		CostPer1MInCached:  OpenAIModels[GPT45Preview].CostPer1MInCached,
 71		CostPer1MOut:       OpenAIModels[GPT45Preview].CostPer1MOut,
 72		CostPer1MOutCached: OpenAIModels[GPT45Preview].CostPer1MOutCached,
 73		ContextWindow:      OpenAIModels[GPT45Preview].ContextWindow,
 74		DefaultMaxTokens:   OpenAIModels[GPT45Preview].DefaultMaxTokens,
 75	},
 76	OpenRouterGPT4o: {
 77		ID:                 OpenRouterGPT4o,
 78		Name:               "OpenRouter – GPT 4o",
 79		Provider:           ProviderOpenRouter,
 80		APIModel:           "openai/gpt-4o",
 81		CostPer1MIn:        OpenAIModels[GPT4o].CostPer1MIn,
 82		CostPer1MInCached:  OpenAIModels[GPT4o].CostPer1MInCached,
 83		CostPer1MOut:       OpenAIModels[GPT4o].CostPer1MOut,
 84		CostPer1MOutCached: OpenAIModels[GPT4o].CostPer1MOutCached,
 85		ContextWindow:      OpenAIModels[GPT4o].ContextWindow,
 86		DefaultMaxTokens:   OpenAIModels[GPT4o].DefaultMaxTokens,
 87	},
 88	OpenRouterGPT4oMini: {
 89		ID:                 OpenRouterGPT4oMini,
 90		Name:               "OpenRouter – GPT 4o mini",
 91		Provider:           ProviderOpenRouter,
 92		APIModel:           "openai/gpt-4o-mini",
 93		CostPer1MIn:        OpenAIModels[GPT4oMini].CostPer1MIn,
 94		CostPer1MInCached:  OpenAIModels[GPT4oMini].CostPer1MInCached,
 95		CostPer1MOut:       OpenAIModels[GPT4oMini].CostPer1MOut,
 96		CostPer1MOutCached: OpenAIModels[GPT4oMini].CostPer1MOutCached,
 97		ContextWindow:      OpenAIModels[GPT4oMini].ContextWindow,
 98	},
 99	OpenRouterO1: {
100		ID:                 OpenRouterO1,
101		Name:               "OpenRouter – O1",
102		Provider:           ProviderOpenRouter,
103		APIModel:           "openai/o1",
104		CostPer1MIn:        OpenAIModels[O1].CostPer1MIn,
105		CostPer1MInCached:  OpenAIModels[O1].CostPer1MInCached,
106		CostPer1MOut:       OpenAIModels[O1].CostPer1MOut,
107		CostPer1MOutCached: OpenAIModels[O1].CostPer1MOutCached,
108		ContextWindow:      OpenAIModels[O1].ContextWindow,
109		DefaultMaxTokens:   OpenAIModels[O1].DefaultMaxTokens,
110		CanReason:          OpenAIModels[O1].CanReason,
111	},
112	OpenRouterO1Pro: {
113		ID:                 OpenRouterO1Pro,
114		Name:               "OpenRouter – o1 pro",
115		Provider:           ProviderOpenRouter,
116		APIModel:           "openai/o1-pro",
117		CostPer1MIn:        OpenAIModels[O1Pro].CostPer1MIn,
118		CostPer1MInCached:  OpenAIModels[O1Pro].CostPer1MInCached,
119		CostPer1MOut:       OpenAIModels[O1Pro].CostPer1MOut,
120		CostPer1MOutCached: OpenAIModels[O1Pro].CostPer1MOutCached,
121		ContextWindow:      OpenAIModels[O1Pro].ContextWindow,
122		DefaultMaxTokens:   OpenAIModels[O1Pro].DefaultMaxTokens,
123		CanReason:          OpenAIModels[O1Pro].CanReason,
124	},
125	OpenRouterO1Mini: {
126		ID:                 OpenRouterO1Mini,
127		Name:               "OpenRouter – o1 mini",
128		Provider:           ProviderOpenRouter,
129		APIModel:           "openai/o1-mini",
130		CostPer1MIn:        OpenAIModels[O1Mini].CostPer1MIn,
131		CostPer1MInCached:  OpenAIModels[O1Mini].CostPer1MInCached,
132		CostPer1MOut:       OpenAIModels[O1Mini].CostPer1MOut,
133		CostPer1MOutCached: OpenAIModels[O1Mini].CostPer1MOutCached,
134		ContextWindow:      OpenAIModels[O1Mini].ContextWindow,
135		DefaultMaxTokens:   OpenAIModels[O1Mini].DefaultMaxTokens,
136		CanReason:          OpenAIModels[O1Mini].CanReason,
137	},
138	OpenRouterO3: {
139		ID:                 OpenRouterO3,
140		Name:               "OpenRouter – o3",
141		Provider:           ProviderOpenRouter,
142		APIModel:           "openai/o3",
143		CostPer1MIn:        OpenAIModels[O3].CostPer1MIn,
144		CostPer1MInCached:  OpenAIModels[O3].CostPer1MInCached,
145		CostPer1MOut:       OpenAIModels[O3].CostPer1MOut,
146		CostPer1MOutCached: OpenAIModels[O3].CostPer1MOutCached,
147		ContextWindow:      OpenAIModels[O3].ContextWindow,
148		DefaultMaxTokens:   OpenAIModels[O3].DefaultMaxTokens,
149		CanReason:          OpenAIModels[O3].CanReason,
150	},
151	OpenRouterO3Mini: {
152		ID:                 OpenRouterO3Mini,
153		Name:               "OpenRouter – o3 mini",
154		Provider:           ProviderOpenRouter,
155		APIModel:           "openai/o3-mini-high",
156		CostPer1MIn:        OpenAIModels[O3Mini].CostPer1MIn,
157		CostPer1MInCached:  OpenAIModels[O3Mini].CostPer1MInCached,
158		CostPer1MOut:       OpenAIModels[O3Mini].CostPer1MOut,
159		CostPer1MOutCached: OpenAIModels[O3Mini].CostPer1MOutCached,
160		ContextWindow:      OpenAIModels[O3Mini].ContextWindow,
161		DefaultMaxTokens:   OpenAIModels[O3Mini].DefaultMaxTokens,
162		CanReason:          OpenAIModels[O3Mini].CanReason,
163	},
164	OpenRouterO4Mini: {
165		ID:                 OpenRouterO4Mini,
166		Name:               "OpenRouter – o4 mini",
167		Provider:           ProviderOpenRouter,
168		APIModel:           "openai/o4-mini-high",
169		CostPer1MIn:        OpenAIModels[O4Mini].CostPer1MIn,
170		CostPer1MInCached:  OpenAIModels[O4Mini].CostPer1MInCached,
171		CostPer1MOut:       OpenAIModels[O4Mini].CostPer1MOut,
172		CostPer1MOutCached: OpenAIModels[O4Mini].CostPer1MOutCached,
173		ContextWindow:      OpenAIModels[O4Mini].ContextWindow,
174		DefaultMaxTokens:   OpenAIModels[O4Mini].DefaultMaxTokens,
175		CanReason:          OpenAIModels[O4Mini].CanReason,
176	},
177	OpenRouterGemini25Flash: {
178		ID:                 OpenRouterGemini25Flash,
179		Name:               "OpenRouter – Gemini 2.5 Flash",
180		Provider:           ProviderOpenRouter,
181		APIModel:           "google/gemini-2.5-flash-preview:thinking",
182		CostPer1MIn:        GeminiModels[Gemini25Flash].CostPer1MIn,
183		CostPer1MInCached:  GeminiModels[Gemini25Flash].CostPer1MInCached,
184		CostPer1MOut:       GeminiModels[Gemini25Flash].CostPer1MOut,
185		CostPer1MOutCached: GeminiModels[Gemini25Flash].CostPer1MOutCached,
186		ContextWindow:      GeminiModels[Gemini25Flash].ContextWindow,
187		DefaultMaxTokens:   GeminiModels[Gemini25Flash].DefaultMaxTokens,
188	},
189	OpenRouterGemini25: {
190		ID:                 OpenRouterGemini25,
191		Name:               "OpenRouter – Gemini 2.5 Pro",
192		Provider:           ProviderOpenRouter,
193		APIModel:           "google/gemini-2.5-pro-preview-03-25",
194		CostPer1MIn:        GeminiModels[Gemini25].CostPer1MIn,
195		CostPer1MInCached:  GeminiModels[Gemini25].CostPer1MInCached,
196		CostPer1MOut:       GeminiModels[Gemini25].CostPer1MOut,
197		CostPer1MOutCached: GeminiModels[Gemini25].CostPer1MOutCached,
198		ContextWindow:      GeminiModels[Gemini25].ContextWindow,
199		DefaultMaxTokens:   GeminiModels[Gemini25].DefaultMaxTokens,
200	},
201	OpenRouterClaude35Sonnet: {
202		ID:                 OpenRouterClaude35Sonnet,
203		Name:               "OpenRouter – Claude 3.5 Sonnet",
204		Provider:           ProviderOpenRouter,
205		APIModel:           "anthropic/claude-3.5-sonnet",
206		CostPer1MIn:        AnthropicModels[Claude35Sonnet].CostPer1MIn,
207		CostPer1MInCached:  AnthropicModels[Claude35Sonnet].CostPer1MInCached,
208		CostPer1MOut:       AnthropicModels[Claude35Sonnet].CostPer1MOut,
209		CostPer1MOutCached: AnthropicModels[Claude35Sonnet].CostPer1MOutCached,
210		ContextWindow:      AnthropicModels[Claude35Sonnet].ContextWindow,
211		DefaultMaxTokens:   AnthropicModels[Claude35Sonnet].DefaultMaxTokens,
212	},
213	OpenRouterClaude3Haiku: {
214		ID:                 OpenRouterClaude3Haiku,
215		Name:               "OpenRouter – Claude 3 Haiku",
216		Provider:           ProviderOpenRouter,
217		APIModel:           "anthropic/claude-3-haiku",
218		CostPer1MIn:        AnthropicModels[Claude3Haiku].CostPer1MIn,
219		CostPer1MInCached:  AnthropicModels[Claude3Haiku].CostPer1MInCached,
220		CostPer1MOut:       AnthropicModels[Claude3Haiku].CostPer1MOut,
221		CostPer1MOutCached: AnthropicModels[Claude3Haiku].CostPer1MOutCached,
222		ContextWindow:      AnthropicModels[Claude3Haiku].ContextWindow,
223		DefaultMaxTokens:   AnthropicModels[Claude3Haiku].DefaultMaxTokens,
224	},
225	OpenRouterClaude37Sonnet: {
226		ID:                 OpenRouterClaude37Sonnet,
227		Name:               "OpenRouter – Claude 3.7 Sonnet",
228		Provider:           ProviderOpenRouter,
229		APIModel:           "anthropic/claude-3.7-sonnet",
230		CostPer1MIn:        AnthropicModels[Claude37Sonnet].CostPer1MIn,
231		CostPer1MInCached:  AnthropicModels[Claude37Sonnet].CostPer1MInCached,
232		CostPer1MOut:       AnthropicModels[Claude37Sonnet].CostPer1MOut,
233		CostPer1MOutCached: AnthropicModels[Claude37Sonnet].CostPer1MOutCached,
234		ContextWindow:      AnthropicModels[Claude37Sonnet].ContextWindow,
235		DefaultMaxTokens:   AnthropicModels[Claude37Sonnet].DefaultMaxTokens,
236		CanReason:          AnthropicModels[Claude37Sonnet].CanReason,
237	},
238	OpenRouterClaude35Haiku: {
239		ID:                 OpenRouterClaude35Haiku,
240		Name:               "OpenRouter – Claude 3.5 Haiku",
241		Provider:           ProviderOpenRouter,
242		APIModel:           "anthropic/claude-3.5-haiku",
243		CostPer1MIn:        AnthropicModels[Claude35Haiku].CostPer1MIn,
244		CostPer1MInCached:  AnthropicModels[Claude35Haiku].CostPer1MInCached,
245		CostPer1MOut:       AnthropicModels[Claude35Haiku].CostPer1MOut,
246		CostPer1MOutCached: AnthropicModels[Claude35Haiku].CostPer1MOutCached,
247		ContextWindow:      AnthropicModels[Claude35Haiku].ContextWindow,
248		DefaultMaxTokens:   AnthropicModels[Claude35Haiku].DefaultMaxTokens,
249	},
250	OpenRouterClaude3Opus: {
251		ID:                 OpenRouterClaude3Opus,
252		Name:               "OpenRouter – Claude 3 Opus",
253		Provider:           ProviderOpenRouter,
254		APIModel:           "anthropic/claude-3-opus",
255		CostPer1MIn:        AnthropicModels[Claude3Opus].CostPer1MIn,
256		CostPer1MInCached:  AnthropicModels[Claude3Opus].CostPer1MInCached,
257		CostPer1MOut:       AnthropicModels[Claude3Opus].CostPer1MOut,
258		CostPer1MOutCached: AnthropicModels[Claude3Opus].CostPer1MOutCached,
259		ContextWindow:      AnthropicModels[Claude3Opus].ContextWindow,
260		DefaultMaxTokens:   AnthropicModels[Claude3Opus].DefaultMaxTokens,
261	},
262}