@@ -78,14 +78,13 @@ var catalog = map[string]Meta{
7878 EnvKey : "DEEPSEEK_API_KEY" ,
7979 Default : RuntimeDefault {
8080 APIType : "openai-completions" ,
81- ContextWindow : 128000 ,
81+ ContextWindow : 131072 ,
8282 MaxTokens : 8192 ,
8383 Input : []string {"text" },
8484 },
8585 Models : []Model {
8686 {ID : "deepseek/deepseek-chat" , Name : "DeepSeek Chat" },
87- {ID : "deepseek/deepseek-reasoner" , Name : "DeepSeek Reasoner" , Reasoning : true },
88- {ID : "deepseek/deepseek-r1:1.5b" , Name : "DeepSeek R1 1.5B" , Reasoning : true },
87+ {ID : "deepseek/deepseek-reasoner" , Name : "DeepSeek Reasoner" , MaxTokens : 65536 , ContextWindow : 131072 , Reasoning : true },
8988 },
9089 },
9190 "bailian-coding-plan" : {
@@ -120,16 +119,16 @@ var catalog = map[string]Meta{
120119 Default : RuntimeDefault {
121120 APIType : "openai-completions" ,
122121 ContextWindow : 256000 ,
123- MaxTokens : 8192 ,
122+ MaxTokens : 4096 ,
124123 Input : []string {"text" },
125124 },
126125 Models : []Model {
127- {ID : "ark-coding-plan/doubao-seed-2.0- code" , Name : "Doubao-Seed-2.0-Code" },
128- {ID : "ark-coding-plan/doubao-seed-code" , Name : "Doubao- Seed- Code" },
129- {ID : "ark-coding-plan/kimi-k2.5 " , Name : "Kimi-K2.5 " , Reasoning : true },
130- {ID : "ark-coding-plan/glm-4.7 " , Name : "GLM-4.7 " , Reasoning : true },
131- {ID : "ark-coding-plan/deepseek-v3.2 " , Name : "DeepSeek-V3.2 " , Reasoning : true },
132- {ID : "ark-coding-plan/kimi-k2-thinking " , Name : "Kimi-K2-thinking " , Reasoning : true },
126+ {ID : "ark-coding-plan/ark- code-latest " , Name : "Ark Coding Plan" , ContextWindow : 256000 , MaxTokens : 4096 },
127+ {ID : "ark-coding-plan/doubao-seed-code" , Name : "Doubao Seed Code" , ContextWindow : 256000 , MaxTokens : 4096 },
128+ {ID : "ark-coding-plan/glm-4.7 " , Name : "GLM 4.7 Coding " , ContextWindow : 200000 , MaxTokens : 4096 },
129+ {ID : "ark-coding-plan/kimi-k2-thinking " , Name : "Kimi K2 Thinking " , ContextWindow : 256000 , MaxTokens : 4096 },
130+ {ID : "ark-coding-plan/kimi-k2.5 " , Name : "Kimi K2.5 Coding " , ContextWindow : 256000 , MaxTokens : 4096 },
131+ {ID : "ark-coding-plan/doubao-seed-code-preview-251028 " , Name : "Doubao Seed Code Preview " , ContextWindow : 256000 , MaxTokens : 4096 },
133132 },
134133 },
135134 "zai" : {
@@ -174,19 +173,18 @@ var catalog = map[string]Meta{
174173 Key : "xiaomi" ,
175174 DisplayName : "Xiaomi" ,
176175 Sort : 46 ,
177- DefaultBaseURL : "https://api.xiaomimimo.com/anthropic " ,
176+ DefaultBaseURL : "https://api.xiaomimimo.com/v1 " ,
178177 EnvKey : "XIAOMI_API_KEY" ,
179178 Default : RuntimeDefault {
180- APIType : "anthropic-messages " ,
179+ APIType : "openai-completions " ,
181180 ContextWindow : 262144 ,
182181 MaxTokens : 8192 ,
183182 Input : []string {"text" },
184183 },
185184 Models : []Model {
186- {ID : "xiaomi/mimo-v2-pro" , Name : "Xiaomi MiMo V2 Pro" },
187- {ID : "xiaomi/mimo-v2-omni" , Name : "Xiaomi MiMo V2 Omni" },
188- {ID : "xiaomi/mimo-v2-tts" , Name : "Xiaomi MiMo V2 TTS" },
189- {ID : "xiaomi/mimo-v2-flash" , Name : "Xiaomi MiMo V2 Flash" },
185+ {ID : "xiaomi/mimo-v2-flash" , Name : "Xiaomi MiMo V2 Flash" , ContextWindow : 262144 , MaxTokens : 8192 , Input : []string {"text" }},
186+ {ID : "xiaomi/mimo-v2-pro" , Name : "Xiaomi MiMo V2 Pro" , ContextWindow : 1048576 , MaxTokens : 32000 , Reasoning : true , Input : []string {"text" }},
187+ {ID : "xiaomi/mimo-v2-omni" , Name : "Xiaomi MiMo V2 Omni" , ContextWindow : 262144 , MaxTokens : 32000 , Reasoning : true , Input : []string {"text" , "image" }},
190188 },
191189 },
192190 "kimi" : {
@@ -214,13 +212,14 @@ var catalog = map[string]Meta{
214212 DefaultBaseURL : "https://api.kimi.com/coding/" ,
215213 EnvKey : "KIMI_API_KEY" ,
216214 Default : RuntimeDefault {
217- APIType : "openai-completions " ,
215+ APIType : "anthropic-messages " ,
218216 ContextWindow : 262144 ,
219217 MaxTokens : 32768 ,
220218 Input : []string {"text" , "image" },
221219 },
222220 Models : []Model {
223- {ID : "kimi-coding/k2p5" , Name : "Kimi K2.5" , Reasoning : true },
221+ {ID : "kimi-coding/kimi-code" , Name : "Kimi Code" , ContextWindow : 262144 , MaxTokens : 32768 , Reasoning : true , Input : []string {"text" , "image" }},
222+ {ID : "kimi-coding/k2p5" , Name : "Kimi K2.5" , ContextWindow : 262144 , MaxTokens : 32768 , Reasoning : true , Input : []string {"text" , "image" }},
224223 },
225224 },
226225 "openai" : {
@@ -230,17 +229,16 @@ var catalog = map[string]Meta{
230229 DefaultBaseURL : "https://api.openai.com/v1" ,
231230 EnvKey : "OPENAI_API_KEY" ,
232231 Default : RuntimeDefault {
233- APIType : "openai-completions " ,
234- ContextWindow : 256000 ,
235- MaxTokens : 8192 ,
232+ APIType : "openai-responses " ,
233+ ContextWindow : 272000 ,
234+ MaxTokens : 128000 ,
236235 Input : []string {"text" , "image" },
237236 },
238237 Models : []Model {
239- {ID : "openai/codex-mini-latest" , Name : "Codex Mini" , Reasoning : true },
240- {ID : "openai/gpt-5" , Name : "GPT-5" , Reasoning : true },
241- {ID : "openai/gpt-5-mini" , Name : "GPT-5 Mini" , Reasoning : true },
242- {ID : "openai/gpt-5.4" , Name : "GPT-5.4" , Reasoning : true },
243- {ID : "openai/gpt-5.3-codex" , Name : "GPT-5.3-Codex" , Reasoning : true },
238+ {ID : "openai/gpt-5.4" , Name : "gpt-5.4" , ContextWindow : 272000 , MaxTokens : 128000 , Reasoning : true , Input : []string {"text" , "image" }},
239+ {ID : "openai/gpt-5.4-pro" , Name : "gpt-5.4-pro" , ContextWindow : 1050000 , MaxTokens : 128000 , Reasoning : true , Input : []string {"text" , "image" }},
240+ {ID : "openai/gpt-5.4-mini" , Name : "gpt-5.4-mini" , ContextWindow : 400000 , MaxTokens : 128000 , Reasoning : true , Input : []string {"text" , "image" }},
241+ {ID : "openai/gpt-5.4-nano" , Name : "gpt-5.4-nano" , ContextWindow : 400000 , MaxTokens : 128000 , Reasoning : true , Input : []string {"text" , "image" }},
244242 },
245243 },
246244 "openrouter" : {
@@ -267,17 +265,17 @@ var catalog = map[string]Meta{
267265 DefaultBaseURL : "https://api.anthropic.com" ,
268266 EnvKey : "ANTHROPIC_API_KEY" ,
269267 Default : RuntimeDefault {
270- APIType : "openai-completions " ,
268+ APIType : "anthropic-messages " ,
271269 ContextWindow : 256000 ,
272270 MaxTokens : 8192 ,
273271 Input : []string {"text" , "image" },
274272 },
275273 Models : []Model {
276- {ID : "anthropic/claude-3-haiku-20240307 " , Name : "Claude 3 Haiku" },
277- {ID : "anthropic/claude-3-5-haiku-latest " , Name : "Claude 3.5 Haiku" },
278- {ID : "anthropic/claude-3-5-sonnet-20241022 " , Name : "Claude 3.5 Sonnet " },
279- {ID : "anthropic/claude-3-7- sonnet-20250219 " , Name : "Claude 3.7 Sonnet" , Reasoning : true },
280- {ID : "anthropic/claude-opus -4-1 " , Name : "Claude Opus 4.1" , Reasoning : true },
274+ {ID : "anthropic/claude-sonnet-4-6 " , Name : "Claude Sonnet 4.6" , Reasoning : true },
275+ {ID : "anthropic/claude-opus-4-6 " , Name : "Claude Opus 4.6" , Reasoning : true },
276+ {ID : "anthropic/claude-opus-4-5 " , Name : "Claude Opus 4.5 " },
277+ {ID : "anthropic/claude-sonnet-4-5 " , Name : "Claude Sonnet 4.5" },
278+ {ID : "anthropic/claude-haiku -4-5 " , Name : "Claude Haiku 4.5" },
281279 },
282280 },
283281 "gemini" : {
@@ -319,7 +317,7 @@ var catalog = map[string]Meta{
319317}
320318
321319func Get (key string ) (Meta , bool ) {
322- meta , ok := catalog [strings . ToLower ( strings . TrimSpace ( key )) ]
320+ meta , ok := catalog [key ]
323321 if ! ok {
324322 return Meta {}, false
325323 }
@@ -335,23 +333,23 @@ func All() map[string]Meta {
335333}
336334
337335func DefaultBaseURL (key string ) (string , bool ) {
338- meta , ok := catalog [strings . ToLower ( strings . TrimSpace ( key )) ]
336+ meta , ok := catalog [key ]
339337 if ! ok || strings .TrimSpace (meta .DefaultBaseURL ) == "" {
340338 return "" , false
341339 }
342340 return meta .DefaultBaseURL , true
343341}
344342
345343func EnvKey (key string ) string {
346- meta , ok := catalog [strings . ToLower ( strings . TrimSpace ( key )) ]
344+ meta , ok := catalog [key ]
347345 if ! ok {
348346 return ""
349347 }
350348 return meta .EnvKey
351349}
352350
353351func DisplayName (key string ) string {
354- meta , ok := catalog [strings . ToLower ( strings . TrimSpace ( key )) ]
352+ meta , ok := catalog [key ]
355353 if ! ok {
356354 return key
357355 }
0 commit comments