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}