diff --git a/resources/model-db/providers.json b/resources/model-db/providers.json index a6c8f6029..549846905 100644 --- a/resources/model-db/providers.json +++ b/resources/model-db/providers.json @@ -5869,6 +5869,41 @@ "output": 0 } }, + { + "id": "gemini-3-flash-preview", + "name": "Gemini 3 Flash", + "display_name": "Gemini 3 Flash", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-12-17", + "last_updated": "2025-12-17", + "cost": { + "input": 0, + "output": 0 + } + }, { "id": "grok-code-fast-1", "name": "Grok Code Fast 1", @@ -13752,6 +13787,42 @@ "output": 0.75 } }, + { + "id": "gemini-3-flash-preview", + "name": "Gemini 3 Flash Preview", + "display_name": "Gemini 3 Flash Preview", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-12-17", + "last_updated": "2025-12-17", + "cost": { + "input": 0.7, + "output": 3.75 + } + }, { "id": "claude-opus-45", "name": "Claude Opus 4.5", @@ -14325,6 +14396,2218 @@ } ] }, + "siliconflow-cn": { + "id": "siliconflow-cn", + "name": "SiliconFlow (China)", + "display_name": "SiliconFlow (China)", + "api": "https://api.siliconflow.cn/v1", + "doc": "https://cloud.siliconflow.com/models", + "models": [ + { + "id": "qwen-qwen2.5-14b-instruct", + "name": "Qwen/Qwen2.5-14B-Instruct", + "display_name": "Qwen/Qwen2.5-14B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 33000, + "output": 4000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-09-18", + "last_updated": "2025-11-25", + "cost": { + "input": 0.1, + "output": 0.1 + } + }, + { + "id": "moonshotai-kimi-k2-thinking", + "name": "moonshotai/Kimi-K2-Thinking", + "display_name": "moonshotai/Kimi-K2-Thinking", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-11-07", + "last_updated": "2025-11-25", + "cost": { + "input": 0.55, + "output": 2.5 + } + }, + { + "id": "qwen-qwen3-vl-30b-a3b-instruct", + "name": "Qwen/Qwen3-VL-30B-A3B-Instruct", + "display_name": "Qwen/Qwen3-VL-30B-A3B-Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-10-05", + "last_updated": "2025-11-25", + "cost": { + "input": 0.29, + "output": 1 + } + }, + { + "id": "qwen-qwen3-next-80b-a3b-instruct", + "name": "Qwen/Qwen3-Next-80B-A3B-Instruct", + "display_name": "Qwen/Qwen3-Next-80B-A3B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-09-18", + "last_updated": "2025-11-25", + "cost": { + "input": 0.14, + "output": 1.4 + } + }, + { + "id": "deepseek-ai-deepseek-r1-distill-qwen-32b", + "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-01-20", + "last_updated": "2025-11-25", + "cost": { + "input": 0.18, + "output": 0.18 + } + }, + { + "id": "thudm-glm-4-32b-0414", + "name": "THUDM/GLM-4-32B-0414", + "display_name": "THUDM/GLM-4-32B-0414", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 33000, + "output": 33000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-04-18", + "last_updated": "2025-11-25", + "cost": { + "input": 0.27, + "output": 0.27 + } + }, + { + "id": "tencent-hunyuan-a13b-instruct", + "name": "tencent/Hunyuan-A13B-Instruct", + "display_name": "tencent/Hunyuan-A13B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-06-30", + "last_updated": "2025-11-25", + "cost": { + "input": 0.14, + "output": 0.57 + } + }, + { + "id": "qwen-qwen3-32b", + "name": "Qwen/Qwen3-32B", + "display_name": "Qwen/Qwen3-32B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-04-30", + "last_updated": "2025-11-25", + "cost": { + "input": 0.14, + "output": 0.57 + } + }, + { + "id": "zai-org-glm-4.6", + "name": "zai-org/GLM-4.6", + "display_name": "zai-org/GLM-4.6", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 205000, + "output": 205000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-10-04", + "last_updated": "2025-11-25", + "cost": { + "input": 0.5, + "output": 1.9 + } + }, + { + "id": "qwen-qwen3-omni-30b-a3b-thinking", + "name": "Qwen/Qwen3-Omni-30B-A3B-Thinking", + "display_name": "Qwen/Qwen3-Omni-30B-A3B-Thinking", + "modalities": { + "input": [ + "text", + "image", + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 66000, + "output": 66000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-10-04", + "last_updated": "2025-11-25", + "cost": { + "input": 0.1, + "output": 0.4 + } + }, + { + "id": "baidu-ernie-4.5-300b-a47b", + "name": "baidu/ERNIE-4.5-300B-A47B", + "display_name": "baidu/ERNIE-4.5-300B-A47B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-07-02", + "last_updated": "2025-11-25", + "cost": { + "input": 0.28, + "output": 1.1 + } + }, + { + "id": "qwen-qwen3-235b-a22b-instruct-2507", + "name": "Qwen/Qwen3-235B-A22B-Instruct-2507", + "display_name": "Qwen/Qwen3-235B-A22B-Instruct-2507", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-07-23", + "last_updated": "2025-11-25", + "cost": { + "input": 0.09, + "output": 0.6 + } + }, + { + "id": "meta-llama-meta-llama-3.1-8b-instruct", + "name": "meta-llama/Meta-Llama-3.1-8B-Instruct", + "display_name": "meta-llama/Meta-Llama-3.1-8B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 33000, + "output": 4000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-04-23", + "last_updated": "2025-11-25", + "cost": { + "input": 0.06, + "output": 0.06 + } + }, + { + "id": "qwen-qwen3-235b-a22b", + "name": "Qwen/Qwen3-235B-A22B", + "display_name": "Qwen/Qwen3-235B-A22B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-04-30", + "last_updated": "2025-11-25", + "cost": { + "input": 0.35, + "output": 1.42 + } + }, + { + "id": "qwen-qwen2.5-72b-instruct", + "name": "Qwen/Qwen2.5-72B-Instruct", + "display_name": "Qwen/Qwen2.5-72B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 33000, + "output": 4000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-09-18", + "last_updated": "2025-11-25", + "cost": { + "input": 0.59, + "output": 0.59 + } + }, + { + "id": "qwen-qwen3-8b", + "name": "Qwen/Qwen3-8B", + "display_name": "Qwen/Qwen3-8B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-04-30", + "last_updated": "2025-11-25", + "cost": { + "input": 0.06, + "output": 0.06 + } + }, + { + "id": "nex-agi-deepseek-v3.1-nex-n1", + "name": "nex-agi/DeepSeek-V3.1-Nex-N1", + "display_name": "nex-agi/DeepSeek-V3.1-Nex-N1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-01-01", + "last_updated": "2025-11-25", + "cost": { + "input": 0.5, + "output": 2 + } + }, + { + "id": "qwen-qwen3-vl-8b-instruct", + "name": "Qwen/Qwen3-VL-8B-Instruct", + "display_name": "Qwen/Qwen3-VL-8B-Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-10-15", + "last_updated": "2025-11-25", + "cost": { + "input": 0.18, + "output": 0.68 + } + }, + { + "id": "qwen-qwen3-vl-8b-thinking", + "name": "Qwen/Qwen3-VL-8B-Thinking", + "display_name": "Qwen/Qwen3-VL-8B-Thinking", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-10-15", + "last_updated": "2025-11-25", + "cost": { + "input": 0.18, + "output": 2 + } + }, + { + "id": "qwen-qwen2.5-vl-7b-instruct", + "name": "Qwen/Qwen2.5-VL-7B-Instruct", + "display_name": "Qwen/Qwen2.5-VL-7B-Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 33000, + "output": 4000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-01-28", + "last_updated": "2025-11-25", + "cost": { + "input": 0.05, + "output": 0.05 + } + }, + { + "id": "bytedance-seed-seed-oss-36b-instruct", + "name": "ByteDance-Seed/Seed-OSS-36B-Instruct", + "display_name": "ByteDance-Seed/Seed-OSS-36B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-09-04", + "last_updated": "2025-11-25", + "cost": { + "input": 0.21, + "output": 0.57 + } + }, + { + "id": "minimaxai-minimax-m2", + "name": "MiniMaxAI/MiniMax-M2", + "display_name": "MiniMaxAI/MiniMax-M2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 197000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-10-28", + "last_updated": "2025-11-25", + "cost": { + "input": 0.3, + "output": 1.2 + } + }, + { + "id": "qwen-qwen2.5-32b-instruct", + "name": "Qwen/Qwen2.5-32B-Instruct", + "display_name": "Qwen/Qwen2.5-32B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 33000, + "output": 4000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-09-19", + "last_updated": "2025-11-25", + "cost": { + "input": 0.18, + "output": 0.18 + } + }, + { + "id": "qwen-qwen2.5-7b-instruct", + "name": "Qwen/Qwen2.5-7B-Instruct", + "display_name": "Qwen/Qwen2.5-7B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 33000, + "output": 4000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-09-18", + "last_updated": "2025-11-25", + "cost": { + "input": 0.05, + "output": 0.05 + } + }, + { + "id": "openai-gpt-oss-20b", + "name": "openai/gpt-oss-20b", + "display_name": "openai/gpt-oss-20b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 8000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-08-13", + "last_updated": "2025-11-25", + "cost": { + "input": 0.04, + "output": 0.18 + } + }, + { + "id": "deepseek-ai-deepseek-v3", + "name": "deepseek-ai/DeepSeek-V3", + "display_name": "deepseek-ai/DeepSeek-V3", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 164000, + "output": 164000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-12-26", + "last_updated": "2025-11-25", + "cost": { + "input": 0.25, + "output": 1 + } + }, + { + "id": "deepseek-ai-deepseek-r1-distill-qwen-14b", + "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-01-20", + "last_updated": "2025-11-25", + "cost": { + "input": 0.1, + "output": 0.1 + } + }, + { + "id": "zai-org-glm-4.5", + "name": "zai-org/GLM-4.5", + "display_name": "zai-org/GLM-4.5", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-07-28", + "last_updated": "2025-11-25", + "cost": { + "input": 0.4, + "output": 2 + } + }, + { + "id": "qwen-qwen3-vl-235b-a22b-instruct", + "name": "Qwen/Qwen3-VL-235B-A22B-Instruct", + "display_name": "Qwen/Qwen3-VL-235B-A22B-Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-10-04", + "last_updated": "2025-11-25", + "cost": { + "input": 0.3, + "output": 1.5 + } + }, + { + "id": "qwen-qwen3-next-80b-a3b-thinking", + "name": "Qwen/Qwen3-Next-80B-A3B-Thinking", + "display_name": "Qwen/Qwen3-Next-80B-A3B-Thinking", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-09-25", + "last_updated": "2025-11-25", + "cost": { + "input": 0.14, + "output": 0.57 + } + }, + { + "id": "thudm-glm-4.1v-9b-thinking", + "name": "THUDM/GLM-4.1V-9B-Thinking", + "display_name": "THUDM/GLM-4.1V-9B-Thinking", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 66000, + "output": 66000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-07-04", + "last_updated": "2025-11-25", + "cost": { + "input": 0.035, + "output": 0.14 + } + }, + { + "id": "stepfun-ai-step3", + "name": "stepfun-ai/step3", + "display_name": "stepfun-ai/step3", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 66000, + "output": 66000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-08-06", + "last_updated": "2025-11-25", + "cost": { + "input": 0.57, + "output": 1.42 + } + }, + { + "id": "qwen-qwq-32b", + "name": "Qwen/QwQ-32B", + "display_name": "Qwen/QwQ-32B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-03-06", + "last_updated": "2025-11-25", + "cost": { + "input": 0.15, + "output": 0.58 + } + }, + { + "id": "qwen-qwen3-coder-30b-a3b-instruct", + "name": "Qwen/Qwen3-Coder-30B-A3B-Instruct", + "display_name": "Qwen/Qwen3-Coder-30B-A3B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-08-01", + "last_updated": "2025-11-25", + "cost": { + "input": 0.07, + "output": 0.28 + } + }, + { + "id": "thudm-glm-4-9b-0414", + "name": "THUDM/GLM-4-9B-0414", + "display_name": "THUDM/GLM-4-9B-0414", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 33000, + "output": 33000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-04-18", + "last_updated": "2025-11-25", + "cost": { + "input": 0.086, + "output": 0.086 + } + }, + { + "id": "zai-org-glm-4.5-air", + "name": "zai-org/GLM-4.5-Air", + "display_name": "zai-org/GLM-4.5-Air", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-07-28", + "last_updated": "2025-11-25", + "cost": { + "input": 0.14, + "output": 0.86 + } + }, + { + "id": "deepseek-ai-deepseek-v3.1-terminus", + "name": "deepseek-ai/DeepSeek-V3.1-Terminus", + "display_name": "deepseek-ai/DeepSeek-V3.1-Terminus", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 164000, + "output": 164000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-09-29", + "last_updated": "2025-11-25", + "cost": { + "input": 0.27, + "output": 1 + } + }, + { + "id": "minimaxai-minimax-m1-80k", + "name": "MiniMaxAI/MiniMax-M1-80k", + "display_name": "MiniMaxAI/MiniMax-M1-80k", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-06-17", + "last_updated": "2025-11-25", + "cost": { + "input": 0.55, + "output": 2.2 + } + }, + { + "id": "openai-gpt-oss-120b", + "name": "openai/gpt-oss-120b", + "display_name": "openai/gpt-oss-120b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 8000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-08-13", + "last_updated": "2025-11-25", + "cost": { + "input": 0.05, + "output": 0.45 + } + }, + { + "id": "qwen-qwen3-30b-a3b", + "name": "Qwen/Qwen3-30B-A3B", + "display_name": "Qwen/Qwen3-30B-A3B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-04-30", + "last_updated": "2025-11-25", + "cost": { + "input": 0.09, + "output": 0.45 + } + }, + { + "id": "tencent-hunyuan-mt-7b", + "name": "tencent/Hunyuan-MT-7B", + "display_name": "tencent/Hunyuan-MT-7B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 33000, + "output": 33000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-09-18", + "last_updated": "2025-11-25", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen-qwen3-vl-32b-thinking", + "name": "Qwen/Qwen3-VL-32B-Thinking", + "display_name": "Qwen/Qwen3-VL-32B-Thinking", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-10-21", + "last_updated": "2025-11-25", + "cost": { + "input": 0.2, + "output": 1.5 + } + }, + { + "id": "qwen-qwen2.5-vl-72b-instruct", + "name": "Qwen/Qwen2.5-VL-72B-Instruct", + "display_name": "Qwen/Qwen2.5-VL-72B-Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 4000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-01-28", + "last_updated": "2025-11-25", + "cost": { + "input": 0.59, + "output": 0.59 + } + }, + { + "id": "thudm-glm-z1-32b-0414", + "name": "THUDM/GLM-Z1-32B-0414", + "display_name": "THUDM/GLM-Z1-32B-0414", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-04-18", + "last_updated": "2025-11-25", + "cost": { + "input": 0.14, + "output": 0.57 + } + }, + { + "id": "inclusionai-ring-flash-2.0", + "name": "inclusionAI/Ring-flash-2.0", + "display_name": "inclusionAI/Ring-flash-2.0", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-09-29", + "last_updated": "2025-11-25", + "cost": { + "input": 0.14, + "output": 0.57 + } + }, + { + "id": "zai-org-glm-4.5v", + "name": "zai-org/GLM-4.5V", + "display_name": "zai-org/GLM-4.5V", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 66000, + "output": 66000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-08-13", + "last_updated": "2025-11-25", + "cost": { + "input": 0.14, + "output": 0.86 + } + }, + { + "id": "qwen-qwen3-30b-a3b-instruct-2507", + "name": "Qwen/Qwen3-30B-A3B-Instruct-2507", + "display_name": "Qwen/Qwen3-30B-A3B-Instruct-2507", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-07-30", + "last_updated": "2025-11-25", + "cost": { + "input": 0.09, + "output": 0.3 + } + }, + { + "id": "z-ai-glm-4.5", + "name": "z-ai/GLM-4.5", + "display_name": "z-ai/GLM-4.5", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-07-28", + "last_updated": "2025-11-25", + "cost": { + "input": 0.4, + "output": 2 + } + }, + { + "id": "deepseek-ai-deepseek-v3.1", + "name": "deepseek-ai/DeepSeek-V3.1", + "display_name": "deepseek-ai/DeepSeek-V3.1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 164000, + "output": 164000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-08-25", + "last_updated": "2025-11-25", + "cost": { + "input": 0.27, + "output": 1 + } + }, + { + "id": "deepseek-ai-deepseek-r1", + "name": "deepseek-ai/DeepSeek-R1", + "display_name": "deepseek-ai/DeepSeek-R1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 164000, + "output": 164000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-05-28", + "last_updated": "2025-11-25", + "cost": { + "input": 0.5, + "output": 2.18 + } + }, + { + "id": "qwen-qwen3-14b", + "name": "Qwen/Qwen3-14B", + "display_name": "Qwen/Qwen3-14B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-04-30", + "last_updated": "2025-11-25", + "cost": { + "input": 0.07, + "output": 0.28 + } + }, + { + "id": "qwen-qwen3-30b-a3b-thinking-2507", + "name": "Qwen/Qwen3-30B-A3B-Thinking-2507", + "display_name": "Qwen/Qwen3-30B-A3B-Thinking-2507", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-07-31", + "last_updated": "2025-11-25", + "cost": { + "input": 0.09, + "output": 0.3 + } + }, + { + "id": "moonshotai-kimi-k2-instruct-0905", + "name": "moonshotai/Kimi-K2-Instruct-0905", + "display_name": "moonshotai/Kimi-K2-Instruct-0905", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-09-08", + "last_updated": "2025-11-25", + "cost": { + "input": 0.4, + "output": 2 + } + }, + { + "id": "qwen-qwen3-omni-30b-a3b-instruct", + "name": "Qwen/Qwen3-Omni-30B-A3B-Instruct", + "display_name": "Qwen/Qwen3-Omni-30B-A3B-Instruct", + "modalities": { + "input": [ + "text", + "image", + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 66000, + "output": 66000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-10-04", + "last_updated": "2025-11-25", + "cost": { + "input": 0.1, + "output": 0.4 + } + }, + { + "id": "qwen-qwen3-coder-480b-a35b-instruct", + "name": "Qwen/Qwen3-Coder-480B-A35B-Instruct", + "display_name": "Qwen/Qwen3-Coder-480B-A35B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-07-31", + "last_updated": "2025-11-25", + "cost": { + "input": 0.25, + "output": 1 + } + }, + { + "id": "inclusionai-ling-mini-2.0", + "name": "inclusionAI/Ling-mini-2.0", + "display_name": "inclusionAI/Ling-mini-2.0", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-09-10", + "last_updated": "2025-11-25", + "cost": { + "input": 0.07, + "output": 0.28 + } + }, + { + "id": "moonshotai-kimi-k2-instruct", + "name": "moonshotai/Kimi-K2-Instruct", + "display_name": "moonshotai/Kimi-K2-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-07-13", + "last_updated": "2025-11-25", + "cost": { + "input": 0.58, + "output": 2.29 + } + }, + { + "id": "inclusionai-ling-flash-2.0", + "name": "inclusionAI/Ling-flash-2.0", + "display_name": "inclusionAI/Ling-flash-2.0", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-09-18", + "last_updated": "2025-11-25", + "cost": { + "input": 0.14, + "output": 0.57 + } + }, + { + "id": "qwen-qwen3-vl-32b-instruct", + "name": "Qwen/Qwen3-VL-32B-Instruct", + "display_name": "Qwen/Qwen3-VL-32B-Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-10-21", + "last_updated": "2025-11-25", + "cost": { + "input": 0.2, + "output": 0.6 + } + }, + { + "id": "qwen-qwen3-235b-a22b-thinking-2507", + "name": "Qwen/Qwen3-235B-A22B-Thinking-2507", + "display_name": "Qwen/Qwen3-235B-A22B-Thinking-2507", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-07-28", + "last_updated": "2025-11-25", + "cost": { + "input": 0.13, + "output": 0.6 + } + }, + { + "id": "qwen-qwen2.5-vl-32b-instruct", + "name": "Qwen/Qwen2.5-VL-32B-Instruct", + "display_name": "Qwen/Qwen2.5-VL-32B-Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-03-24", + "last_updated": "2025-11-25", + "cost": { + "input": 0.27, + "output": 0.27 + } + }, + { + "id": "deepseek-ai-deepseek-v3.2-exp", + "name": "deepseek-ai/DeepSeek-V3.2-Exp", + "display_name": "deepseek-ai/DeepSeek-V3.2-Exp", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 164000, + "output": 164000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-10-10", + "last_updated": "2025-11-25", + "cost": { + "input": 0.27, + "output": 0.41 + } + }, + { + "id": "qwen-qwen3-vl-30b-a3b-thinking", + "name": "Qwen/Qwen3-VL-30B-A3B-Thinking", + "display_name": "Qwen/Qwen3-VL-30B-A3B-Thinking", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-10-11", + "last_updated": "2025-11-25", + "cost": { + "input": 0.29, + "output": 1 + } + }, + { + "id": "thudm-glm-z1-9b-0414", + "name": "THUDM/GLM-Z1-9B-0414", + "display_name": "THUDM/GLM-Z1-9B-0414", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-04-18", + "last_updated": "2025-11-25", + "cost": { + "input": 0.086, + "output": 0.086 + } + }, + { + "id": "qwen-qwen3-vl-235b-a22b-thinking", + "name": "Qwen/Qwen3-VL-235B-A22B-Thinking", + "display_name": "Qwen/Qwen3-VL-235B-A22B-Thinking", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-10-04", + "last_updated": "2025-11-25", + "cost": { + "input": 0.45, + "output": 3.5 + } + }, + { + "id": "qwen-qwen3-omni-30b-a3b-captioner", + "name": "Qwen/Qwen3-Omni-30B-A3B-Captioner", + "display_name": "Qwen/Qwen3-Omni-30B-A3B-Captioner", + "modalities": { + "input": [ + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 66000, + "output": 66000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-10-04", + "last_updated": "2025-11-25", + "cost": { + "input": 0.1, + "output": 0.4 + } + }, + { + "id": "qwen-qwen2.5-coder-32b-instruct", + "name": "Qwen/Qwen2.5-Coder-32B-Instruct", + "display_name": "Qwen/Qwen2.5-Coder-32B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 33000, + "output": 4000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-11-11", + "last_updated": "2025-11-25", + "cost": { + "input": 0.18, + "output": 0.18 + } + }, + { + "id": "moonshotai-kimi-dev-72b", + "name": "moonshotai/Kimi-Dev-72B", + "display_name": "moonshotai/Kimi-Dev-72B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-06-19", + "last_updated": "2025-11-25", + "cost": { + "input": 0.29, + "output": 1.15 + } + }, + { + "id": "deepseek-ai-deepseek-vl2", + "name": "deepseek-ai/deepseek-vl2", + "display_name": "deepseek-ai/deepseek-vl2", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4000, + "output": 4000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false, + "release_date": "2024-12-13", + "last_updated": "2025-11-25", + "cost": { + "input": 0.15, + "output": 0.15 + } + }, + { + "id": "qwen-qwen2.5-72b-instruct-128k", + "name": "Qwen/Qwen2.5-72B-Instruct-128K", + "display_name": "Qwen/Qwen2.5-72B-Instruct-128K", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 4000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-09-18", + "last_updated": "2025-11-25", + "cost": { + "input": 0.59, + "output": 0.59 + } + }, + { + "id": "z-ai-glm-4.5-air", + "name": "z-ai/GLM-4.5-Air", + "display_name": "z-ai/GLM-4.5-Air", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-07-28", + "last_updated": "2025-11-25", + "cost": { + "input": 0.14, + "output": 0.86 + } + }, + { + "id": "deepseek-ai-deepseek-r1-distill-qwen-7b", + "name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", + "display_name": "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 33000, + "output": 16000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-01-20", + "last_updated": "2025-11-25", + "cost": { + "input": 0.05, + "output": 0.05 + } + } + ] + }, "chutes": { "id": "chutes", "name": "Chutes", @@ -14602,6 +16885,69 @@ "output": 4.061 } }, + { + "id": "devstral-2512", + "name": "Devstral 2 2512", + "display_name": "Devstral 2 2512", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": true, + "knowledge": "2025-12", + "release_date": "2025-12-09", + "last_updated": "2025-12-09", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "intellect-3", + "name": "INTELLECT 3", + "display_name": "INTELLECT 3", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": true, + "knowledge": "2025-11", + "release_date": "2025-11-26", + "last_updated": "2025-11-26", + "cost": { + "input": 0.219, + "output": 1.202 + } + }, { "id": "claude-4-5-sonnet", "name": "Claude 4.5 Sonnet", @@ -14667,6 +17013,38 @@ "output": 1.654 } }, + { + "id": "kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": true, + "knowledge": "2025-12", + "release_date": "2025-12-08", + "last_updated": "2025-12-08", + "cost": { + "input": 0.656, + "output": 2.731 + } + }, { "id": "kimi-k2-instruct", "name": "Kimi K2 Instruct", @@ -14793,6 +17171,38 @@ "output": 0 } }, + { + "id": "devstral-small-2512", + "name": "Devstral Small 2 2512", + "display_name": "Devstral Small 2 2512", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": true, + "knowledge": "2025-12", + "release_date": "2025-12-09", + "last_updated": "2025-12-09", + "cost": { + "input": 0, + "output": 0 + } + }, { "id": "qwen3-coder-480b-a35b-instruct", "name": "Qwen3 Coder 480B A35B Instruct", @@ -14888,6 +17298,38 @@ "output": 0 } }, + { + "id": "qwen3-next-80b-a3b-thinking", + "name": "Qwen3 Next 80B A3B Thinking", + "display_name": "Qwen3 Next 80B A3B Thinking", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-09-11", + "last_updated": "2025-09-11", + "cost": { + "input": 0.164, + "output": 1.311 + } + }, { "id": "qwen3-32b", "name": "Qwen3 32B", @@ -17011,6 +19453,40 @@ "cache_write": 18.75 } }, + { + "id": "gpt-5.2-chat", + "name": "GPT-5.2 Chat", + "display_name": "GPT-5.2 Chat", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2025-08-31", + "release_date": "2025-12-11", + "last_updated": "2025-12-11", + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + } + }, { "id": "llama-3.2-11b-vision-instruct", "name": "Llama-3.2-11B-Vision-Instruct", @@ -17432,6 +19908,38 @@ "cache_write": 1.25 } }, + { + "id": "deepseek-v3.2-speciale", + "name": "DeepSeek-V3.2-Speciale", + "display_name": "DeepSeek-V3.2-Speciale", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-12-01", + "last_updated": "2025-12-01", + "cost": { + "input": 0.28, + "output": 0.42 + } + }, { "id": "mistral-medium-2505", "name": "Mistral Medium 3", @@ -18236,6 +20744,39 @@ "cache_read": 0.025 } }, + { + "id": "kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-11-06", + "last_updated": "2025-12-02", + "cost": { + "input": 0.6, + "output": 2.5, + "cache_read": 0.15 + } + }, { "id": "model-router", "name": "Model Router", @@ -19408,6 +21949,39 @@ "output": 5.4 } }, + { + "id": "deepseek-v3.2", + "name": "DeepSeek-V3.2", + "display_name": "DeepSeek-V3.2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-12-01", + "last_updated": "2025-12-01", + "cost": { + "input": 0.28, + "output": 0.42, + "cache_read": 0.028 + } + }, { "id": "gpt-5-pro", "name": "GPT-5 Pro", @@ -25227,8 +27801,8 @@ ] }, "limit": { - "context": 1000000, - "output": 64000 + "context": 1048576, + "output": 65536 }, "temperature": true, "tool_call": true, @@ -25370,8 +27944,7 @@ "image" ], "output": [ - "text", - "image" + "text" ] }, "limit": { @@ -25630,6 +28203,43 @@ "cache_write": 0 } }, + { + "id": "gemini-3-flash", + "name": "Gemini 3 Flash", + "display_name": "Gemini 3 Flash", + "modalities": { + "input": [ + "text", + "image", + "video", + "audio", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-12-17", + "last_updated": "2025-12-17", + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05 + } + }, { "id": "gpt-5.1-codex-max", "name": "GPT-5.1 Codex Max", @@ -25774,6 +28384,40 @@ "output": 8.5, "cache_read": 0.107 } + }, + { + "id": "gpt-5.2", + "name": "GPT-5.2", + "display_name": "GPT-5.2", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2025-08-31", + "release_date": "2025-11-12", + "last_updated": "2025-11-12", + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + } } ] }, @@ -26290,6 +28934,48 @@ "output": 0 } }, + { + "id": "gemini-3-flash-preview", + "name": "Gemini 3 Flash Preview", + "display_name": "Gemini 3 Flash Preview", + "modalities": { + "input": [ + "text", + "image", + "video", + "audio", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-12-17", + "last_updated": "2025-12-17", + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05, + "context_over_200k": { + "input": 0.5, + "output": 3, + "cache_read": 0.05 + } + } + }, { "id": "gemini-2.5-flash-image", "name": "Gemini 2.5 Flash Image", @@ -30172,8 +32858,8 @@ "models": [ { "id": "workers-ai/aura-1", - "name": "aura 1", - "display_name": "aura 1", + "name": "Aura 1", + "display_name": "Aura 1", "modalities": { "input": [ "text" @@ -30202,8 +32888,8 @@ }, { "id": "workers-ai/llama-3.2-11b-vision-instruct", - "name": "llama 3.2 11u vision instruct", - "display_name": "llama 3.2 11u vision instruct", + "name": "Llama 3.2 11B Vision Instruct", + "display_name": "Llama 3.2 11B Vision Instruct", "modalities": { "input": [ "text" @@ -30223,17 +32909,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, - "output": 0 + "input": 49000, + "output": 680000 } }, { "id": "workers-ai/bge-m3", - "name": "uge m3", - "display_name": "uge m3", + "name": "BGE M3", + "display_name": "BGE M3", "modalities": { "input": [ "text" @@ -30253,17 +32939,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, + "input": 12000, "output": 0 } }, { "id": "workers-ai/llama-3.1-8b-instruct-fp8", - "name": "llama 3.1 8u instruct fp8", - "display_name": "llama 3.1 8u instruct fp8", + "name": "Llama 3.1 8B Instruct FP8", + "display_name": "Llama 3.1 8B Instruct FP8", "modalities": { "input": [ "text" @@ -30283,17 +32969,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, - "output": 0 + "input": 150000, + "output": 290000 } }, { "id": "workers-ai/whisper", - "name": "whisper", - "display_name": "whisper", + "name": "Whisper", + "display_name": "Whisper", "modalities": { "input": [ "text" @@ -30322,8 +33008,8 @@ }, { "id": "workers-ai/smart-turn-v2", - "name": "smart turn v2", - "display_name": "smart turn v2", + "name": "Smart Turn V2", + "display_name": "Smart Turn V2", "modalities": { "input": [ "text" @@ -30352,8 +33038,8 @@ }, { "id": "workers-ai/llama-2-7b-chat-fp16", - "name": "llama 2 7u chat fp16", - "display_name": "llama 2 7u chat fp16", + "name": "Llama 2 7B Chat FP16", + "display_name": "Llama 2 7B Chat FP16", "modalities": { "input": [ "text" @@ -30373,17 +33059,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, - "output": 6.67 + "input": 560000, + "output": 6670000 } }, { "id": "workers-ai/llama-3-8b-instruct", - "name": "llama 3 8u instruct", - "display_name": "llama 3 8u instruct", + "name": "Llama 3 8B Instruct", + "display_name": "Llama 3 8B Instruct", "modalities": { "input": [ "text" @@ -30403,17 +33089,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, - "output": 0 + "input": 280000, + "output": 830000 } }, { "id": "workers-ai/llama-3.1-8b-instruct", - "name": "llama 3.1 8u instruct", - "display_name": "llama 3.1 8u instruct", + "name": "Llama 3.1 8B Instruct", + "display_name": "Llama 3.1 8B Instruct", "modalities": { "input": [ "text" @@ -30433,17 +33119,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, - "output": 0 + "input": 280000, + "output": 830000 } }, { "id": "workers-ai/bge-base-en-v1.5", - "name": "uge uase en v1.5", - "display_name": "uge uase en v1.5", + "name": "BGE Base EN V1.5", + "display_name": "BGE Base EN V1.5", "modalities": { "input": [ "text" @@ -30463,17 +33149,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, + "input": 67000, "output": 0 } }, { "id": "workers-ai/bart-large-cnn", - "name": "uart large cnn", - "display_name": "uart large cnn", + "name": "BART Large CNN", + "display_name": "BART Large CNN", "modalities": { "input": [ "text" @@ -30502,8 +33188,8 @@ }, { "id": "workers-ai/deepseek-r1-distill-qwen-32b", - "name": "deepseek r1 distill qwen 32b", - "display_name": "deepseek r1 distill qwen 32b", + "name": "DeepSeek R1 Distill Qwen 32B", + "display_name": "DeepSeek R1 Distill Qwen 32B", "modalities": { "input": [ "text" @@ -30523,17 +33209,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, - "output": 4.88 + "input": 500000, + "output": 4880000 } }, { "id": "workers-ai/plamo-embedding-1b", - "name": "plamo emuedding 1b", - "display_name": "plamo emuedding 1b", + "name": "PLaMo Embedding 1B", + "display_name": "PLaMo Embedding 1B", "modalities": { "input": [ "text" @@ -30562,8 +33248,8 @@ }, { "id": "workers-ai/bge-large-en-v1.5", - "name": "uge large en v1.5", - "display_name": "uge large en v1.5", + "name": "BGE Large EN V1.5", + "display_name": "BGE Large EN V1.5", "modalities": { "input": [ "text" @@ -30583,17 +33269,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, + "input": 200000, "output": 0 } }, { "id": "workers-ai/gemma-sea-lion-v4-27b-it", - "name": "gemma sea lion v4 27u it", - "display_name": "gemma sea lion v4 27u it", + "name": "Gemma SEA-LION V4 27B IT", + "display_name": "Gemma SEA-LION V4 27B IT", "modalities": { "input": [ "text" @@ -30622,8 +33308,8 @@ }, { "id": "workers-ai/m2m100-1.2b", - "name": "m2m100 1.2b", - "display_name": "m2m100 1.2b", + "name": "M2M100 1.2B", + "display_name": "M2M100 1.2B", "modalities": { "input": [ "text" @@ -30643,17 +33329,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, - "output": 0 + "input": 340000, + "output": 340000 } }, { "id": "workers-ai/llama-3.2-3b-instruct", - "name": "llama 3.2 3u instruct", - "display_name": "llama 3.2 3u instruct", + "name": "Llama 3.2 3B Instruct", + "display_name": "Llama 3.2 3B Instruct", "modalities": { "input": [ "text" @@ -30673,17 +33359,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, - "output": 0 + "input": 51000, + "output": 340000 } }, { "id": "workers-ai/qwen2.5-coder-32b-instruct", - "name": "qwen2.5 coder 32u instruct", - "display_name": "qwen2.5 coder 32u instruct", + "name": "Qwen 2.5 Coder 32B Instruct", + "display_name": "Qwen 2.5 Coder 32B Instruct", "modalities": { "input": [ "text" @@ -30712,8 +33398,8 @@ }, { "id": "workers-ai/bge-reranker-base", - "name": "uge reranker uase", - "display_name": "uge reranker uase", + "name": "BGE Reranker Base", + "display_name": "BGE Reranker Base", "modalities": { "input": [ "text" @@ -30742,8 +33428,8 @@ }, { "id": "workers-ai/mistral-small-3.1-24b-instruct", - "name": "mistral small 3.1 24u instruct", - "display_name": "mistral small 3.1 24u instruct", + "name": "Mistral Small 3.1 24B Instruct", + "display_name": "Mistral Small 3.1 24B Instruct", "modalities": { "input": [ "text" @@ -30772,8 +33458,8 @@ }, { "id": "workers-ai/aura-2-es", - "name": "aura 2 es", - "display_name": "aura 2 es", + "name": "Aura 2 ES", + "display_name": "Aura 2 ES", "modalities": { "input": [ "text" @@ -30802,8 +33488,8 @@ }, { "id": "workers-ai/qwen3-30b-a3b-fp8", - "name": "qwen3 30u a3u fp8", - "display_name": "qwen3 30u a3u fp8", + "name": "Qwen3 30B A3B FP8", + "display_name": "Qwen3 30B A3B FP8", "modalities": { "input": [ "text" @@ -30832,8 +33518,8 @@ }, { "id": "workers-ai/aura-2-en", - "name": "aura 2 en", - "display_name": "aura 2 en", + "name": "Aura 2 EN", + "display_name": "Aura 2 EN", "modalities": { "input": [ "text" @@ -30862,8 +33548,8 @@ }, { "id": "workers-ai/granite-4.0-h-micro", - "name": "granite 4.0 h micro", - "display_name": "granite 4.0 h micro", + "name": "Granite 4.0 H Micro", + "display_name": "Granite 4.0 H Micro", "modalities": { "input": [ "text" @@ -30892,8 +33578,8 @@ }, { "id": "workers-ai/llama-3.3-70b-instruct-fp8-fast", - "name": "llama 3.3 70u instruct fp8 fast", - "display_name": "llama 3.3 70u instruct fp8 fast", + "name": "Llama 3.3 70B Instruct FP8 Fast", + "display_name": "Llama 3.3 70B Instruct FP8 Fast", "modalities": { "input": [ "text" @@ -30913,17 +33599,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, - "output": 2.25 + "input": 290000, + "output": 2250000 } }, { "id": "workers-ai/llama-3-8b-instruct-awq", - "name": "llama 3 8u instruct awq", - "display_name": "llama 3 8u instruct awq", + "name": "Llama 3 8B Instruct AWQ", + "display_name": "Llama 3 8B Instruct AWQ", "modalities": { "input": [ "text" @@ -30943,17 +33629,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, - "output": 0 + "input": 120000, + "output": 270000 } }, { "id": "workers-ai/qwen3-embedding-0.6b", - "name": "qwen3 emuedding 0.6b", - "display_name": "qwen3 emuedding 0.6b", + "name": "Qwen3 Embedding 0.6B", + "display_name": "Qwen3 Embedding 0.6B", "modalities": { "input": [ "text" @@ -30982,8 +33668,8 @@ }, { "id": "workers-ai/llama-3.2-1b-instruct", - "name": "llama 3.2 1u instruct", - "display_name": "llama 3.2 1u instruct", + "name": "Llama 3.2 1B Instruct", + "display_name": "Llama 3.2 1B Instruct", "modalities": { "input": [ "text" @@ -31003,17 +33689,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, - "output": 0 + "input": 27000, + "output": 200000 } }, { "id": "workers-ai/whisper-large-v3-turbo", - "name": "whisper large v3 turuo", - "display_name": "whisper large v3 turuo", + "name": "Whisper Large V3 Turbo", + "display_name": "Whisper Large V3 Turbo", "modalities": { "input": [ "text" @@ -31042,8 +33728,8 @@ }, { "id": "workers-ai/llama-4-scout-17b-16e-instruct", - "name": "llama 4 scout 17u 16e instruct", - "display_name": "llama 4 scout 17u 16e instruct", + "name": "Llama 4 Scout 17B 16E Instruct", + "display_name": "Llama 4 Scout 17B 16E Instruct", "modalities": { "input": [ "text" @@ -31072,8 +33758,8 @@ }, { "id": "workers-ai/gemma-3-12b-it", - "name": "gemma 3 12u it", - "display_name": "gemma 3 12u it", + "name": "Gemma 3 12B IT", + "display_name": "Gemma 3 12B IT", "modalities": { "input": [ "text" @@ -31102,8 +33788,8 @@ }, { "id": "workers-ai/llama-guard-3-8b", - "name": "llama guard 3 8b", - "display_name": "llama guard 3 8b", + "name": "Llama Guard 3 8B", + "display_name": "Llama Guard 3 8B", "modalities": { "input": [ "text" @@ -31123,17 +33809,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, - "output": 0 + "input": 480000, + "output": 30000 } }, { "id": "workers-ai/mistral-7b-instruct-v0.1", - "name": "mistral 7u instruct v0.1", - "display_name": "mistral 7u instruct v0.1", + "name": "Mistral 7B Instruct V0.1", + "display_name": "Mistral 7B Instruct V0.1", "modalities": { "input": [ "text" @@ -31153,17 +33839,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, - "output": 0 + "input": 110000, + "output": 190000 } }, { "id": "workers-ai/gpt-oss-20b", - "name": "gpt oss 20b", - "display_name": "gpt oss 20b", + "name": "GPT-OSS 20B", + "display_name": "GPT-OSS 20B", "modalities": { "input": [ "text" @@ -31192,8 +33878,8 @@ }, { "id": "workers-ai/gpt-oss-120b", - "name": "gpt oss 120b", - "display_name": "gpt oss 120b", + "name": "GPT-OSS 120B", + "display_name": "GPT-OSS 120B", "modalities": { "input": [ "text" @@ -31222,8 +33908,8 @@ }, { "id": "workers-ai/bge-small-en-v1.5", - "name": "uge small en v1.5", - "display_name": "uge small en v1.5", + "name": "BGE Small EN V1.5", + "display_name": "BGE Small EN V1.5", "modalities": { "input": [ "text" @@ -31243,17 +33929,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, + "input": 20000, "output": 0 } }, { "id": "workers-ai/melotts", - "name": "melotts", - "display_name": "melotts", + "name": "MeloTTS", + "display_name": "MeloTTS", "modalities": { "input": [ "text" @@ -31282,8 +33968,8 @@ }, { "id": "workers-ai/nova-3", - "name": "nova 3", - "display_name": "nova 3", + "name": "Nova 3", + "display_name": "Nova 3", "modalities": { "input": [ "text" @@ -31312,8 +33998,8 @@ }, { "id": "workers-ai/qwq-32b", - "name": "qwq 32b", - "display_name": "qwq 32b", + "name": "QwQ 32B", + "display_name": "QwQ 32B", "modalities": { "input": [ "text" @@ -31342,8 +34028,8 @@ }, { "id": "workers-ai/distilbert-sst-2-int8", - "name": "distiluert sst 2 int8", - "display_name": "distiluert sst 2 int8", + "name": "DistilBERT SST-2 INT8", + "display_name": "DistilBERT SST-2 INT8", "modalities": { "input": [ "text" @@ -31363,17 +34049,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, + "input": 26000, "output": 0 } }, { "id": "workers-ai/llama-3.1-8b-instruct-awq", - "name": "llama 3.1 8u instruct awq", - "display_name": "llama 3.1 8u instruct awq", + "name": "Llama 3.1 8B Instruct AWQ", + "display_name": "Llama 3.1 8B Instruct AWQ", "modalities": { "input": [ "text" @@ -31393,17 +34079,17 @@ }, "attachment": false, "open_weights": false, - "release_date": "2025-04-03", - "last_updated": "2025-04-03", + "release_date": "2025-08-23", + "last_updated": "2025-08-23", "cost": { - "input": 0, - "output": 0 + "input": 120000, + "output": 270000 } }, { "id": "openai/gpt-4", - "name": "gpt 4", - "display_name": "gpt 4", + "name": "GPT-4", + "display_name": "GPT-4", "modalities": { "input": [ "text" @@ -31432,8 +34118,8 @@ }, { "id": "openai/gpt-5.1-codex", - "name": "gpt 5.1 codex", - "display_name": "gpt 5.1 codex", + "name": "GPT-5.1 Codex", + "display_name": "GPT-5.1 Codex", "modalities": { "input": [ "text" @@ -31462,8 +34148,8 @@ }, { "id": "openai/gpt-3.5-turbo", - "name": "gpt 3.5 turuo", - "display_name": "gpt 3.5 turuo", + "name": "GPT-3.5 Turbo", + "display_name": "GPT-3.5 Turbo", "modalities": { "input": [ "text" @@ -31492,8 +34178,8 @@ }, { "id": "openai/gpt-4-turbo", - "name": "gpt 4 turuo", - "display_name": "gpt 4 turuo", + "name": "GPT-4 Turbo", + "display_name": "GPT-4 Turbo", "modalities": { "input": [ "text" @@ -31522,8 +34208,8 @@ }, { "id": "openai/o1-preview", - "name": "o1 preview", - "display_name": "o1 preview", + "name": "o1 Preview", + "display_name": "o1 Preview", "modalities": { "input": [ "text" @@ -31582,8 +34268,8 @@ }, { "id": "openai/gpt-5.1", - "name": "gpt 5.1", - "display_name": "gpt 5.1", + "name": "GPT-5.1", + "display_name": "GPT-5.1", "modalities": { "input": [ "text" @@ -31612,8 +34298,8 @@ }, { "id": "openai/gpt-4o", - "name": "gpt 4o", - "display_name": "gpt 4o", + "name": "GPT-4o", + "display_name": "GPT-4o", "modalities": { "input": [ "text" @@ -31732,8 +34418,8 @@ }, { "id": "openai/o3-pro", - "name": "o3 pro", - "display_name": "o3 pro", + "name": "O3 Pro", + "display_name": "O3 Pro", "modalities": { "input": [ "text" @@ -31762,8 +34448,8 @@ }, { "id": "openai/o3", - "name": "o3", - "display_name": "o3", + "name": "O3", + "display_name": "O3", "modalities": { "input": [ "text" @@ -31792,8 +34478,8 @@ }, { "id": "openai/gpt-4o-mini", - "name": "gpt 4o mini", - "display_name": "gpt 4o mini", + "name": "GPT-4o mini", + "display_name": "GPT-4o mini", "modalities": { "input": [ "text" @@ -31820,40 +34506,10 @@ "output": 0 } }, - { - "id": "replicate/replicate-internal/llama-405b-instruct-vllm", - "name": "llama 405u instruct vllm", - "display_name": "llama 405u instruct vllm", - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "limit": { - "context": 128000, - "output": 16384 - }, - "temperature": true, - "tool_call": false, - "reasoning": { - "supported": false - }, - "attachment": false, - "open_weights": false, - "release_date": "2024-08-27", - "last_updated": "2024-08-27", - "cost": { - "input": 9.5, - "output": 9.5 - } - }, { "id": "replicate/meta/meta-llama-3.1-405b-instruct", - "name": "meta llama 3.1 405u instruct", - "display_name": "meta llama 3.1 405u instruct", + "name": "Llama 3.1 405B Instruct", + "display_name": "Llama 3.1 405B Instruct", "modalities": { "input": [ "text" @@ -31882,8 +34538,8 @@ }, { "id": "replicate/meta/meta-llama-3-70b-instruct", - "name": "meta llama 3 70u instruct", - "display_name": "meta llama 3 70u instruct", + "name": "Llama 3 70B Instruct", + "display_name": "Llama 3 70B Instruct", "modalities": { "input": [ "text" @@ -31912,8 +34568,8 @@ }, { "id": "replicate/meta/meta-llama-3-8b-instruct", - "name": "meta llama 3 8u instruct", - "display_name": "meta llama 3 8u instruct", + "name": "Llama 3 8B Instruct", + "display_name": "Llama 3 8B Instruct", "modalities": { "input": [ "text" @@ -31942,8 +34598,8 @@ }, { "id": "replicate/deepseek-ai/deepseek-r1", - "name": "deepseek r1", - "display_name": "deepseek r1", + "name": "DeepSeek R1", + "display_name": "DeepSeek R1", "modalities": { "input": [ "text" @@ -31972,8 +34628,8 @@ }, { "id": "anthropic/claude-opus-4", - "name": "claude opus 4", - "display_name": "claude opus 4", + "name": "Claude Opus 4", + "display_name": "Claude Opus 4", "modalities": { "input": [ "text" @@ -32000,77 +34656,13 @@ "output": 75 } }, - { - "id": "anthropic/claude-opus-4-1", - "name": "claude opus 4 1", - "display_name": "claude opus 4 1", - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "limit": { - "context": 128000, - "output": 16384 - }, - "temperature": true, - "tool_call": false, - "reasoning": { - "supported": false - }, - "attachment": false, - "open_weights": false, - "release_date": "2025-11-14", - "last_updated": "2025-11-14", - "cost": { - "input": 15, - "output": 75 - } - }, - { - "id": "anthropic/claude-haiku-4-5", - "name": "claude haiku 4 5", - "display_name": "claude haiku 4 5", - "modalities": { - "input": [ - "text", - "image", - "pdf" - ], - "output": [ - "text" - ] - }, - "limit": { - "context": 128000, - "output": 16384 - }, - "temperature": true, - "tool_call": false, - "reasoning": { - "supported": false - }, - "attachment": false, - "open_weights": false, - "release_date": "2025-11-14", - "last_updated": "2025-11-14", - "cost": { - "input": 1, - "output": 5 - } - }, { "id": "anthropic/claude-haiku-4.5", - "name": "claude haiku 4.5", - "display_name": "claude haiku 4.5", + "name": "Claude Haiku 4.5", + "display_name": "Claude Haiku 4.5", "modalities": { "input": [ - "text", - "image", - "pdf" + "text" ], "output": [ "text" @@ -32096,8 +34688,8 @@ }, { "id": "anthropic/claude-3-haiku", - "name": "claude 3 haiku", - "display_name": "claude 3 haiku", + "name": "Claude 3 Haiku", + "display_name": "Claude 3 Haiku", "modalities": { "input": [ "text" @@ -32124,40 +34716,10 @@ "output": 1.25 } }, - { - "id": "anthropic/claude-opus-4-5", - "name": "claude opus 4 5", - "display_name": "claude opus 4 5", - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "limit": { - "context": 128000, - "output": 16384 - }, - "temperature": true, - "tool_call": false, - "reasoning": { - "supported": false - }, - "attachment": false, - "open_weights": false, - "release_date": "2025-11-24", - "last_updated": "2025-11-24", - "cost": { - "input": 5, - "output": 25 - } - }, { "id": "anthropic/claude-3-opus", - "name": "claude 3 opus", - "display_name": "claude 3 opus", + "name": "Claude 3 Opus", + "display_name": "Claude 3 Opus", "modalities": { "input": [ "text" @@ -32184,40 +34746,10 @@ "output": 75 } }, - { - "id": "anthropic/claude-sonnet-4-5", - "name": "claude sonnet 4 5", - "display_name": "claude sonnet 4 5", - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "limit": { - "context": 128000, - "output": 16384 - }, - "temperature": true, - "tool_call": false, - "reasoning": { - "supported": false - }, - "attachment": false, - "open_weights": false, - "release_date": "2025-11-14", - "last_updated": "2025-11-14", - "cost": { - "input": 3, - "output": 15 - } - }, { "id": "anthropic/claude-3.5-sonnet", - "name": "claude 3.5 sonnet", - "display_name": "claude 3.5 sonnet", + "name": "Claude 3.5 Sonnet", + "display_name": "Claude 3.5 Sonnet", "modalities": { "input": [ "text" @@ -32240,14 +34772,14 @@ "release_date": "2024-07-31", "last_updated": "2024-07-31", "cost": { - "input": 3, - "output": 15 + "input": 6, + "output": 30 } }, { "id": "anthropic/claude-3-sonnet", - "name": "claude 3 sonnet", - "display_name": "claude 3 sonnet", + "name": "Claude 3 Sonnet", + "display_name": "Claude 3 Sonnet", "modalities": { "input": [ "text" @@ -32274,40 +34806,10 @@ "output": 15 } }, - { - "id": "anthropic/claude-3-5-haiku", - "name": "claude 3 5 haiku", - "display_name": "claude 3 5 haiku", - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "limit": { - "context": 128000, - "output": 16384 - }, - "temperature": true, - "tool_call": false, - "reasoning": { - "supported": false - }, - "attachment": false, - "open_weights": false, - "release_date": "2024-11-04", - "last_updated": "2024-11-04", - "cost": { - "input": 0, - "output": 4 - } - }, { "id": "anthropic/claude-opus-4.1", - "name": "claude opus 4.1", - "display_name": "claude opus 4.1", + "name": "Claude Opus 4.1", + "display_name": "Claude Opus 4.1", "modalities": { "input": [ "text" @@ -32336,8 +34838,8 @@ }, { "id": "anthropic/claude-3.5-haiku", - "name": "claude 3.5 haiku", - "display_name": "claude 3.5 haiku", + "name": "Claude 3.5 Haiku", + "display_name": "Claude 3.5 Haiku", "modalities": { "input": [ "text" @@ -32366,8 +34868,8 @@ }, { "id": "anthropic/claude-sonnet-4", - "name": "claude sonnet 4", - "display_name": "claude sonnet 4", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", "modalities": { "input": [ "text" @@ -32396,8 +34898,8 @@ }, { "id": "anthropic/claude-opus-4.5", - "name": "claude opus 4.5", - "display_name": "claude opus 4.5", + "name": "Claude Opus 4.5", + "display_name": "Claude Opus 4.5", "modalities": { "input": [ "text" @@ -32426,8 +34928,8 @@ }, { "id": "anthropic/claude-sonnet-4.5", - "name": "claude sonnet 4.5", - "display_name": "claude sonnet 4.5", + "name": "Claude Sonnet 4.5", + "display_name": "Claude Sonnet 4.5", "modalities": { "input": [ "text" @@ -33764,6 +36266,40 @@ "api": "https://open.bigmodel.cn/api/coding/paas/v4", "doc": "https://docs.bigmodel.cn/cn/coding-plan/overview", "models": [ + { + "id": "glm-4.6v-flash", + "name": "GLM-4.6V-Flash", + "display_name": "GLM-4.6V-Flash", + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-12-08", + "last_updated": "2025-12-08", + "cost": { + "input": 0, + "output": 0 + } + }, { "id": "glm-4.6v", "name": "GLM-4.6V", @@ -37032,6 +39568,40 @@ "api": "https://open.bigmodel.cn/api/paas/v4", "doc": "https://docs.z.ai/guides/overview/pricing", "models": [ + { + "id": "glm-4.6v-flash", + "name": "GLM-4.6V-Flash", + "display_name": "GLM-4.6V-Flash", + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-12-08", + "last_updated": "2025-12-08", + "cost": { + "input": 0, + "output": 0 + } + }, { "id": "glm-4.6v", "name": "GLM-4.6V", @@ -40512,6 +43082,39 @@ "output": 120 } }, + { + "id": "deepseek-v3.2", + "name": "DeepSeek-V3.2", + "display_name": "DeepSeek-V3.2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-12-01", + "last_updated": "2025-12-01", + "cost": { + "input": 0.28, + "output": 0.42, + "cache_read": 0.028 + } + }, { "id": "mai-ds-r1", "name": "MAI-DS-R1", @@ -41650,6 +44253,39 @@ "output": 0 } }, + { + "id": "kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-11-06", + "last_updated": "2025-12-02", + "cost": { + "input": 0.6, + "output": 2.5, + "cache_read": 0.15 + } + }, { "id": "gpt-5.1-codex-mini", "name": "GPT-5.1 Codex Mini", @@ -42454,6 +45090,38 @@ "output": 2 } }, + { + "id": "deepseek-v3.2-speciale", + "name": "DeepSeek-V3.2-Speciale", + "display_name": "DeepSeek-V3.2-Speciale", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-12-01", + "last_updated": "2025-12-01", + "cost": { + "input": 0.28, + "output": 0.42 + } + }, { "id": "claude-haiku-4-5", "name": "Claude Haiku 4.5", @@ -42875,6 +45543,40 @@ "output": 0.37 } }, + { + "id": "gpt-5.2-chat", + "name": "GPT-5.2 Chat", + "display_name": "GPT-5.2 Chat", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2025-08-31", + "release_date": "2025-12-11", + "last_updated": "2025-12-11", + "cost": { + "input": 1.75, + "output": 14, + "cache_read": 0.175 + } + }, { "id": "claude-opus-4-1", "name": "Claude Opus 4.1", @@ -43945,6 +46647,68 @@ "output": 0.6 } }, + { + "id": "google.gemma-3-4b-it", + "name": "Gemma 3 4B IT", + "display_name": "Gemma 3 4B IT", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.04, + "output": 0.08 + } + }, + { + "id": "minimax.minimax-m2", + "name": "MiniMax M2", + "display_name": "MiniMax M2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 204608, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "release_date": "2025-10-27", + "last_updated": "2025-10-27", + "cost": { + "input": 0.3, + "output": 1.2 + } + }, { "id": "meta.llama3-2-11b-instruct-v1:0", "name": "Llama 3.2 11B Instruct", @@ -43977,6 +46741,36 @@ "output": 0.16 } }, + { + "id": "qwen.qwen3-next-80b-a3b", + "name": "Qwen/Qwen3-Next-80B-A3B-Instruct", + "display_name": "Qwen/Qwen3-Next-80B-A3B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2025-09-18", + "last_updated": "2025-11-25", + "cost": { + "input": 0.14, + "output": 1.4 + } + }, { "id": "anthropic.claude-3-haiku-20240307-v1:0", "name": "Claude Haiku 3", @@ -44042,6 +46836,37 @@ "output": 0.72 } }, + { + "id": "qwen.qwen3-vl-235b-a22b", + "name": "Qwen/Qwen3-VL-235B-A22B-Instruct", + "display_name": "Qwen/Qwen3-VL-235B-A22B-Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-10-04", + "last_updated": "2025-11-25", + "cost": { + "input": 0.3, + "output": 1.5 + } + }, { "id": "meta.llama3-2-1b-instruct-v1:0", "name": "Llama 3.2 1B Instruct", @@ -44136,6 +46961,42 @@ "output": 1.68 } }, + { + "id": "anthropic.claude-opus-4-5-20251101-v1:0", + "name": "Claude Opus 4.5", + "display_name": "Claude Opus 4.5", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-11-24", + "last_updated": "2025-08-01", + "cost": { + "input": 5, + "output": 25, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, { "id": "cohere.command-light-text-v14", "name": "Command Light", @@ -44167,6 +47028,131 @@ "output": 0.6 } }, + { + "id": "mistral.mistral-large-2402-v1:0", + "name": "Mistral Large (24.02)", + "display_name": "Mistral Large (24.02)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.5, + "output": 1.5 + } + }, + { + "id": "google.gemma-3-27b-it", + "name": "Google Gemma 3 27B Instruct", + "display_name": "Google Gemma 3 27B Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 202752, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2025-07-27", + "last_updated": "2025-07-27", + "cost": { + "input": 0.12, + "output": 0.2 + } + }, + { + "id": "nvidia.nemotron-nano-12b-v2", + "name": "NVIDIA Nemotron Nano 12B v2 VL BF16", + "display_name": "NVIDIA Nemotron Nano 12B v2 VL BF16", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.2, + "output": 0.6 + } + }, + { + "id": "google.gemma-3-12b-it", + "name": "Google Gemma 3 12B", + "display_name": "Google Gemma 3 12B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "knowledge": "2024-12", + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.049999999999999996, + "output": 0.09999999999999999 + } + }, { "id": "ai21.jamba-1-5-large-v1:0", "name": "Jamba 1.5 Large", @@ -44327,6 +47313,36 @@ "output": 0.22 } }, + { + "id": "openai.gpt-oss-120b-1:0", + "name": "gpt-oss-120b", + "display_name": "gpt-oss-120b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.15, + "output": 0.6 + } + }, { "id": "qwen.qwen3-32b-v1:0", "name": "Qwen3 32B (dense)", @@ -44461,6 +47477,37 @@ "output": 1.5 } }, + { + "id": "mistral.voxtral-small-24b-2507", + "name": "Voxtral Small 24B 2507", + "display_name": "Voxtral Small 24B 2507", + "modalities": { + "input": [ + "text", + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": true, + "release_date": "2025-07-01", + "last_updated": "2025-07-01", + "cost": { + "input": 0.15, + "output": 0.35 + } + }, { "id": "amazon.nova-micro-v1:0", "name": "Nova Micro", @@ -44622,6 +47669,36 @@ "cache_write": 3.75 } }, + { + "id": "mistral.ministral-3-8b-instruct", + "name": "Ministral 3 8B", + "display_name": "Ministral 3 8B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.15, + "output": 0.15 + } + }, { "id": "cohere.command-text-v14", "name": "Command", @@ -44689,6 +47766,37 @@ "cache_write": 18.75 } }, + { + "id": "mistral.voxtral-mini-3b-2507", + "name": "Voxtral Mini 3B 2507", + "display_name": "Voxtral Mini 3B 2507", + "modalities": { + "input": [ + "audio", + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.04, + "output": 0.04 + } + }, { "id": "global.anthropic.claude-opus-4-5-20251101-v1:0", "name": "Claude Opus 4.5 (Global)", @@ -44725,6 +47833,38 @@ "cache_write": 18.75 } }, + { + "id": "amazon.nova-2-lite-v1:0", + "name": "Nova 2 Lite", + "display_name": "Nova 2 Lite", + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.33, + "output": 2.75 + } + }, { "id": "qwen.qwen3-coder-480b-a35b-v1:0", "name": "Qwen3 Coder 480B A35B Instruct", @@ -44792,6 +47932,66 @@ "cache_write": 3.75 } }, + { + "id": "openai.gpt-oss-safeguard-20b", + "name": "GPT OSS Safeguard 20B", + "display_name": "GPT OSS Safeguard 20B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.07, + "output": 0.2 + } + }, + { + "id": "openai.gpt-oss-20b-1:0", + "name": "gpt-oss-20b", + "display_name": "gpt-oss-20b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.07, + "output": 0.3 + } + }, { "id": "meta.llama3-2-3b-instruct-v1:0", "name": "Llama 3.2 3B Instruct", @@ -44888,6 +48088,66 @@ "output": 12.5 } }, + { + "id": "mistral.mistral-7b-instruct-v0:2", + "name": "Mistral-7B-Instruct-v0.3", + "display_name": "Mistral-7B-Instruct-v0.3", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 127000, + "output": 127000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": true, + "release_date": "2025-04-01", + "last_updated": "2025-04-01", + "cost": { + "input": 0.11, + "output": 0.11 + } + }, + { + "id": "mistral.mixtral-8x7b-instruct-v0:1", + "name": "Mixtral-8x7B-Instruct-v0.1", + "display_name": "Mixtral-8x7B-Instruct-v0.1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32000, + "output": 32000 + }, + "temperature": true, + "tool_call": false, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": true, + "release_date": "2025-04-01", + "last_updated": "2025-04-01", + "cost": { + "input": 0.7, + "output": 0.7 + } + }, { "id": "anthropic.claude-opus-4-1-20250805-v1:0", "name": "Claude Opus 4.1", @@ -45018,6 +48278,36 @@ "output": 0.6 } }, + { + "id": "amazon.titan-text-express-v1:0:8k", + "name": "Titan Text G1 - Express", + "display_name": "Titan Text G1 - Express", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.2, + "output": 0.6 + } + }, { "id": "anthropic.claude-3-sonnet-20240229-v1:0", "name": "Claude Sonnet 3", @@ -45051,6 +48341,66 @@ "output": 15 } }, + { + "id": "nvidia.nemotron-nano-9b-v2", + "name": "NVIDIA Nemotron Nano 9B v2", + "display_name": "NVIDIA Nemotron Nano 9B v2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.06, + "output": 0.23 + } + }, + { + "id": "amazon.titan-text-express-v1", + "name": "Titan Text G1 - Express", + "display_name": "Titan Text G1 - Express", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.2, + "output": 0.6 + } + }, { "id": "meta.llama4-maverick-17b-instruct-v1:0", "name": "Llama 4 Maverick 17B Instruct", @@ -45083,6 +48433,66 @@ "output": 0.97 } }, + { + "id": "mistral.ministral-3-14b-instruct", + "name": "Ministral 14B 3.0", + "display_name": "Ministral 14B 3.0", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.2, + "output": 0.2 + } + }, + { + "id": "openai.gpt-oss-safeguard-120b", + "name": "GPT OSS Safeguard 120B", + "display_name": "GPT OSS Safeguard 120B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": false, + "open_weights": false, + "release_date": "2024-12-01", + "last_updated": "2024-12-01", + "cost": { + "input": 0.15, + "output": 0.6 + } + }, { "id": "qwen.qwen3-235b-a22b-2507-v1:0", "name": "Qwen3 235B A22B 2507", @@ -45182,6 +48592,37 @@ "cache_read": 0.08, "cache_write": 1 } + }, + { + "id": "moonshot.kimi-k2-thinking", + "name": "Kimi K2 Thinking", + "display_name": "Kimi K2 Thinking", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 256000 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": false, + "open_weights": true, + "release_date": "2025-12-02", + "last_updated": "2025-12-02", + "cost": { + "input": 0.6, + "output": 2.5 + } } ] }, @@ -45629,6 +49070,33 @@ "release_date": "2025-05-09", "last_updated": "2025-05-09" }, + { + "id": "poetools/claude-code", + "name": "claude-code", + "display_name": "claude-code", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-11-27", + "last_updated": "2025-11-27" + }, { "id": "elevenlabs/elevenlabs-v3", "name": "ElevenLabs-v3", @@ -45707,6 +49175,39 @@ "release_date": "2024-10-28", "last_updated": "2024-10-28" }, + { + "id": "google/gemini-deep-research", + "name": "gemini-deep-research", + "display_name": "gemini-deep-research", + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 0 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-12-11", + "last_updated": "2025-12-11", + "cost": { + "input": 1.6, + "output": 9.6 + } + }, { "id": "google/nano-banana", "name": "Nano-Banana", @@ -46294,6 +49795,38 @@ "cache_read": 0.022 } }, + { + "id": "openai/gpt-5.2-instant", + "name": "gpt-5.2-instant", + "display_name": "gpt-5.2-instant", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": false + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-12-11", + "last_updated": "2025-12-11", + "cost": { + "input": 1.6, + "output": 13, + "cache_read": 0.16 + } + }, { "id": "openai/sora-2", "name": "Sora-2", @@ -46632,6 +50165,38 @@ "output": 1.4 } }, + { + "id": "openai/gpt-5.2-pro", + "name": "gpt-5.2-pro", + "display_name": "gpt-5.2-pro", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-12-11", + "last_updated": "2025-12-11", + "cost": { + "input": 19, + "output": 150 + } + }, { "id": "openai/o3-mini-high", "name": "o3-mini-high", @@ -47168,6 +50733,39 @@ "release_date": "2025-03-31", "last_updated": "2025-03-31" }, + { + "id": "openai/gpt-5.1-codex-max", + "name": "gpt-5.1-codex-max", + "display_name": "gpt-5.1-codex-max", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-12-08", + "last_updated": "2025-12-08", + "cost": { + "input": 1.1, + "output": 9, + "cache_read": 0.11 + } + }, { "id": "openai/gpt-3.5-turbo-instruct", "name": "GPT-3.5-Turbo-Instruct", @@ -47445,6 +51043,39 @@ "output": 110 } }, + { + "id": "openai/gpt-5.2", + "name": "gpt-5.2", + "display_name": "gpt-5.2", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "open_weights": false, + "release_date": "2025-12-08", + "last_updated": "2025-12-08", + "cost": { + "input": 1.6, + "output": 13, + "cache_read": 0.16 + } + }, { "id": "openai/gpt-4o-mini-search", "name": "GPT-4o-mini-Search", @@ -55248,6 +58879,21 @@ }, "type": "chat" }, + { + "id": "baidu/ernie-4.5-21b-a3b-thinking", + "name": "Ernie 4.5 21B A3B Thinking", + "display_name": "Ernie 4.5 21B A3B Thinking", + "limit": { + "context": 131072, + "output": 65536 + }, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, { "id": "baidu/ernie-4.5-0.3b", "name": "ERNIE-4.5-0.3B", @@ -56325,8 +59971,8 @@ }, { "id": "openrouter/bodybuilder", - "name": "Body Builder", - "display_name": "Body Builder", + "name": "Body Builder (beta)", + "display_name": "Body Builder (beta)", "limit": { "context": 4096, "output": 4096 @@ -57443,20 +61089,6 @@ }, "type": "chat" }, - { - "id": "microsoft/mai-ds-r1", - "name": "Microsoft: MAI DS R1", - "display_name": "Microsoft: MAI DS R1", - "limit": { - "context": 4096, - "output": 4096 - }, - "tool_call": false, - "reasoning": { - "supported": false - }, - "type": "chat" - }, { "id": "microsoft/phi-4", "name": "Microsoft: Phi 4", @@ -57933,6 +61565,20 @@ }, "type": "chat" }, + { + "id": "mistralai/mistral-small-creative", + "name": "Mistral: Mistral Small Creative", + "display_name": "Mistral: Mistral Small Creative", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, { "id": "mistralai/mixtral-8x22b-instruct", "name": "Mistral: Mixtral 8x22B Instruct", @@ -58087,20 +61733,6 @@ }, "type": "chat" }, - { - "id": "moonshotai/kimi-linear-48b-a3b-instruct", - "name": "MoonshotAI: Kimi Linear 48B A3B Instruct", - "display_name": "MoonshotAI: Kimi Linear 48B A3B Instruct", - "limit": { - "context": 4096, - "output": 4096 - }, - "tool_call": false, - "reasoning": { - "supported": false - }, - "type": "chat" - }, { "id": "morph/morph-v3-fast", "name": "Morph: Morph V3 Fast", @@ -59655,6 +63287,20 @@ }, "type": "chat" }, + { + "id": "qwen/qwen3-vl-32b-instruct", + "name": "Qwen: Qwen3 VL 32B Instruct", + "display_name": "Qwen: Qwen3 VL 32B Instruct", + "limit": { + "context": 4096, + "output": 4096 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, { "id": "qwen/qwen3-vl-8b-instruct", "name": "Qwen: Qwen3 VL 8B Instruct", @@ -59893,20 +63539,6 @@ }, "type": "chat" }, - { - "id": "thedrummer/anubis-70b-v1.1", - "name": "TheDrummer: Anubis 70B V1.1", - "display_name": "TheDrummer: Anubis 70B V1.1", - "limit": { - "context": 4096, - "output": 4096 - }, - "tool_call": false, - "reasoning": { - "supported": false - }, - "type": "chat" - }, { "id": "thedrummer/cydonia-24b-v4.1", "name": "TheDrummer: Cydonia 24B V4.1", @@ -60264,6 +63896,60 @@ "name": "AIHubMix", "display_name": "AIHubMix", "models": [ + { + "id": "gemini-3-flash-preview", + "name": "gemini-3-flash-preview", + "display_name": "gemini-3-flash-preview", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] + }, + "limit": { + "context": 1048576, + "output": 1048576 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05 + }, + "type": "chat" + }, + { + "id": "gemini-3-flash-preview-search", + "name": "gemini-3-flash-preview-search", + "display_name": "gemini-3-flash-preview-search", + "modalities": { + "input": [ + "text", + "image", + "audio" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "cost": { + "input": 0.5, + "output": 3, + "cache_read": 0.05 + }, + "type": "chat" + }, { "id": "claude-opus-4-5", "name": "claude-opus-4-5", @@ -60315,6 +64001,31 @@ }, "type": "imageGeneration" }, + { + "id": "gpt-image-1.5", + "name": "gpt-image-1.5", + "display_name": "gpt-image-1.5", + "modalities": { + "input": [ + "text", + "image" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 5, + "output": 10, + "cache_read": 5 + }, + "type": "imageGeneration" + }, { "id": "gpt-5.2", "name": "gpt-5.2", @@ -60781,6 +64492,31 @@ }, "type": "chat" }, + { + "id": "web-gpt-image-1.5", + "name": "web-gpt-image-1.5", + "display_name": "web-gpt-image-1.5", + "modalities": { + "input": [ + "text", + "image" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 3, + "output": 3, + "cache_read": 0 + }, + "type": "imageGeneration" + }, { "id": "gpt-5", "name": "gpt-5", @@ -61143,6 +64879,53 @@ }, "type": "chat" }, + { + "id": "wan2.6-i2v", + "name": "wan2.6-i2v", + "display_name": "wan2.6-i2v", + "modalities": { + "input": [ + "image", + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 2, + "output": 0 + }, + "type": "chat" + }, + { + "id": "wan2.6-t2v", + "name": "wan2.6-t2v", + "display_name": "wan2.6-t2v", + "modalities": { + "input": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 2, + "output": 0 + }, + "type": "chat" + }, { "id": "gpt-4o-audio-preview", "name": "gpt-4o-audio-preview", @@ -61617,32 +65400,6 @@ }, "type": "chat" }, - { - "id": "doubao-seed-code-free", - "name": "doubao-seed-code-free", - "display_name": "doubao-seed-code-free", - "modalities": { - "input": [ - "text", - "image" - ] - }, - "limit": { - "context": 256000, - "output": 256000 - }, - "tool_call": true, - "reasoning": { - "supported": true, - "default": true - }, - "cost": { - "input": 0, - "output": 0, - "cache_read": 0 - }, - "type": "chat" - }, { "id": "flux-2-flex", "name": "flux-2-flex", @@ -64042,6 +67799,31 @@ }, "type": "embedding" }, + { + "id": "gemini-2.0-flash-preview-image-generation", + "name": "gemini-2.0-flash-preview-image-generation", + "display_name": "gemini-2.0-flash-preview-image-generation", + "modalities": { + "input": [ + "text", + "image" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0 + }, + "type": "chat" + }, { "id": "claude-3-7-sonnet", "name": "claude-3-7-sonnet", @@ -64142,31 +67924,6 @@ }, "type": "chat" }, - { - "id": "gemini-2.0-flash-preview-image-generation", - "name": "gemini-2.0-flash-preview-image-generation", - "display_name": "gemini-2.0-flash-preview-image-generation", - "modalities": { - "input": [ - "text", - "image" - ] - }, - "limit": { - "context": 8192, - "output": 8192 - }, - "tool_call": false, - "reasoning": { - "supported": false - }, - "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0 - }, - "type": "chat" - }, { "id": "o3-mini", "name": "o3-mini", @@ -64447,6 +68204,33 @@ }, "type": "chat" }, + { + "id": "gemini-2.0-flash-search", + "name": "gemini-2.0-flash-search", + "display_name": "gemini-2.0-flash-search", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.25 + }, + "type": "chat" + }, { "id": "gemini-2.5-pro-preview-06-05", "name": "gemini-2.5-pro-preview-06-05", @@ -64521,33 +68305,6 @@ }, "type": "embedding" }, - { - "id": "gemini-2.0-flash-search", - "name": "gemini-2.0-flash-search", - "display_name": "gemini-2.0-flash-search", - "modalities": { - "input": [ - "text", - "image", - "audio", - "video" - ] - }, - "limit": { - "context": 8192, - "output": 8192 - }, - "tool_call": false, - "reasoning": { - "supported": false - }, - "cost": { - "input": 0.1, - "output": 0.4, - "cache_read": 0.25 - }, - "type": "chat" - }, { "id": "o1", "name": "o1", @@ -65538,24 +69295,6 @@ }, "type": "chat" }, - { - "id": "qwen-max-0125", - "name": "qwen-max-0125", - "display_name": "qwen-max-0125", - "limit": { - "context": 8192, - "output": 8192 - }, - "tool_call": false, - "reasoning": { - "supported": false - }, - "cost": { - "input": 0.38, - "output": 1.52 - }, - "type": "chat" - }, { "id": "claude-3-5-haiku", "name": "claude-3-5-haiku", @@ -65580,6 +69319,24 @@ }, "type": "chat" }, + { + "id": "qwen-max-0125", + "name": "qwen-max-0125", + "display_name": "qwen-max-0125", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0.38, + "output": 1.52 + }, + "type": "chat" + }, { "id": "gemini-2.0-flash-lite-preview-02-05", "name": "gemini-2.0-flash-lite-preview-02-05", @@ -66466,6 +70223,24 @@ }, "type": "chat" }, + { + "id": "llama-3.1-70b", + "name": "llama-3.1-70b", + "display_name": "llama-3.1-70b", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0.6, + "output": 0.6 + }, + "type": "chat" + }, { "id": "gemini-2.0-flash-thinking-exp", "name": "gemini-2.0-flash-thinking-exp", @@ -66552,6 +70327,24 @@ }, "type": "imageGeneration" }, + { + "id": "llama3-8b-8192", + "name": "llama3-8b-8192", + "display_name": "llama3-8b-8192", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0.06, + "output": 0.12 + }, + "type": "chat" + }, { "id": "llama3.1-8b", "name": "llama3.1-8b", @@ -66799,6 +70592,24 @@ }, "type": "chat" }, + { + "id": "crush-glm-4.6-free", + "name": "crush-glm-4.6-free", + "display_name": "crush-glm-4.6-free", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0, + "output": 0 + }, + "type": "chat" + }, { "id": "aihubmix-command-r-08-2024", "name": "aihubmix-command-r-08-2024", @@ -67456,6 +71267,79 @@ }, "type": "chat" }, + { + "id": "deepinfra-llama-3.1-8b-instant", + "name": "deepinfra-llama-3.1-8b-instant", + "display_name": "deepinfra-llama-3.1-8b-instant", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0.033, + "output": 0.054978 + }, + "type": "chat" + }, + { + "id": "deepinfra-llama-3.3-70b-instant-turbo", + "name": "deepinfra-llama-3.3-70b-instant-turbo", + "display_name": "deepinfra-llama-3.3-70b-instant-turbo", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0.11, + "output": 0.352 + }, + "type": "chat" + }, + { + "id": "deepinfra-llama-4-maverick-17b-128e-instruct", + "name": "deepinfra-llama-4-maverick-17b-128e-instruct", + "display_name": "deepinfra-llama-4-maverick-17b-128e-instruct", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 1.65, + "output": 6.6 + }, + "type": "chat" + }, + { + "id": "deepinfra-llama-4-scout-17b-16e-instruct", + "name": "deepinfra-llama-4-scout-17b-16e-instruct", + "display_name": "deepinfra-llama-4-scout-17b-16e-instruct", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0.088, + "output": 0.33, + "cache_read": 0 + }, + "type": "chat" + }, { "id": "deepseek-ai/deepseek-llm-67b-chat", "name": "deepseek-ai/deepseek-llm-67b-chat", @@ -68438,6 +72322,78 @@ }, "type": "chat" }, + { + "id": "groq-llama-3.1-8b-instant", + "name": "groq-llama-3.1-8b-instant", + "display_name": "groq-llama-3.1-8b-instant", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0.055, + "output": 0.088 + }, + "type": "chat" + }, + { + "id": "groq-llama-3.3-70b-versatile", + "name": "groq-llama-3.3-70b-versatile", + "display_name": "groq-llama-3.3-70b-versatile", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0.649, + "output": 0.869011 + }, + "type": "chat" + }, + { + "id": "groq-llama-4-maverick-17b-128e-instruct", + "name": "groq-llama-4-maverick-17b-128e-instruct", + "display_name": "groq-llama-4-maverick-17b-128e-instruct", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0.22, + "output": 0.66 + }, + "type": "chat" + }, + { + "id": "groq-llama-4-scout-17b-16e-instruct", + "name": "groq-llama-4-scout-17b-16e-instruct", + "display_name": "groq-llama-4-scout-17b-16e-instruct", + "limit": { + "context": 8192, + "output": 8192 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "cost": { + "input": 0.122, + "output": 0.366 + }, + "type": "chat" + }, { "id": "imagen-4.0-generate-preview-05-20", "name": "imagen-4.0-generate-preview-05-20", @@ -68540,24 +72496,6 @@ }, "type": "chat" }, - { - "id": "llama-3.1-70b", - "name": "llama-3.1-70b", - "display_name": "llama-3.1-70b", - "limit": { - "context": 8192, - "output": 8192 - }, - "tool_call": false, - "reasoning": { - "supported": false - }, - "cost": { - "input": 0.6, - "output": 0.6 - }, - "type": "chat" - }, { "id": "llama-3.1-70b-versatile", "name": "llama-3.1-70b-versatile", @@ -68703,9 +72641,9 @@ "type": "chat" }, { - "id": "llama2-7b-2048", - "name": "llama2-7b-2048", - "display_name": "llama2-7b-2048", + "id": "llama2-70b-40960", + "name": "llama2-70b-40960", + "display_name": "llama2-70b-40960", "limit": { "context": 8192, "output": 8192 @@ -68715,15 +72653,15 @@ "supported": false }, "cost": { - "input": 0.1, - "output": 0.1 + "input": 0.5, + "output": 0.5 }, "type": "chat" }, { - "id": "llama3-70b-8192", - "name": "llama3-70b-8192", - "display_name": "llama3-70b-8192", + "id": "llama2-7b-2048", + "name": "llama2-7b-2048", + "display_name": "llama2-7b-2048", "limit": { "context": 8192, "output": 8192 @@ -68733,15 +72671,15 @@ "supported": false }, "cost": { - "input": 0.7, - "output": 0.937288 + "input": 0.1, + "output": 0.1 }, "type": "chat" }, { - "id": "llama3-8b-8192", - "name": "llama3-8b-8192", - "display_name": "llama3-8b-8192", + "id": "llama3-70b-8192", + "name": "llama3-70b-8192", + "display_name": "llama3-70b-8192", "limit": { "context": 8192, "output": 8192 @@ -68751,8 +72689,8 @@ "supported": false }, "cost": { - "input": 0.06, - "output": 0.12 + "input": 0.7, + "output": 0.937288 }, "type": "chat" }, @@ -70583,9 +74521,9 @@ "type": "chat" }, { - "id": "alpindale/goliath-120b", - "name": "Goliath 120B", - "display_name": "Goliath 120B", + "id": "allenai/olmo-3.1-32b-think:free", + "name": "AllenAI: Olmo 3.1 32B Think (free)", + "display_name": "AllenAI: Olmo 3.1 32B Think (free)", "modalities": { "input": [ "text" @@ -70595,45 +74533,43 @@ ] }, "limit": { - "context": 6144, - "output": 1024 + "context": 65536, + "output": 65536 }, + "temperature": true, "tool_call": false, "reasoning": { - "supported": false + "supported": true, + "default": true }, "type": "chat" }, { - "id": "amazon/nova-2-lite-v1", - "name": "Amazon: Nova 2 Lite", - "display_name": "Amazon: Nova 2 Lite", + "id": "alpindale/goliath-120b", + "name": "Goliath 120B", + "display_name": "Goliath 120B", "modalities": { "input": [ - "text", - "image", - "video" + "text" ], "output": [ "text" ] }, "limit": { - "context": 1000000, - "output": 65535 + "context": 6144, + "output": 1024 }, - "tool_call": true, + "tool_call": false, "reasoning": { - "supported": true, - "default": true + "supported": false }, - "attachment": true, - "type": "imageGeneration" + "type": "chat" }, { - "id": "amazon/nova-2-lite-v1:free", - "name": "Amazon: Nova 2 Lite (free)", - "display_name": "Amazon: Nova 2 Lite (free)", + "id": "amazon/nova-2-lite-v1", + "name": "Amazon: Nova 2 Lite", + "display_name": "Amazon: Nova 2 Lite", "modalities": { "input": [ "text", @@ -71624,8 +75560,8 @@ ] }, "limit": { - "context": 163840, - "output": 163840 + "context": 8192, + "output": 7168 }, "tool_call": true, "reasoning": { @@ -71748,6 +75684,29 @@ }, "type": "chat" }, + { + "id": "deepseek/deepseek-r1-0528:free", + "name": "DeepSeek: R1 0528 (free)", + "display_name": "DeepSeek: R1 0528 (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 163840, + "output": 163840 + }, + "tool_call": false, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, { "id": "deepseek/deepseek-r1-distill-llama-70b", "name": "DeepSeek: R1 Distill Llama 70B", @@ -71877,7 +75836,7 @@ }, "limit": { "context": 163840, - "output": 163840 + "output": 65536 }, "temperature": true, "tool_call": true, @@ -71901,7 +75860,7 @@ }, "limit": { "context": 163840, - "output": 163840 + "output": 65536 }, "temperature": true, "tool_call": true, @@ -72290,6 +76249,33 @@ "attachment": true, "type": "imageGeneration" }, + { + "id": "google/gemini-3-flash-preview", + "name": "Google: Gemini 3 Flash Preview", + "display_name": "Google: Gemini 3 Flash Preview", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65535 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "attachment": true, + "type": "imageGeneration" + }, { "id": "google/gemini-3-pro-image-preview", "name": "Google: Nano Banana Pro (Gemini 3 Pro Image Preview)", @@ -72472,7 +76458,7 @@ "context": 131072, "output": 131072 }, - "tool_call": false, + "tool_call": true, "reasoning": { "supported": false }, @@ -72834,28 +76820,6 @@ }, "type": "chat" }, - { - "id": "meituan/longcat-flash-chat:free", - "name": "Meituan: LongCat Flash Chat (free)", - "display_name": "Meituan: LongCat Flash Chat (free)", - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "limit": { - "context": 131072, - "output": 131072 - }, - "tool_call": true, - "reasoning": { - "supported": false - }, - "type": "chat" - }, { "id": "meta-llama/llama-3-70b-instruct", "name": "Meta: Llama 3 70B Instruct", @@ -72944,6 +76908,28 @@ }, "type": "chat" }, + { + "id": "meta-llama/llama-3.1-405b-instruct:free", + "name": "Meta: Llama 3.1 405B Instruct (free)", + "display_name": "Meta: Llama 3.1 405B Instruct (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "chat" + }, { "id": "meta-llama/llama-3.1-70b-instruct", "name": "Meta: Llama 3.1 70B Instruct", @@ -73257,29 +77243,6 @@ }, "type": "imageGeneration" }, - { - "id": "microsoft/mai-ds-r1", - "name": "Microsoft: MAI DS R1", - "display_name": "Microsoft: MAI DS R1", - "modalities": { - "input": [ - "text" - ], - "output": [ - "text" - ] - }, - "limit": { - "context": 163840, - "output": 163840 - }, - "tool_call": false, - "reasoning": { - "supported": true, - "default": true - }, - "type": "chat" - }, { "id": "microsoft/phi-3-medium-128k-instruct", "name": "Microsoft: Phi-3 Medium 128K Instruct", @@ -73495,8 +77458,8 @@ ] }, "limit": { - "context": 262144, - "output": 262144 + "context": 196608, + "output": 131072 }, "temperature": true, "tool_call": true, @@ -74159,6 +78122,29 @@ }, "type": "imageGeneration" }, + { + "id": "mistralai/mistral-small-creative", + "name": "Mistral: Mistral Small Creative", + "display_name": "Mistral: Mistral Small Creative", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, { "id": "mistralai/mistral-tiny", "name": "Mistral Tiny", @@ -74769,6 +78755,29 @@ }, "type": "chat" }, + { + "id": "nvidia/nemotron-3-nano-30b-a3b:free", + "name": "NVIDIA: Nemotron 3 Nano 30B A3B (free)", + "display_name": "NVIDIA: Nemotron 3 Nano 30B A3B (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 256000 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, { "id": "nvidia/nemotron-nano-12b-v2-vl", "name": "NVIDIA: Nemotron Nano 12B 2 VL", @@ -76256,8 +80265,8 @@ }, { "id": "openrouter/bodybuilder", - "name": "Body Builder", - "display_name": "Body Builder", + "name": "Body Builder (beta)", + "display_name": "Body Builder (beta)", "modalities": { "input": [ "text" @@ -76529,6 +80538,29 @@ }, "type": "imageGeneration" }, + { + "id": "qwen/qwen-2.5-vl-7b-instruct:free", + "name": "Qwen: Qwen2.5-VL 7B Instruct (free)", + "display_name": "Qwen: Qwen2.5-VL 7B Instruct (free)", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 32768 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "imageGeneration" + }, { "id": "qwen/qwen-max", "name": "Qwen: Qwen-Max", @@ -77305,6 +81337,29 @@ }, "type": "imageGeneration" }, + { + "id": "qwen/qwen3-vl-32b-instruct", + "name": "Qwen: Qwen3 VL 32B Instruct", + "display_name": "Qwen: Qwen3 VL 32B Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "tool_call": false, + "reasoning": { + "supported": false + }, + "type": "imageGeneration" + }, { "id": "qwen/qwen3-vl-8b-instruct", "name": "Qwen: Qwen3 VL 8B Instruct", @@ -78081,6 +82136,29 @@ }, "type": "chat" }, + { + "id": "xiaomi/mimo-v2-flash:free", + "name": "Xiaomi: MiMo-V2-Flash (free)", + "display_name": "Xiaomi: MiMo-V2-Flash (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, { "id": "z-ai/glm-4-32b", "name": "Z.AI: GLM 4 32B", @@ -78214,8 +82292,8 @@ ] }, "limit": { - "context": 202752, - "output": 202752 + "context": 204800, + "output": 204800 }, "temperature": true, "tool_call": true, @@ -78921,6 +82999,31 @@ }, "type": "chat" }, + { + "id": "gemini-3-flash-preview", + "name": "gemini-3-flash-preview", + "display_name": "gemini-3-flash-preview", + "modalities": { + "input": [ + "text", + "image", + "video", + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "tool_call": true, + "reasoning": { + "supported": false + }, + "type": "chat" + }, { "id": "gemini-3-pro-preview", "name": "gemini-3-pro-preview", @@ -79392,6 +83495,54 @@ }, "type": "chat" }, + { + "id": "gpt-5.1-codex-max", + "name": "gpt-5.1-codex-max", + "display_name": "gpt-5.1-codex-max", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, + { + "id": "gpt-5.1-codex-mini", + "name": "gpt-5.1-codex-mini", + "display_name": "gpt-5.1-codex-mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "tool_call": true, + "reasoning": { + "supported": true, + "default": true + }, + "type": "chat" + }, { "id": "gpt-5.2", "name": "gpt-5.2", diff --git a/src/main/presenter/sqlitePresenter/index.ts b/src/main/presenter/sqlitePresenter/index.ts index 7a0c687db..4dd9c734a 100644 --- a/src/main/presenter/sqlitePresenter/index.ts +++ b/src/main/presenter/sqlitePresenter/index.ts @@ -32,9 +32,11 @@ export class SQLitePresenter implements ISQLitePresenter { private acpSessionsTable!: AcpSessionsTable private currentVersion: number = 0 private dbPath: string + private password?: string constructor(dbPath: string, password?: string) { this.dbPath = dbPath + this.password = password try { // 确保数据库目录存在 const dbDir = path.dirname(dbPath) @@ -215,7 +217,39 @@ export class SQLitePresenter implements ISQLitePresenter { // 关闭数据库连接 public close() { - this.db.close() + try { + this.db.close() + } catch (error) { + console.warn('Failed to close database:', error) + } + } + + public reopen() { + try { + this.close() + + const dbDir = path.dirname(this.dbPath) + if (!fs.existsSync(dbDir)) { + fs.mkdirSync(dbDir, { recursive: true }) + } + + this.db = new Database(this.dbPath) + this.db.pragma('journal_mode = WAL') + + if (this.password) { + this.db.pragma(`cipher='sqlcipher'`) + this.db.pragma(`key='${this.password}'`) + } + + this.db.prepare('SELECT 1').get() + + this.initTables() + this.initVersionTable() + this.migrate() + } catch (error) { + console.error('Failed to reopen database:', error) + throw error + } } // 创建新对话 diff --git a/src/main/presenter/syncPresenter/index.ts b/src/main/presenter/syncPresenter/index.ts index 2227664f8..be8b9c0ca 100644 --- a/src/main/presenter/syncPresenter/index.ts +++ b/src/main/presenter/syncPresenter/index.ts @@ -182,6 +182,8 @@ export class SyncPresenter implements ISyncPresenter { mcpSettings: null } + let sqliteClosed = false + try { this.extractBackupArchive(backupZipPath, extractionDir) @@ -196,6 +198,7 @@ export class SyncPresenter implements ISyncPresenter { } this.sqlitePresenter.close() + sqliteClosed = true tempCurrentFiles.db = this.createTempBackup(this.DB_PATH, 'chat.db') tempCurrentFiles.appSettings = this.createTempBackup( @@ -226,6 +229,7 @@ export class SyncPresenter implements ISyncPresenter { backupDb.close() this.copyFile(backupDbPath, this.DB_PATH) + this.cleanupDatabaseSidecarFiles(this.DB_PATH) this.mergeAppSettingsPreservingSync(backupAppSettingsPath, this.APP_SETTINGS_PATH) if (fs.existsSync(backupCustomPromptsPath)) { @@ -257,6 +261,13 @@ export class SyncPresenter implements ISyncPresenter { } } + if (sqliteClosed) { + this.sqlitePresenter.reopen() + } + await this.broadcastThreadListUpdateAfterImport() + if (importMode === ImportMode.OVERWRITE) { + await this.resetShellWindowsToSingleNewChatTab() + } eventBus.send(SYNC_EVENTS.IMPORT_COMPLETED, SendTarget.ALL_WINDOWS) return { success: true, @@ -266,6 +277,14 @@ export class SyncPresenter implements ISyncPresenter { } catch (error) { console.error('import failed,reverting:', error) this.restoreFromTempBackup(tempCurrentFiles) + if (sqliteClosed) { + try { + this.sqlitePresenter.reopen() + await this.broadcastThreadListUpdateAfterImport() + } catch (reopenError) { + console.error('Failed to reopen sqlite after import failure:', reopenError) + } + } eventBus.send( SYNC_EVENTS.IMPORT_ERROR, SendTarget.ALL_WINDOWS, @@ -535,6 +554,70 @@ export class SyncPresenter implements ISyncPresenter { fs.copyFileSync(source, target) } + private async broadcastThreadListUpdateAfterImport(): Promise { + try { + const { presenter } = await import('../index') + await (presenter?.threadPresenter as any)?.broadcastThreadListUpdate?.() + } catch (error) { + console.warn('Failed to broadcast thread list update after import:', error) + } + } + + private async resetShellWindowsToSingleNewChatTab(): Promise { + try { + const { presenter } = await import('../index') + const windowPresenter = presenter?.windowPresenter as any + const tabPresenter = presenter?.tabPresenter as any + + const windows = (windowPresenter?.getAllWindows?.() as Array<{ id: number }>) ?? [] + await Promise.all( + windows.map(async ({ id: windowId }) => { + const tabsData = + (await tabPresenter?.getWindowTabsData?.(windowId)) ?? + ([] as Array<{ id: number; isActive?: boolean }>) + + if (tabsData.length === 0) { + await tabPresenter?.createTab?.(windowId, 'local://chat', { active: true }) + return + } + + const tabToKeep = tabsData.find((tab) => tab.isActive) ?? tabsData[0] + if (!tabToKeep) { + return + } + + await tabPresenter?.resetTabToBlank?.(tabToKeep.id) + await tabPresenter?.switchTab?.(tabToKeep.id) + + const tabsToClose = tabsData.filter((tab) => tab.id !== tabToKeep.id).map((tab) => tab.id) + for (const tabId of tabsToClose) { + try { + await tabPresenter?.closeTab?.(tabId) + } catch (error) { + console.warn('Failed to close tab after overwrite import:', tabId, error) + } + } + }) + ) + } catch (error) { + console.warn('Failed to reset shell windows after overwrite import:', error) + } + } + + private cleanupDatabaseSidecarFiles(dbFilePath: string): void { + const sidecarFiles = [`${dbFilePath}-wal`, `${dbFilePath}-shm`] + for (const filePath of sidecarFiles) { + if (!fs.existsSync(filePath)) { + continue + } + try { + fs.unlinkSync(filePath) + } catch (error) { + console.warn('Failed to remove database sidecar file:', filePath, error) + } + } + } + private restoreFromTempBackup(tempFiles: Record): void { if (tempFiles.db) { this.copyFile(tempFiles.db, this.DB_PATH) diff --git a/src/renderer/settings/components/DataSettings.vue b/src/renderer/settings/components/DataSettings.vue index 69b85b361..ca9eadb66 100644 --- a/src/renderer/settings/components/DataSettings.vue +++ b/src/renderer/settings/components/DataSettings.vue @@ -242,14 +242,10 @@ - + - {{ - syncStore.importResult?.success - ? t('settings.data.importSuccessTitle') - : t('settings.data.importErrorTitle') - }} + {{ t('settings.data.importErrorTitle') }} {{ syncStore.importResult?.message @@ -397,8 +393,8 @@ const handleBackup = async () => { } toast({ - title: t('settings.data.toast.backupSuccessTitle'), - description: t('settings.data.toast.backupSuccessMessage', { + title: t('settings.provider.toast.backupSuccessTitle'), + description: t('settings.provider.toast.backupSuccessMessage', { time: new Date(backupInfo.createdAt).toLocaleString(), size: formatBytes(backupInfo.size) }), @@ -423,8 +419,8 @@ const handleImport = async () => { ) if (result?.success) { toast({ - title: t('settings.data.toast.importSuccessTitle'), - description: t('settings.data.toast.importSuccessMessage', { + title: t('settings.provider.toast.importSuccessTitle'), + description: t('settings.provider.toast.importSuccessMessage', { count: result.count ?? 0 }), duration: 4000 @@ -435,11 +431,6 @@ const handleImport = async () => { // 处理警告对话框的确认操作 const handleAlertAction = () => { - // 如果导入成功,则重启应用 - console.log(syncStore.importResult) - if (syncStore.importResult?.success) { - syncStore.restartApp() - } syncStore.clearImportResult() } diff --git a/src/renderer/src/i18n/da-DK/settings.json b/src/renderer/src/i18n/da-DK/settings.json index 6b60d58da..aba52b001 100644 --- a/src/renderer/src/i18n/da-DK/settings.json +++ b/src/renderer/src/i18n/da-DK/settings.json @@ -80,7 +80,7 @@ "selectBackupPlaceholder": "Vælg en backup", "noBackupsAvailable": "Ingen backups tilgængelige. Kør først en sikkerhedskopi.", "importConfirmTitle": "Bekræft dataimport", - "importConfirmDescription": "Import overskriver alle aktuelle data, inklusiv chat- og indstillingshistorik. Sørg for at sikkerhedskopiere vigtige data. Appen skal genstartes efter import.", + "importConfirmDescription": "Import overskriver alle aktuelle data, inklusiv chat- og indstillingshistorik. Sørg for at sikkerhedskopiere vigtige data. Data bliver automatisk opdateret efter import.", "importing": "Importerer...", "confirmImport": "Bekræft import", "importSuccessTitle": "Import gennemført", diff --git a/src/renderer/src/i18n/da-DK/sync.json b/src/renderer/src/i18n/da-DK/sync.json index 194f5b9cf..fd0d84387 100644 --- a/src/renderer/src/i18n/da-DK/sync.json +++ b/src/renderer/src/i18n/da-DK/sync.json @@ -1,6 +1,6 @@ { "success": { - "importComplete": "Import af {count} samtale(r) lykkedes. Programmet genstarter nu." + "importComplete": "Import af {count} samtale(r) lykkedes." }, "error": { "notEnabled": "Synkronisering er ikke aktiveret", diff --git a/src/renderer/src/i18n/en-US/settings.json b/src/renderer/src/i18n/en-US/settings.json index 9b8a63682..17272cf16 100644 --- a/src/renderer/src/i18n/en-US/settings.json +++ b/src/renderer/src/i18n/en-US/settings.json @@ -80,7 +80,7 @@ "selectBackupPlaceholder": "Select a backup", "noBackupsAvailable": "No backups available. Run a backup first.", "importConfirmTitle": "Confirm Data Import", - "importConfirmDescription": "Importing will overwrite all current data, including chat history and settings. Make sure you have backed up important data. You'll need to restart the application after import.", + "importConfirmDescription": "Importing will overwrite all current data, including chat history and settings. Make sure you have backed up important data. Data will refresh automatically after import.", "importing": "Importing...", "confirmImport": "Confirm Import", "importSuccessTitle": "Import Successful", diff --git a/src/renderer/src/i18n/en-US/sync.json b/src/renderer/src/i18n/en-US/sync.json index 07295cc5c..5d3aae9e1 100644 --- a/src/renderer/src/i18n/en-US/sync.json +++ b/src/renderer/src/i18n/en-US/sync.json @@ -1,6 +1,6 @@ { "success": { - "importComplete": "Successfully imported {count} conversation(s). The application will now restart." + "importComplete": "Successfully imported {count} conversation(s)." }, "error": { "notEnabled": "Sync is not enabled", diff --git a/src/renderer/src/i18n/fa-IR/settings.json b/src/renderer/src/i18n/fa-IR/settings.json index 632fd0ab4..ff8b56d41 100644 --- a/src/renderer/src/i18n/fa-IR/settings.json +++ b/src/renderer/src/i18n/fa-IR/settings.json @@ -80,7 +80,7 @@ "selectBackupPlaceholder": "یک نسخهٔ پشتیبان انتخاب کنید", "noBackupsAvailable": "هیچ نسخهٔ پشتیبانی در دسترس نیست. ابتدا یک پشتیبان تهیه کنید.", "importConfirmTitle": "پذیرش وارد کردن داده", - "importConfirmDescription": "وارد کردن داده همه داده‌های کنونی، دارای تاریخچه گفت‌وگو و تنظیمات را بازنویسی می‌کند. مطمئن شوید که از داده‌های مهم پشتیبان گرفته‌اید. پس از وارد کردن، نیاز به بازراه‌اندازی برنامه است.", + "importConfirmDescription": "وارد کردن داده همه داده‌های کنونی، دارای تاریخچه گفت‌وگو و تنظیمات را بازنویسی می‌کند. مطمئن شوید که از داده‌های مهم پشتیبان گرفته‌اید. پس از وارد کردن، داده‌ها به‌صورت خودکار تازه‌سازی می‌شوند.", "importing": "در حال وارد کردن...", "confirmImport": "پذیرش وارد کردن", "importSuccessTitle": "وارد کردن موفق", diff --git a/src/renderer/src/i18n/fa-IR/sync.json b/src/renderer/src/i18n/fa-IR/sync.json index 5902773be..effc5b549 100644 --- a/src/renderer/src/i18n/fa-IR/sync.json +++ b/src/renderer/src/i18n/fa-IR/sync.json @@ -1,6 +1,6 @@ { "success": { - "importComplete": "{count} مکالمه با موفقیت وارد شد. برای راه‌اندازی دوباره برنامه، روی دکمه خوب بزنید." + "importComplete": "{count} مکالمه با موفقیت وارد شد." }, "error": { "notEnabled": "ویژگی همگام‌سازی روشن نیست", diff --git a/src/renderer/src/i18n/fr-FR/settings.json b/src/renderer/src/i18n/fr-FR/settings.json index f497f35cc..7575a4175 100644 --- a/src/renderer/src/i18n/fr-FR/settings.json +++ b/src/renderer/src/i18n/fr-FR/settings.json @@ -80,7 +80,7 @@ "selectBackupPlaceholder": "Sélectionnez une sauvegarde", "noBackupsAvailable": "Aucune sauvegarde disponible. Lancez d'abord une sauvegarde.", "importConfirmTitle": "Confirmer l'importation des données", - "importConfirmDescription": "L'importation écrasera toutes les données actuelles, y compris l'historique des conversations et les paramètres. Assurez-vous d'avoir sauvegardé les données importantes. Vous devrez redémarrer l'application après l'importation.", + "importConfirmDescription": "L'importation écrasera toutes les données actuelles, y compris l'historique des conversations et les paramètres. Assurez-vous d'avoir sauvegardé les données importantes. Les données seront actualisées automatiquement après l'importation.", "importing": "Importation en cours...", "confirmImport": "Confirmer l'importation", "importSuccessTitle": "Importation réussie", diff --git a/src/renderer/src/i18n/fr-FR/sync.json b/src/renderer/src/i18n/fr-FR/sync.json index 07b5fa03d..287a3c2c7 100644 --- a/src/renderer/src/i18n/fr-FR/sync.json +++ b/src/renderer/src/i18n/fr-FR/sync.json @@ -1,6 +1,6 @@ { "success": { - "importComplete": "{count} conversation(s) importée(s) avec succès. Cliquez sur OK pour redémarrer l'application." + "importComplete": "{count} conversation(s) importée(s) avec succès." }, "error": { "notEnabled": "La fonction de synchronisation n'est pas activée", diff --git a/src/renderer/src/i18n/he-IL/settings.json b/src/renderer/src/i18n/he-IL/settings.json index 300cd9c9c..2505a04f7 100644 --- a/src/renderer/src/i18n/he-IL/settings.json +++ b/src/renderer/src/i18n/he-IL/settings.json @@ -80,7 +80,7 @@ "selectBackupPlaceholder": "בחר גיבוי", "noBackupsAvailable": "אין גיבויים זמינים. בצע גיבוי תחילה.", "importConfirmTitle": "אשר ייבוא נתונים", - "importConfirmDescription": "הייבוא ידרוס את כל הנתונים הנוכחיים, כולל היסטוריית צ'אט והגדרות. ודא שגיבית נתונים חשובים. יהיה עליך להפעיל מחדש את האפליקציה לאחר הייבוא.", + "importConfirmDescription": "הייבוא ידרוס את כל הנתונים הנוכחיים, כולל היסטוריית צ'אט והגדרות. ודא שגיבית נתונים חשובים. הנתונים יעודכנו אוטומטית לאחר הייבוא.", "importing": "מייבא...", "confirmImport": "אשר ייבוא", "importSuccessTitle": "הייבוא הושלם בהצלחה", diff --git a/src/renderer/src/i18n/he-IL/sync.json b/src/renderer/src/i18n/he-IL/sync.json index e641785a2..d132ca8bf 100644 --- a/src/renderer/src/i18n/he-IL/sync.json +++ b/src/renderer/src/i18n/he-IL/sync.json @@ -1,6 +1,6 @@ { "success": { - "importComplete": "יובאו בהצלחה {count} שיחות. היישום יופעל מחדש כעת." + "importComplete": "יובאו בהצלחה {count} שיחות." }, "error": { "notEnabled": "הסנכרון אינו מופעל", diff --git a/src/renderer/src/i18n/ja-JP/settings.json b/src/renderer/src/i18n/ja-JP/settings.json index 31ca36c73..c2a598b8e 100644 --- a/src/renderer/src/i18n/ja-JP/settings.json +++ b/src/renderer/src/i18n/ja-JP/settings.json @@ -80,7 +80,7 @@ "selectBackupPlaceholder": "バックアップを選択", "noBackupsAvailable": "利用可能なバックアップがありません。まずバックアップを作成してください。", "importConfirmTitle": "データインポートの確認", - "importConfirmDescription": "インポートすると、チャット履歴や設定を含むすべての現在のデータが上書きされます。重要なデータをバックアップしたことを確認してください。インポート後はアプリケーションを再起動する必要があります。", + "importConfirmDescription": "インポートすると、チャット履歴や設定を含むすべての現在のデータが上書きされます。重要なデータをバックアップしたことを確認してください。インポート後、データは自動的に更新されます。", "importing": "インポート中...", "confirmImport": "インポートを確認", "importSuccessTitle": "インポート成功", diff --git a/src/renderer/src/i18n/ja-JP/sync.json b/src/renderer/src/i18n/ja-JP/sync.json index dd278b1e3..2533100d4 100644 --- a/src/renderer/src/i18n/ja-JP/sync.json +++ b/src/renderer/src/i18n/ja-JP/sync.json @@ -1,6 +1,6 @@ { "success": { - "importComplete": "{count}件の会話をインポートしました。OKをクリックして、アプリケーションを再起動します。" + "importComplete": "{count}件の会話をインポートしました。" }, "error": { "notEnabled": "同期機能が有効になっていません", diff --git a/src/renderer/src/i18n/ko-KR/settings.json b/src/renderer/src/i18n/ko-KR/settings.json index 7aa6ce5bd..76b239bbb 100644 --- a/src/renderer/src/i18n/ko-KR/settings.json +++ b/src/renderer/src/i18n/ko-KR/settings.json @@ -80,7 +80,7 @@ "selectBackupPlaceholder": "백업을 선택하세요", "noBackupsAvailable": "사용 가능한 백업이 없습니다. 먼저 백업을 생성하세요.", "importConfirmTitle": "데이터 가져오기 확인", - "importConfirmDescription": "가져오기를 실행하면 채팅 기록과 설정을 포함한 모든 현재 데이터가 덮어쓰기됩니다. 중요한 데이터를 백업했는지 확인하세요. 가져오기 후에는 애플리케이션을 다시 시작해야 합니다.", + "importConfirmDescription": "가져오기를 실행하면 채팅 기록과 설정을 포함한 모든 현재 데이터가 덮어쓰기됩니다. 중요한 데이터를 백업했는지 확인하세요. 가져오기 후 데이터가 자동으로 새로고침됩니다.", "importing": "가져오는 중...", "confirmImport": "가져오기 확인", "importSuccessTitle": "가져오기 성공", diff --git a/src/renderer/src/i18n/ko-KR/sync.json b/src/renderer/src/i18n/ko-KR/sync.json index 366d84a95..8301eb2cc 100644 --- a/src/renderer/src/i18n/ko-KR/sync.json +++ b/src/renderer/src/i18n/ko-KR/sync.json @@ -1,6 +1,6 @@ { "success": { - "importComplete": "{count}개의 대화를 성공적으로 가져왔습니다. 애플리케이션을 다시 시작하려면 확인을 클릭하세요." + "importComplete": "{count}개의 대화를 성공적으로 가져왔습니다." }, "error": { "notEnabled": "동기화 기능이 활성화되지 않았습니다", diff --git a/src/renderer/src/i18n/pt-BR/settings.json b/src/renderer/src/i18n/pt-BR/settings.json index 034fe7ffd..7c076de05 100644 --- a/src/renderer/src/i18n/pt-BR/settings.json +++ b/src/renderer/src/i18n/pt-BR/settings.json @@ -80,7 +80,7 @@ "selectBackupPlaceholder": "Selecione um backup", "noBackupsAvailable": "Nenhum backup disponível. Execute um backup primeiro.", "importConfirmTitle": "Confirmar Importação de Dados", - "importConfirmDescription": "A importação substituirá todos os dados atuais, incluindo histórico de chat e configurações. Certifique-se de ter feito backup de dados importantes. Você precisará reiniciar o aplicativo após a importação.", + "importConfirmDescription": "A importação substituirá todos os dados atuais, incluindo histórico de chat e configurações. Certifique-se de ter feito backup de dados importantes. Os dados serão atualizados automaticamente após a importação.", "importing": "Importando...", "confirmImport": "Confirmar Importação", "importSuccessTitle": "Importação Bem-sucedida", diff --git a/src/renderer/src/i18n/pt-BR/sync.json b/src/renderer/src/i18n/pt-BR/sync.json index 50f01e576..ae50a73f2 100644 --- a/src/renderer/src/i18n/pt-BR/sync.json +++ b/src/renderer/src/i18n/pt-BR/sync.json @@ -1,6 +1,6 @@ { "success": { - "importComplete": "{count} conversa(s) importada(s) com sucesso. O aplicativo será reiniciado agora." + "importComplete": "{count} conversa(s) importada(s) com sucesso." }, "error": { "notEnabled": "A sincronização não está ativada", diff --git a/src/renderer/src/i18n/ru-RU/settings.json b/src/renderer/src/i18n/ru-RU/settings.json index a0f81b753..ab32835f6 100644 --- a/src/renderer/src/i18n/ru-RU/settings.json +++ b/src/renderer/src/i18n/ru-RU/settings.json @@ -80,7 +80,7 @@ "selectBackupPlaceholder": "Выберите резервную копию", "noBackupsAvailable": "Нет доступных резервных копий. Сначала выполните резервное копирование.", "importConfirmTitle": "Подтверждение импорта данных", - "importConfirmDescription": "Импорт перезапишет все текущие данные, включая историю чатов и настройки. Убедитесь, что вы сделали резервную копию важных данных. После импорта потребуется перезапуск приложения.", + "importConfirmDescription": "Импорт перезапишет все текущие данные, включая историю чатов и настройки. Убедитесь, что вы сделали резервную копию важных данных. Данные будут автоматически обновлены после импорта.", "importing": "Импорт...", "confirmImport": "Подтвердить импорт", "importSuccessTitle": "Импорт успешно завершен", diff --git a/src/renderer/src/i18n/ru-RU/sync.json b/src/renderer/src/i18n/ru-RU/sync.json index b5e006a53..75e5b267b 100644 --- a/src/renderer/src/i18n/ru-RU/sync.json +++ b/src/renderer/src/i18n/ru-RU/sync.json @@ -1,6 +1,6 @@ { "success": { - "importComplete": "Успешно импортировано {count} диалогов. Нажмите OK для перезапуска приложения." + "importComplete": "Успешно импортировано {count} диалогов." }, "error": { "notEnabled": "Функция синхронизации не включена", diff --git a/src/renderer/src/i18n/zh-CN/settings.json b/src/renderer/src/i18n/zh-CN/settings.json index 0ba74312a..b1f7f9e54 100644 --- a/src/renderer/src/i18n/zh-CN/settings.json +++ b/src/renderer/src/i18n/zh-CN/settings.json @@ -80,7 +80,7 @@ "selectBackupPlaceholder": "请选择备份", "noBackupsAvailable": "当前没有可用的备份,请先执行一次备份。", "importConfirmTitle": "确认导入数据", - "importConfirmDescription": "导入将会覆盖当前所有数据,包括聊天记录和设置。请确保已备份重要数据。导入完成后需要重启应用程序。", + "importConfirmDescription": "导入将会覆盖当前所有数据,包括聊天记录和设置。请确保已备份重要数据。导入完成后将自动刷新数据。", "importing": "导入中...", "confirmImport": "确认导入", "importSuccessTitle": "导入成功", diff --git a/src/renderer/src/i18n/zh-CN/sync.json b/src/renderer/src/i18n/zh-CN/sync.json index a015922b0..fee42c165 100644 --- a/src/renderer/src/i18n/zh-CN/sync.json +++ b/src/renderer/src/i18n/zh-CN/sync.json @@ -1,6 +1,6 @@ { "success": { - "importComplete": "成功导入 {count} 个对话,点击确定后将重启应用" + "importComplete": "成功导入 {count} 个对话" }, "error": { "notEnabled": "同步功能未启用", diff --git a/src/renderer/src/i18n/zh-HK/settings.json b/src/renderer/src/i18n/zh-HK/settings.json index 805bd266c..7de2c5b6a 100644 --- a/src/renderer/src/i18n/zh-HK/settings.json +++ b/src/renderer/src/i18n/zh-HK/settings.json @@ -80,7 +80,7 @@ "selectBackupPlaceholder": "請選擇備份", "noBackupsAvailable": "當前沒有可用備份,請先進行備份。", "importConfirmTitle": "確認導入數據", - "importConfirmDescription": "導入將會覆蓋所有當前數據,包括聊天記錄和設置。請確保已備份重要數據。導入後需要重新啟動應用程序。", + "importConfirmDescription": "導入將會覆蓋所有當前數據,包括聊天記錄和設置。請確保已備份重要數據。導入完成後將自動刷新資料。", "importing": "導入中...", "confirmImport": "確認導入", "importSuccessTitle": "導入成功", diff --git a/src/renderer/src/i18n/zh-HK/sync.json b/src/renderer/src/i18n/zh-HK/sync.json index 9b9ec1906..6216179a2 100644 --- a/src/renderer/src/i18n/zh-HK/sync.json +++ b/src/renderer/src/i18n/zh-HK/sync.json @@ -1,6 +1,6 @@ { "success": { - "importComplete": "成功導入 {count} 個對話,點擊確定後將重新啟動應用" + "importComplete": "成功導入 {count} 個對話" }, "error": { "notEnabled": "同步功能未啟用", diff --git a/src/renderer/src/i18n/zh-TW/settings.json b/src/renderer/src/i18n/zh-TW/settings.json index c6cb16423..1211d9e98 100644 --- a/src/renderer/src/i18n/zh-TW/settings.json +++ b/src/renderer/src/i18n/zh-TW/settings.json @@ -80,7 +80,7 @@ "selectBackupPlaceholder": "請選擇備份", "noBackupsAvailable": "目前沒有可用備份,請先建立備份。", "importConfirmTitle": "確認匯入資料", - "importConfirmDescription": "匯入將會覆蓋目前所有資料,包括聊天記錄和設定。請確保已備份重要資料。匯入完成後需要重新啟動應用程式。", + "importConfirmDescription": "匯入將會覆蓋目前所有資料,包括聊天記錄和設定。請確保已備份重要資料。匯入完成後將自動刷新資料。", "importing": "匯入中...", "confirmImport": "確認匯入", "importSuccessTitle": "匯入成功", diff --git a/src/renderer/src/i18n/zh-TW/sync.json b/src/renderer/src/i18n/zh-TW/sync.json index 89f0d4ee9..3c26ac3f4 100644 --- a/src/renderer/src/i18n/zh-TW/sync.json +++ b/src/renderer/src/i18n/zh-TW/sync.json @@ -1,6 +1,6 @@ { "success": { - "importComplete": "成功匯入 {count} 個對話,點選「確定」後將重新啟動應用程式" + "importComplete": "成功匯入 {count} 個對話" }, "error": { "notEnabled": "同步功能未啟用", diff --git a/src/renderer/src/stores/sync.ts b/src/renderer/src/stores/sync.ts index b6fb70c49..2df59d134 100644 --- a/src/renderer/src/stores/sync.ts +++ b/src/renderer/src/stores/sync.ts @@ -85,7 +85,7 @@ export const useSyncStore = defineStore('sync', () => { message: string count?: number } - importResult.value = result + importResult.value = result.success ? null : result return result } catch (error) { console.error('import failed:', error) diff --git a/src/shared/types/presenters/legacy.presenters.d.ts b/src/shared/types/presenters/legacy.presenters.d.ts index bc062b8b2..34b85d427 100644 --- a/src/shared/types/presenters/legacy.presenters.d.ts +++ b/src/shared/types/presenters/legacy.presenters.d.ts @@ -281,6 +281,7 @@ export interface IShortcutPresenter { export interface ISQLitePresenter { close(): void + reopen(): void createConversation(title: string, settings?: Partial): Promise deleteConversation(conversationId: string): Promise renameConversation(conversationId: string, title: string): Promise diff --git a/test/main/presenter/SyncPresenter.test.ts b/test/main/presenter/SyncPresenter.test.ts index a9d7cb700..022269838 100644 --- a/test/main/presenter/SyncPresenter.test.ts +++ b/test/main/presenter/SyncPresenter.test.ts @@ -48,7 +48,8 @@ describe('SyncPresenter backup import', () => { }) sqlitePresenter = { - close: vi.fn() + close: vi.fn(), + reopen: vi.fn() } configPresenter = { @@ -121,6 +122,7 @@ describe('SyncPresenter backup import', () => { expect(result.success).toBe(true) expect(result.count).toBe(1) expect(sqlitePresenter.close).toHaveBeenCalled() + expect(sqlitePresenter.reopen).toHaveBeenCalled() const dbPath = path.join(userDataDir, 'app_db', 'chat.db') const db = new Database(dbPath) @@ -211,6 +213,7 @@ describe('SyncPresenter backup import', () => { expect(result.success).toBe(true) expect(result.count).toBe(1) + expect(sqlitePresenter.reopen).toHaveBeenCalled() const dbPath = path.join(userDataDir, 'app_db', 'chat.db') const db = new Database(dbPath)