diff --git a/package.json b/package.json index 7a3a33a52..59ffe09d0 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ }, "packageManager": "pnpm@10.13.1+sha512.37ebf1a5c7a30d5fabe0c5df44ee8da4c965ca0c5af3dbab28c3a1681b70a256218d05c81c9c0dcf767ef6b8551eb5b960042b9ed4300c59242336377e01cfad", "scripts": { + "prebuild": "node scripts/fetch-provider-db.mjs", "preinstall": "npx only-allow pnpm", "test": "vitest", "test:main": "vitest --config vitest.config.ts test/main", diff --git a/resources/model-db/.gitkeep b/resources/model-db/.gitkeep new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/resources/model-db/.gitkeep @@ -0,0 +1 @@ + diff --git a/resources/model-db/providers.json b/resources/model-db/providers.json new file mode 100644 index 000000000..dfe341755 --- /dev/null +++ b/resources/model-db/providers.json @@ -0,0 +1,22153 @@ +{ + "providers": { + "moonshotai-cn": { + "id": "moonshotai-cn", + "name": "Moonshot AI (China)", + "display_name": "Moonshot AI (China)", + "api": "https://api.moonshot.cn/v1", + "doc": "https://platform.moonshot.cn/docs/api/chat", + "models": [ + { + "id": "kimi-k2-0905-preview", + "name": "Kimi K2 0905", + "display_name": "Kimi K2 0905", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-09-05", + "last_updated": "2025-09-05", + "cost": { + "input": 0.6, + "output": 2.5, + "cache_read": 0.15 + } + }, + { + "id": "kimi-k2-0711-preview", + "name": "Kimi K2 0711", + "display_name": "Kimi K2 0711", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-07-14", + "last_updated": "2025-07-14", + "cost": { + "input": 0.6, + "output": 2.5, + "cache_read": 0.15 + } + }, + { + "id": "kimi-k2-turbo-preview", + "name": "Kimi K2 Turbo", + "display_name": "Kimi K2 Turbo", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-09-05", + "last_updated": "2025-09-05", + "cost": { + "input": 2.4, + "output": 10, + "cache_read": 0.6 + } + } + ] + }, + "lucidquery": { + "id": "lucidquery", + "name": "LucidQuery AI", + "display_name": "LucidQuery AI", + "api": "https://lucidquery.com/api/v1", + "doc": "https://lucidquery.com/api/docs", + "models": [ + { + "id": "lucidquery-nexus-coder", + "name": "LucidQuery Nexus Coder", + "display_name": "LucidQuery Nexus Coder", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 250000, + "output": 60000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-08-01", + "release_date": "2025-09-01", + "last_updated": "2025-09-01", + "cost": { + "input": 2, + "output": 5 + } + }, + { + "id": "lucidnova-rf1-100b", + "name": "LucidNova RF1 100B", + "display_name": "LucidNova RF1 100B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 120000, + "output": 8000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-09-16", + "release_date": "2024-12-28", + "last_updated": "2025-09-10", + "cost": { + "input": 2, + "output": 5 + } + } + ] + }, + "moonshotai": { + "id": "moonshotai", + "name": "Moonshot AI", + "display_name": "Moonshot AI", + "api": "https://api.moonshot.ai/v1", + "doc": "https://platform.moonshot.ai/docs/api/chat", + "models": [ + { + "id": "kimi-k2-turbo-preview", + "name": "Kimi K2 Turbo", + "display_name": "Kimi K2 Turbo", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-09-05", + "last_updated": "2025-09-05", + "cost": { + "input": 2.4, + "output": 10, + "cache_read": 0.6 + } + }, + { + "id": "kimi-k2-0711-preview", + "name": "Kimi K2 0711", + "display_name": "Kimi K2 0711", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-07-14", + "last_updated": "2025-07-14", + "cost": { + "input": 0.6, + "output": 2.5, + "cache_read": 0.15 + } + }, + { + "id": "kimi-k2-0905-preview", + "name": "Kimi K2 0905", + "display_name": "Kimi K2 0905", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-09-05", + "last_updated": "2025-09-05", + "cost": { + "input": 0.6, + "output": 2.5, + "cache_read": 0.15 + } + } + ] + }, + "zai-coding-plan": { + "id": "zai-coding-plan", + "name": "Z.AI Coding Plan", + "display_name": "Z.AI Coding Plan", + "api": "https://api.z.ai/api/coding/paas/v4", + "doc": "https://docs.z.ai/devpack/overview", + "models": [ + { + "id": "glm-4.5-flash", + "name": "GLM-4.5-Flash", + "display_name": "GLM-4.5-Flash", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 98304 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + } + }, + { + "id": "glm-4.5", + "name": "GLM-4.5", + "display_name": "GLM-4.5", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 98304 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + } + }, + { + "id": "glm-4.5-air", + "name": "GLM-4.5-Air", + "display_name": "GLM-4.5-Air", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 98304 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + } + }, + { + "id": "glm-4.5v", + "name": "GLM 4.5V", + "display_name": "GLM 4.5V", + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 64000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-08-11", + "last_updated": "2025-08-11", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "glm-4.6", + "name": "GLM-4.6", + "display_name": "GLM-4.6", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 204800, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-09-30", + "last_updated": "2025-09-30", + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + } + } + ] + }, + "alibaba": { + "id": "alibaba", + "name": "Alibaba", + "display_name": "Alibaba", + "api": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1", + "doc": "https://www.alibabacloud.com/help/en/model-studio/models", + "models": [ + { + "id": "qwen3-coder-plus", + "name": "Qwen3 Coder Plus", + "display_name": "Qwen3 Coder Plus", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", + "cost": { + "input": 1, + "output": 5 + } + } + ] + }, + "xai": { + "id": "xai", + "name": "xAI", + "display_name": "xAI", + "doc": "https://docs.x.ai/docs/models", + "models": [ + { + "id": "grok-4-fast-non-reasoning", + "name": "Grok 4 Fast (Non-Reasoning)", + "display_name": "Grok 4 Fast (Non-Reasoning)", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 2000000, + "output": 30000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-09-19", + "last_updated": "2025-09-19", + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 + } + }, + { + "id": "grok-3-fast", + "name": "Grok 3 Fast", + "display_name": "Grok 3 Fast", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", + "cost": { + "input": 5, + "output": 25, + "cache_read": 1.25 + } + }, + { + "id": "grok-4", + "name": "Grok 4", + "display_name": "Grok 4", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-07-09", + "last_updated": "2025-07-09", + "cost": { + "input": 3, + "output": 15, + "reasoning": 15, + "cache_read": 0.75 + } + }, + { + "id": "grok-2-vision", + "name": "Grok 2 Vision", + "display_name": "Grok 2 Vision", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-08", + "release_date": "2024-08-20", + "last_updated": "2024-08-20", + "cost": { + "input": 2, + "output": 10, + "cache_read": 2 + } + }, + { + "id": "grok-code-fast-1", + "name": "Grok Code Fast 1", + "display_name": "Grok Code Fast 1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 10000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2023-10", + "release_date": "2025-08-28", + "last_updated": "2025-08-28", + "cost": { + "input": 0.2, + "output": 1.5, + "cache_read": 0.02 + } + }, + { + "id": "grok-2", + "name": "Grok 2", + "display_name": "Grok 2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-08", + "release_date": "2024-08-20", + "last_updated": "2024-08-20", + "cost": { + "input": 2, + "output": 10, + "cache_read": 2 + } + }, + { + "id": "grok-3-mini-fast-latest", + "name": "Grok 3 Mini Fast Latest", + "display_name": "Grok 3 Mini Fast Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", + "cost": { + "input": 0.6, + "output": 4, + "reasoning": 4, + "cache_read": 0.15 + } + }, + { + "id": "grok-2-vision-1212", + "name": "Grok 2 Vision (1212)", + "display_name": "Grok 2 Vision (1212)", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-08", + "release_date": "2024-08-20", + "last_updated": "2024-12-12", + "cost": { + "input": 2, + "output": 10, + "cache_read": 2 + } + }, + { + "id": "grok-3", + "name": "Grok 3", + "display_name": "Grok 3", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.75 + } + }, + { + "id": "grok-4-fast", + "name": "Grok 4 Fast", + "display_name": "Grok 4 Fast", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 2000000, + "output": 30000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-09-19", + "last_updated": "2025-09-19", + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 + } + }, + { + "id": "grok-2-latest", + "name": "Grok 2 Latest", + "display_name": "Grok 2 Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-08", + "release_date": "2024-08-20", + "last_updated": "2024-12-12", + "cost": { + "input": 2, + "output": 10, + "cache_read": 2 + } + }, + { + "id": "grok-2-1212", + "name": "Grok 2 (1212)", + "display_name": "Grok 2 (1212)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-08", + "release_date": "2024-12-12", + "last_updated": "2024-12-12", + "cost": { + "input": 2, + "output": 10, + "cache_read": 2 + } + }, + { + "id": "grok-3-fast-latest", + "name": "Grok 3 Fast Latest", + "display_name": "Grok 3 Fast Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", + "cost": { + "input": 5, + "output": 25, + "cache_read": 1.25 + } + }, + { + "id": "grok-3-latest", + "name": "Grok 3 Latest", + "display_name": "Grok 3 Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.75 + } + }, + { + "id": "grok-2-vision-latest", + "name": "Grok 2 Vision Latest", + "display_name": "Grok 2 Vision Latest", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-08", + "release_date": "2024-08-20", + "last_updated": "2024-12-12", + "cost": { + "input": 2, + "output": 10, + "cache_read": 2 + } + }, + { + "id": "grok-vision-beta", + "name": "Grok Vision Beta", + "display_name": "Grok Vision Beta", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-08", + "release_date": "2024-11-01", + "last_updated": "2024-11-01", + "cost": { + "input": 5, + "output": 15, + "cache_read": 5 + } + }, + { + "id": "grok-3-mini", + "name": "Grok 3 Mini", + "display_name": "Grok 3 Mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", + "cost": { + "input": 0.3, + "output": 0.5, + "reasoning": 0.5, + "cache_read": 0.075 + } + }, + { + "id": "grok-beta", + "name": "Grok Beta", + "display_name": "Grok Beta", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-08", + "release_date": "2024-11-01", + "last_updated": "2024-11-01", + "cost": { + "input": 5, + "output": 15, + "cache_read": 5 + } + }, + { + "id": "grok-3-mini-latest", + "name": "Grok 3 Mini Latest", + "display_name": "Grok 3 Mini Latest", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", + "cost": { + "input": 0.3, + "output": 0.5, + "reasoning": 0.5, + "cache_read": 0.075 + } + }, + { + "id": "grok-3-mini-fast", + "name": "Grok 3 Mini Fast", + "display_name": "Grok 3 Mini Fast", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", + "cost": { + "input": 0.6, + "output": 4, + "reasoning": 4, + "cache_read": 0.15 + } + } + ] + }, + "nvidia": { + "id": "nvidia", + "name": "Nvidia", + "display_name": "Nvidia", + "api": "https://integrate.api.nvidia.com/v1", + "doc": "https://docs.api.nvidia.com/nim/", + "models": [ + { + "id": "moonshotai/kimi-k2-instruct", + "name": "Kimi K2 Instruct", + "display_name": "Kimi K2 Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-01", + "release_date": "2025-01-01", + "last_updated": "2025-09-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "nvidia/cosmos-nemotron-34b", + "name": "Cosmos Nemotron 34B", + "display_name": "Cosmos Nemotron 34B", + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-01", + "release_date": "2024-01-01", + "last_updated": "2025-09-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "nvidia/parakeet-tdt-0.6b-v2", + "name": "Parakeet TDT 0.6B v2", + "display_name": "Parakeet TDT 0.6B v2", + "modalities": { + "input": [ + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 0, + "output": 4096 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-01", + "release_date": "2024-01-01", + "last_updated": "2025-09-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "nvidia/nemoretriever-ocr-v1", + "name": "NeMo Retriever OCR v1", + "display_name": "NeMo Retriever OCR v1", + "modalities": { + "input": [ + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 0, + "output": 4096 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-01", + "release_date": "2024-01-01", + "last_updated": "2025-09-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "nvidia/llama-3.1-nemotron-ultra-253b-v1", + "name": "Llama-3.1-Nemotron-Ultra-253B-v1", + "display_name": "Llama-3.1-Nemotron-Ultra-253B-v1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-07", + "release_date": "2024-07-01", + "last_updated": "2025-09-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "google/gemma-3-27b-it", + "name": "Gemma-3-27B-IT", + "display_name": "Gemma-3-27B-IT", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-12", + "release_date": "2024-12-01", + "last_updated": "2025-09-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-4-mini-instruct", + "name": "Phi-4-Mini", + "display_name": "Phi-4-Mini", + "modalities": { + "input": [ + "text", + "image", + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-12", + "release_date": "2024-12-01", + "last_updated": "2025-09-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openai/whisper-large-v3", + "name": "Whisper Large v3", + "display_name": "Whisper Large v3", + "modalities": { + "input": [ + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 0, + "output": 4096 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-09", + "release_date": "2023-09-01", + "last_updated": "2025-09-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openai/gpt-oss-120b", + "name": "GPT-OSS-120B", + "display_name": "GPT-OSS-120B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-01", + "release_date": "2024-01-01", + "last_updated": "2025-09-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen/qwen3-235b-a22b", + "name": "Qwen3-235B-A22B", + "display_name": "Qwen3-235B-A22B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-12", + "release_date": "2024-12-01", + "last_updated": "2025-09-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen/qwen3-coder-480b-a35b-instruct", + "name": "Qwen3 Coder 480B A35B Instruct", + "display_name": "Qwen3 Coder 480B A35B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 66536 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "deepseek-ai/deepseek-v3.1", + "name": "DeepSeek V3.1", + "display_name": "DeepSeek V3.1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-07", + "release_date": "2025-08-20", + "last_updated": "2025-08-26", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "black-forest-labs/flux.1-dev", + "name": "FLUX.1-dev", + "display_name": "FLUX.1-dev", + "modalities": { + "input": [ + "text" + ], + "output": [ + "image" + ] + }, + "limit": { + "context": 4096, + "output": 0 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-08", + "release_date": "2024-08-01", + "last_updated": "2025-09-05", + "cost": { + "input": 0, + "output": 0 + } + } + ] + }, + "upstage": { + "id": "upstage", + "name": "Upstage", + "display_name": "Upstage", + "api": "https://api.upstage.ai", + "doc": "https://developers.upstage.ai/docs/apis/chat", + "models": [ + { + "id": "solar-mini", + "name": "solar-mini", + "display_name": "solar-mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-09", + "release_date": "2024-06-12", + "last_updated": "2025-04-22", + "cost": { + "input": 0.15, + "output": 0.15 + } + }, + { + "id": "solar-pro2", + "name": "solar-pro2", + "display_name": "solar-pro2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 65536, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2025-03", + "release_date": "2025-05-20", + "last_updated": "2025-05-20", + "cost": { + "input": 0.25, + "output": 0.25 + } + } + ] + }, + "groq": { + "id": "groq", + "name": "Groq", + "display_name": "Groq", + "doc": "https://console.groq.com/docs/models", + "models": [ + { + "id": "llama-3.1-8b-instant", + "name": "Llama 3.1 8B Instant", + "display_name": "Llama 3.1 8B Instant", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", + "cost": { + "input": 0.05, + "output": 0.08 + } + }, + { + "id": "mistral-saba-24b", + "name": "Mistral Saba 24B", + "display_name": "Mistral Saba 24B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-08", + "release_date": "2025-02-06", + "last_updated": "2025-02-06", + "cost": { + "input": 0.79, + "output": 0.79 + } + }, + { + "id": "llama3-8b-8192", + "name": "Llama 3 8B", + "display_name": "Llama 3 8B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-03", + "release_date": "2024-04-18", + "last_updated": "2024-04-18", + "cost": { + "input": 0.05, + "output": 0.08 + } + }, + { + "id": "qwen-qwq-32b", + "name": "Qwen QwQ 32B", + "display_name": "Qwen QwQ 32B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-09", + "release_date": "2024-11-27", + "last_updated": "2024-11-27", + "cost": { + "input": 0.29, + "output": 0.39 + } + }, + { + "id": "llama3-70b-8192", + "name": "Llama 3 70B", + "display_name": "Llama 3 70B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-03", + "release_date": "2024-04-18", + "last_updated": "2024-04-18", + "cost": { + "input": 0.59, + "output": 0.79 + } + }, + { + "id": "deepseek-r1-distill-llama-70b", + "name": "DeepSeek R1 Distill Llama 70B", + "display_name": "DeepSeek R1 Distill Llama 70B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", + "cost": { + "input": 0.75, + "output": 0.99 + } + }, + { + "id": "llama-guard-3-8b", + "name": "Llama Guard 3 8B", + "display_name": "Llama Guard 3 8B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-07-23", + "last_updated": "2024-07-23", + "cost": { + "input": 0.2, + "output": 0.2 + } + }, + { + "id": "gemma2-9b-it", + "name": "Gemma 2 9B", + "display_name": "Gemma 2 9B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-06", + "release_date": "2024-06-27", + "last_updated": "2024-06-27", + "cost": { + "input": 0.2, + "output": 0.2 + } + }, + { + "id": "llama-3.3-70b-versatile", + "name": "Llama 3.3 70B Versatile", + "display_name": "Llama 3.3 70B Versatile", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", + "cost": { + "input": 0.59, + "output": 0.79 + } + }, + { + "id": "moonshotai/kimi-k2-instruct-0905", + "name": "Kimi K2 Instruct 0905", + "display_name": "Kimi K2 Instruct 0905", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-09-05", + "last_updated": "2025-09-05", + "cost": { + "input": 1, + "output": 3 + } + }, + { + "id": "moonshotai/kimi-k2-instruct", + "name": "Kimi K2 Instruct", + "display_name": "Kimi K2 Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-07-14", + "last_updated": "2025-07-14", + "cost": { + "input": 1, + "output": 3 + } + }, + { + "id": "openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "display_name": "GPT OSS 20B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 0.1, + "output": 0.5 + } + }, + { + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 0.15, + "output": 0.75 + } + }, + { + "id": "qwen/qwen3-32b", + "name": "Qwen3 32B", + "display_name": "Qwen3 32B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-11-08", + "release_date": "2024-12-23", + "last_updated": "2024-12-23", + "cost": { + "input": 0.29, + "output": 0.59 + } + }, + { + "id": "meta-llama/llama-4-scout-17b-16e-instruct", + "name": "Llama 4 Scout 17B", + "display_name": "Llama 4 Scout 17B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0.11, + "output": 0.34 + } + }, + { + "id": "meta-llama/llama-4-maverick-17b-128e-instruct", + "name": "Llama 4 Maverick 17B", + "display_name": "Llama 4 Maverick 17B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0.2, + "output": 0.6 + } + }, + { + "id": "meta-llama/llama-guard-4-12b", + "name": "Llama Guard 4 12B", + "display_name": "Llama Guard 4 12B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 128 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0.2, + "output": 0.2 + } + } + ] + }, + "github-copilot": { + "id": "github-copilot", + "name": "GitHub Copilot", + "display_name": "GitHub Copilot", + "api": "https://api.githubcopilot.com", + "doc": "https://docs.github.com/en/copilot", + "models": [ + { + "id": "gemini-2.0-flash-001", + "name": "Gemini 2.0 Flash", + "display_name": "Gemini 2.0 Flash", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1000000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-06", + "release_date": "2024-12-11", + "last_updated": "2024-12-11" + }, + { + "id": "claude-opus-4", + "name": "Claude Opus 4", + "display_name": "Claude Opus 4", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 80000, + "output": 16000 + }, + "temperature": false, + "tool_call": false, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22" + }, + { + "id": "grok-code-fast-1", + "name": "Grok Code Fast 1", + "display_name": "Grok Code Fast 1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 10000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2025-08", + "release_date": "2025-08-27", + "last_updated": "2025-08-27" + }, + { + "id": "claude-3.5-sonnet", + "name": "Claude Sonnet 3.5", + "display_name": "Claude Sonnet 3.5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 90000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2024-10-22", + "last_updated": "2024-10-22" + }, + { + "id": "o3-mini", + "name": "o3-mini", + "display_name": "o3-mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 65536 + }, + "temperature": false, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-12-20", + "last_updated": "2025-01-29" + }, + { + "id": "gpt-5-codex", + "name": "GPT-5-Codex", + "display_name": "GPT-5-Codex", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 64000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-09-15", + "last_updated": "2025-09-15" + }, + { + "id": "gpt-4o", + "name": "GPT-4o", + "display_name": "GPT-4o", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-05-13", + "last_updated": "2024-05-13" + }, + { + "id": "gpt-4.1", + "name": "GPT-4.1", + "display_name": "GPT-4.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14" + }, + { + "id": "o4-mini", + "name": "o4-mini (Preview)", + "display_name": "o4-mini (Preview)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 65536 + }, + "temperature": false, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2025-04-16", + "last_updated": "2025-04-16" + }, + { + "id": "claude-opus-41", + "name": "Claude Opus 4.1", + "display_name": "Claude Opus 4.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 80000, + "output": 16000 + }, + "temperature": true, + "tool_call": false, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-08-05", + "last_updated": "2025-08-05" + }, + { + "id": "gpt-5-mini", + "name": "GPT-5-mini", + "display_name": "GPT-5-mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-06", + "release_date": "2025-08-13", + "last_updated": "2025-08-13" + }, + { + "id": "claude-3.7-sonnet", + "name": "Claude Sonnet 3.7", + "display_name": "Claude Sonnet 3.7", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-02-19", + "last_updated": "2025-02-19" + }, + { + "id": "gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "display_name": "Gemini 2.5 Pro", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-03-20", + "last_updated": "2025-06-05" + }, + { + "id": "o3", + "name": "o3 (Preview)", + "display_name": "o3 (Preview)", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16" + }, + { + "id": "claude-sonnet-4", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22" + }, + { + "id": "gpt-5", + "name": "GPT-5", + "display_name": "GPT-5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2025-08-07", + "last_updated": "2025-08-07" + }, + { + "id": "claude-3.7-sonnet-thought", + "name": "Claude Sonnet 3.7 Thinking", + "display_name": "Claude Sonnet 3.7 Thinking", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-02-19", + "last_updated": "2025-02-19" + }, + { + "id": "claude-sonnet-4.5", + "name": "Claude Sonnet 4.5 (Preview)", + "display_name": "Claude Sonnet 4.5 (Preview)", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29" + } + ] + }, + "mistral": { + "id": "mistral", + "name": "Mistral", + "display_name": "Mistral", + "doc": "https://docs.mistral.ai/getting-started/models/", + "models": [ + { + "id": "devstral-medium-2507", + "name": "Devstral Medium", + "display_name": "Devstral Medium", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-07-10", + "last_updated": "2025-07-10", + "cost": { + "input": 0.4, + "output": 2 + } + }, + { + "id": "open-mixtral-8x22b", + "name": "Mixtral 8x22B", + "display_name": "Mixtral 8x22B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 64000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2024-04-17", + "last_updated": "2024-04-17", + "cost": { + "input": 2, + "output": 6 + } + }, + { + "id": "ministral-8b-latest", + "name": "Ministral 8B", + "display_name": "Ministral 8B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2024-10-01", + "last_updated": "2024-10-04", + "cost": { + "input": 0.1, + "output": 0.1 + } + }, + { + "id": "pixtral-large-latest", + "name": "Pixtral Large", + "display_name": "Pixtral Large", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-11", + "release_date": "2024-11-01", + "last_updated": "2024-11-04", + "cost": { + "input": 2, + "output": 6 + } + }, + { + "id": "ministral-3b-latest", + "name": "Ministral 3B", + "display_name": "Ministral 3B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2024-10-01", + "last_updated": "2024-10-04", + "cost": { + "input": 0.04, + "output": 0.04 + } + }, + { + "id": "pixtral-12b", + "name": "Pixtral 12B", + "display_name": "Pixtral 12B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-09", + "release_date": "2024-09-01", + "last_updated": "2024-09-01", + "cost": { + "input": 0.15, + "output": 0.15 + } + }, + { + "id": "mistral-medium-2505", + "name": "Mistral Medium 3", + "display_name": "Mistral Medium 3", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2025-05", + "release_date": "2025-05-07", + "last_updated": "2025-05-07", + "cost": { + "input": 0.4, + "output": 2 + } + }, + { + "id": "devstral-small-2505", + "name": "Devstral Small 2505", + "display_name": "Devstral Small 2505", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-05-07", + "last_updated": "2025-05-07", + "cost": { + "input": 0.1, + "output": 0.3 + } + }, + { + "id": "mistral-medium-2508", + "name": "Mistral Medium 3.1", + "display_name": "Mistral Medium 3.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2025-05", + "release_date": "2025-08-12", + "last_updated": "2025-08-12", + "cost": { + "input": 0.4, + "output": 2 + } + }, + { + "id": "mistral-small-latest", + "name": "Mistral Small", + "display_name": "Mistral Small", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-03", + "release_date": "2024-09-01", + "last_updated": "2024-09-04", + "cost": { + "input": 0.1, + "output": 0.3 + } + }, + { + "id": "magistral-small", + "name": "Magistral Small", + "display_name": "Magistral Small", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-06", + "release_date": "2025-03-17", + "last_updated": "2025-03-17", + "cost": { + "input": 0.5, + "output": 1.5 + } + }, + { + "id": "devstral-small-2507", + "name": "Devstral Small", + "display_name": "Devstral Small", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-07-10", + "last_updated": "2025-07-10", + "cost": { + "input": 0.1, + "output": 0.3 + } + }, + { + "id": "codestral-latest", + "name": "Codestral", + "display_name": "Codestral", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2024-05-29", + "last_updated": "2025-01-04", + "cost": { + "input": 0.3, + "output": 0.9 + } + }, + { + "id": "open-mixtral-8x7b", + "name": "Mixtral 8x7B", + "display_name": "Mixtral 8x7B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-01", + "release_date": "2023-12-11", + "last_updated": "2023-12-11", + "cost": { + "input": 0.7, + "output": 0.7 + } + }, + { + "id": "mistral-nemo", + "name": "Mistral Nemo", + "display_name": "Mistral Nemo", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2024-07-01", + "last_updated": "2024-07-01", + "cost": { + "input": 0.15, + "output": 0.15 + } + }, + { + "id": "open-mistral-7b", + "name": "Mistral 7B", + "display_name": "Mistral 7B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8000, + "output": 8000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2023-09-27", + "last_updated": "2023-09-27", + "cost": { + "input": 0.25, + "output": 0.25 + } + }, + { + "id": "mistral-large-latest", + "name": "Mistral Large", + "display_name": "Mistral Large", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-11", + "release_date": "2024-11-01", + "last_updated": "2024-11-04", + "cost": { + "input": 2, + "output": 6 + } + }, + { + "id": "mistral-medium-latest", + "name": "Mistral Medium", + "display_name": "Mistral Medium", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-05-07", + "last_updated": "2025-05-10", + "cost": { + "input": 0.4, + "output": 2 + } + }, + { + "id": "magistral-medium-latest", + "name": "Magistral Medium", + "display_name": "Magistral Medium", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-06", + "release_date": "2025-03-17", + "last_updated": "2025-03-20", + "cost": { + "input": 2, + "output": 5 + } + } + ] + }, + "vercel": { + "id": "vercel", + "name": "Vercel AI Gateway", + "display_name": "Vercel AI Gateway", + "doc": "https://github.com/vercel/ai/tree/5eb85cc45a259553501f535b8ac79a77d0e79223/packages/gateway", + "models": [ + { + "id": "moonshotai/kimi-k2", + "name": "Kimi K2 Instruct", + "display_name": "Kimi K2 Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-07-14", + "last_updated": "2025-07-14", + "cost": { + "input": 1, + "output": 3 + } + }, + { + "id": "xai/grok-3-mini-fast", + "name": "Grok 3 Mini Fast", + "display_name": "Grok 3 Mini Fast", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", + "cost": { + "input": 0.6, + "output": 4, + "reasoning": 4, + "cache_read": 0.15 + } + }, + { + "id": "xai/grok-3-mini", + "name": "Grok 3 Mini", + "display_name": "Grok 3 Mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", + "cost": { + "input": 0.3, + "output": 0.5, + "reasoning": 0.5, + "cache_read": 0.075 + } + }, + { + "id": "xai/grok-4-fast", + "name": "Grok 4 Fast", + "display_name": "Grok 4 Fast", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 2000000, + "output": 30000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-09-19", + "last_updated": "2025-09-19", + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 + } + }, + { + "id": "xai/grok-3", + "name": "Grok 3", + "display_name": "Grok 3", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.75 + } + }, + { + "id": "xai/grok-2", + "name": "Grok 2", + "display_name": "Grok 2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-08", + "release_date": "2024-08-20", + "last_updated": "2024-08-20", + "cost": { + "input": 2, + "output": 10, + "cache_read": 2 + } + }, + { + "id": "xai/grok-code-fast-1", + "name": "Grok Code Fast 1", + "display_name": "Grok Code Fast 1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 10000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2023-10", + "release_date": "2025-08-28", + "last_updated": "2025-08-28", + "cost": { + "input": 0.2, + "output": 1.5, + "cache_read": 0.02 + } + }, + { + "id": "xai/grok-2-vision", + "name": "Grok 2 Vision", + "display_name": "Grok 2 Vision", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-08", + "release_date": "2024-08-20", + "last_updated": "2024-08-20", + "cost": { + "input": 2, + "output": 10, + "cache_read": 2 + } + }, + { + "id": "xai/grok-4", + "name": "Grok 4", + "display_name": "Grok 4", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-07-09", + "last_updated": "2025-07-09", + "cost": { + "input": 3, + "output": 15, + "reasoning": 15, + "cache_read": 0.75 + } + }, + { + "id": "xai/grok-3-fast", + "name": "Grok 3 Fast", + "display_name": "Grok 3 Fast", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", + "cost": { + "input": 5, + "output": 25, + "cache_read": 1.25 + } + }, + { + "id": "xai/grok-4-fast-non-reasoning", + "name": "Grok 4 Fast (Non-Reasoning)", + "display_name": "Grok 4 Fast (Non-Reasoning)", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 2000000, + "output": 30000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-09-19", + "last_updated": "2025-09-19", + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05 + } + }, + { + "id": "mistral/codestral", + "name": "Codestral", + "display_name": "Codestral", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2024-05-29", + "last_updated": "2025-01-04", + "cost": { + "input": 0.3, + "output": 0.9 + } + }, + { + "id": "mistral/magistral-medium", + "name": "Magistral Medium", + "display_name": "Magistral Medium", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-06", + "release_date": "2025-03-17", + "last_updated": "2025-03-20", + "cost": { + "input": 2, + "output": 5 + } + }, + { + "id": "mistral/mistral-large", + "name": "Mistral Large", + "display_name": "Mistral Large", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-11", + "release_date": "2024-11-01", + "last_updated": "2024-11-04", + "cost": { + "input": 2, + "output": 6 + } + }, + { + "id": "mistral/pixtral-large", + "name": "Pixtral Large", + "display_name": "Pixtral Large", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-11", + "release_date": "2024-11-01", + "last_updated": "2024-11-04", + "cost": { + "input": 2, + "output": 6 + } + }, + { + "id": "mistral/ministral-8b", + "name": "Ministral 8B", + "display_name": "Ministral 8B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2024-10-01", + "last_updated": "2024-10-04", + "cost": { + "input": 0.1, + "output": 0.1 + } + }, + { + "id": "mistral/ministral-3b", + "name": "Ministral 3B", + "display_name": "Ministral 3B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2024-10-01", + "last_updated": "2024-10-04", + "cost": { + "input": 0.04, + "output": 0.04 + } + }, + { + "id": "mistral/magistral-small", + "name": "Magistral Small", + "display_name": "Magistral Small", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-06", + "release_date": "2025-03-17", + "last_updated": "2025-03-17", + "cost": { + "input": 0.5, + "output": 1.5 + } + }, + { + "id": "mistral/mistral-small", + "name": "Mistral Small", + "display_name": "Mistral Small", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-03", + "release_date": "2024-09-01", + "last_updated": "2024-09-04", + "cost": { + "input": 0.1, + "output": 0.3 + } + }, + { + "id": "mistral/pixtral-12b", + "name": "Pixtral 12B", + "display_name": "Pixtral 12B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-09", + "release_date": "2024-09-01", + "last_updated": "2024-09-01", + "cost": { + "input": 0.15, + "output": 0.15 + } + }, + { + "id": "mistral/mixtral-8x22b-instruct", + "name": "Mixtral 8x22B", + "display_name": "Mixtral 8x22B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 64000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2024-04-17", + "last_updated": "2024-04-17", + "cost": { + "input": 2, + "output": 6 + } + }, + { + "id": "vercel/v0-1.0-md", + "name": "v0-1.0-md", + "display_name": "v0-1.0-md", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 3, + "output": 15 + } + }, + { + "id": "vercel/v0-1.5-md", + "name": "v0-1.5-md", + "display_name": "v0-1.5-md", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "release_date": "2025-06-09", + "last_updated": "2025-06-09", + "cost": { + "input": 3, + "output": 15 + } + }, + { + "id": "deepseek/deepseek-r1-distill-llama-70b", + "name": "DeepSeek R1 Distill Llama 70B", + "display_name": "DeepSeek R1 Distill Llama 70B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", + "cost": { + "input": 0.75, + "output": 0.99 + } + }, + { + "id": "deepseek/deepseek-r1", + "name": "DeepSeek-R1", + "display_name": "DeepSeek-R1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-07", + "release_date": "2025-01-20", + "last_updated": "2025-05-29", + "cost": { + "input": 1.35, + "output": 5.4 + } + }, + { + "id": "google/gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "display_name": "Gemini 2.5 Pro", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-03-20", + "last_updated": "2025-06-05", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + } + }, + { + "id": "google/gemini-2.0-flash", + "name": "Gemini 2.0 Flash", + "display_name": "Gemini 2.0 Flash", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-06", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + } + }, + { + "id": "google/gemini-2.0-flash-lite", + "name": "Gemini 2.0 Flash Lite", + "display_name": "Gemini 2.0 Flash Lite", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-06", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", + "cost": { + "input": 0.075, + "output": 0.3 + } + }, + { + "id": "google/gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "display_name": "Gemini 2.5 Flash", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-03-20", + "last_updated": "2025-06-05", + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "input_audio": 1 + } + }, + { + "id": "openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "display_name": "GPT OSS 20B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 0.07, + "output": 0.3 + } + }, + { + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 0.1, + "output": 0.5 + } + }, + { + "id": "openai/gpt-5", + "name": "GPT-5", + "display_name": "GPT-5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.13 + } + }, + { + "id": "openai/gpt-4o-mini", + "name": "GPT-4o mini", + "display_name": "GPT-4o mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.08 + } + }, + { + "id": "openai/o3", + "name": "o3", + "display_name": "o3", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + } + }, + { + "id": "openai/gpt-5-mini", + "name": "GPT-5 Mini", + "display_name": "GPT-5 Mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.03 + } + }, + { + "id": "openai/o1", + "name": "o1", + "display_name": "o1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-12-05", + "last_updated": "2024-12-05", + "cost": { + "input": 15, + "output": 60, + "cache_read": 7.5 + } + }, + { + "id": "openai/o4-mini", + "name": "o4-mini", + "display_name": "o4-mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.28 + } + }, + { + "id": "openai/gpt-4.1", + "name": "GPT-4.1", + "display_name": "GPT-4.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + } + }, + { + "id": "openai/gpt-4o", + "name": "GPT-4o", + "display_name": "GPT-4o", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-05-13", + "last_updated": "2024-08-06", + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + } + }, + { + "id": "openai/gpt-5-codex", + "name": "GPT-5-Codex", + "display_name": "GPT-5-Codex", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-09-15", + "last_updated": "2025-09-15" + }, + { + "id": "openai/gpt-5-nano", + "name": "GPT-5 Nano", + "display_name": "GPT-5 Nano", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 0.05, + "output": 0.4, + "cache_read": 0.01 + } + }, + { + "id": "openai/o3-mini", + "name": "o3-mini", + "display_name": "o3-mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2024-12-20", + "last_updated": "2025-01-29", + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 + } + }, + { + "id": "openai/gpt-4-turbo", + "name": "GPT-4 Turbo", + "display_name": "GPT-4 Turbo", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-12", + "release_date": "2023-11-06", + "last_updated": "2024-04-09", + "cost": { + "input": 10, + "output": 30 + } + }, + { + "id": "openai/gpt-4.1-mini", + "name": "GPT-4.1 mini", + "display_name": "GPT-4.1 mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 + } + }, + { + "id": "openai/gpt-4.1-nano", + "name": "GPT-4.1 nano", + "display_name": "GPT-4.1 nano", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.03 + } + }, + { + "id": "amazon/nova-micro", + "name": "Nova Micro", + "display_name": "Nova Micro", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-12-03", + "last_updated": "2024-12-03", + "cost": { + "input": 0.035, + "output": 0.14, + "cache_read": 0.00875 + } + }, + { + "id": "amazon/nova-pro", + "name": "Nova Pro", + "display_name": "Nova Pro", + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 300000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-12-03", + "last_updated": "2024-12-03", + "cost": { + "input": 0.8, + "output": 3.2, + "cache_read": 0.2 + } + }, + { + "id": "amazon/nova-lite", + "name": "Nova Lite", + "display_name": "Nova Lite", + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 300000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-12-03", + "last_updated": "2024-12-03", + "cost": { + "input": 0.06, + "output": 0.24, + "cache_read": 0.015 + } + }, + { + "id": "morph/morph-v3-fast", + "name": "Morph v3 Fast", + "display_name": "Morph v3 Fast", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 16000, + "output": 16000 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "release_date": "2024-08-15", + "last_updated": "2024-08-15", + "cost": { + "input": 0.8, + "output": 1.2 + } + }, + { + "id": "morph/morph-v3-large", + "name": "Morph v3 Large", + "display_name": "Morph v3 Large", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32000, + "output": 32000 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "release_date": "2024-08-15", + "last_updated": "2024-08-15", + "cost": { + "input": 0.9, + "output": 1.9 + } + }, + { + "id": "meta/llama-4-scout", + "name": "Llama-4-Scout-17B-16E-Instruct-FP8", + "display_name": "Llama-4-Scout-17B-16E-Instruct-FP8", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "meta/llama-3.3-70b", + "name": "Llama-3.3-70B-Instruct", + "display_name": "Llama-3.3-70B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "meta/llama-4-maverick", + "name": "Llama-4-Maverick-17B-128E-Instruct-FP8", + "display_name": "Llama-4-Maverick-17B-128E-Instruct-FP8", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "anthropic/claude-3.7-sonnet", + "name": "Claude Sonnet 3.7", + "display_name": "Claude Sonnet 3.7", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10-31", + "release_date": "2025-02-19", + "last_updated": "2025-02-19", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "anthropic/claude-3-5-haiku", + "name": "Claude Haiku 3.5", + "display_name": "Claude Haiku 3.5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-07-31", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + { + "id": "anthropic/claude-4.5-sonnet", + "name": "Claude Sonnet 4.5", + "display_name": "Claude Sonnet 4.5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1000000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-07-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", + "cost": { + "input": 3, + "output": 15, + "reasoning": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "anthropic/claude-3.5-sonnet", + "name": "Claude Sonnet 3.5 v2", + "display_name": "Claude Sonnet 3.5 v2", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04-30", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "anthropic/claude-4-1-opus", + "name": "Claude Opus 4", + "display_name": "Claude Opus 4", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + { + "id": "anthropic/claude-4-sonnet", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "anthropic/claude-3-opus", + "name": "Claude Opus 3", + "display_name": "Claude Opus 3", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-08-31", + "release_date": "2024-02-29", + "last_updated": "2024-02-29", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + { + "id": "anthropic/claude-3-haiku", + "name": "Claude Haiku 3", + "display_name": "Claude Haiku 3", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-08-31", + "release_date": "2024-03-13", + "last_updated": "2024-03-13", + "cost": { + "input": 0.25, + "output": 1.25, + "cache_read": 0.03, + "cache_write": 0.3 + } + }, + { + "id": "anthropic/claude-4-opus", + "name": "Claude Opus 4", + "display_name": "Claude Opus 4", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + { + "id": "cerebras/qwen3-coder", + "name": "Qwen 3 Coder 480B", + "display_name": "Qwen 3 Coder 480B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", + "cost": { + "input": 2, + "output": 2 + } + } + ] + }, + "deepseek": { + "id": "deepseek", + "name": "DeepSeek", + "display_name": "DeepSeek", + "api": "https://api.deepseek.com", + "doc": "https://platform.deepseek.com/api-docs/pricing", + "models": [ + { + "id": "deepseek-chat", + "name": "DeepSeek Chat", + "display_name": "DeepSeek Chat", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-07", + "release_date": "2024-12-26", + "last_updated": "2025-08-21", + "cost": { + "input": 0.57, + "output": 1.68, + "cache_read": 0.07 + } + }, + { + "id": "deepseek-reasoner", + "name": "DeepSeek Reasoner", + "display_name": "DeepSeek Reasoner", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-07", + "release_date": "2025-01-20", + "last_updated": "2025-08-21", + "cost": { + "input": 0.57, + "output": 1.68, + "cache_read": 0.07 + } + } + ] + }, + "alibaba-cn": { + "id": "alibaba-cn", + "name": "Alibaba (China)", + "display_name": "Alibaba (China)", + "api": "https://dashscope.aliyuncs.com/compatible-mode/v1", + "doc": "https://www.alibabacloud.com/help/en/model-studio/models", + "models": [ + { + "id": "qwen3-coder-plus", + "name": "Qwen3 Coder Plus", + "display_name": "Qwen3 Coder Plus", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", + "cost": { + "input": 1, + "output": 5 + } + } + ] + }, + "venice": { + "id": "venice", + "name": "Venice AI", + "display_name": "Venice AI", + "api": "https://api.venice.ai/api/v1", + "doc": "https://docs.venice.ai", + "models": [ + { + "id": "dolphin-2.9.2-qwen2-72b", + "name": "Dolphin 72B", + "display_name": "Dolphin 72B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2021-09", + "release_date": "2025-05-21", + "last_updated": "2025-05-21", + "cost": { + "input": 0.7, + "output": 2.8 + } + }, + { + "id": "mistral-31-24b", + "name": "Venice Medium", + "display_name": "Venice Medium", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2025-07-15", + "last_updated": "2025-07-15", + "cost": { + "input": 0.5, + "output": 2 + } + }, + { + "id": "venice-uncensored", + "name": "Venice Uncensored 1.1", + "display_name": "Venice Uncensored 1.1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2025-07-15", + "last_updated": "2025-07-15", + "cost": { + "input": 0.5, + "output": 2 + } + }, + { + "id": "qwen-2.5-vl", + "name": "Qwen 2.5 VL 72B", + "display_name": "Qwen 2.5 VL 72B", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2025-06-09", + "last_updated": "2025-06-09", + "cost": { + "input": 0.7, + "output": 2.8 + } + }, + { + "id": "qwen3-235b", + "name": "Venice Large", + "display_name": "Venice Large", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-07-27", + "last_updated": "2025-07-27", + "cost": { + "input": 1.5, + "output": 6 + } + }, + { + "id": "qwen-2.5-qwq-32b", + "name": "Venice Reasoning", + "display_name": "Venice Reasoning", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2025-07-08", + "last_updated": "2025-07-08", + "cost": { + "input": 0.5, + "output": 2 + } + }, + { + "id": "deepseek-coder-v2-lite", + "name": "DeepSeek Coder V2 Lite", + "display_name": "DeepSeek Coder V2 Lite", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2021-09", + "release_date": "2025-06-22", + "last_updated": "2025-06-22", + "cost": { + "input": 0.5, + "output": 2 + } + }, + { + "id": "qwen3-4b", + "name": "Venice Small", + "display_name": "Venice Small", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-07-27", + "last_updated": "2025-07-27", + "cost": { + "input": 0.15, + "output": 0.6 + } + }, + { + "id": "llama-3.3-70b", + "name": "Llama 3.3 70B", + "display_name": "Llama 3.3 70B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 65536, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2025-06-09", + "last_updated": "2025-06-09", + "cost": { + "input": 0.7, + "output": 2.8 + } + }, + { + "id": "qwen-2.5-coder-32b", + "name": "Qwen 2.5 Coder 32B", + "display_name": "Qwen 2.5 Coder 32B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2025-06-14", + "last_updated": "2025-06-14", + "cost": { + "input": 0.5, + "output": 2 + } + }, + { + "id": "deepseek-r1-671b", + "name": "DeepSeek R1 671B", + "display_name": "DeepSeek R1 671B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2025-06-05", + "last_updated": "2025-06-05", + "cost": { + "input": 3.5, + "output": 14 + } + }, + { + "id": "llama-3.2-3b", + "name": "Llama 3.2 3B", + "display_name": "Llama 3.2 3B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2025-05-23", + "last_updated": "2025-05-23", + "cost": { + "input": 0.15, + "output": 0.6 + } + }, + { + "id": "llama-3.1-405b", + "name": "Llama 3.1 405B", + "display_name": "Llama 3.1 405B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 65536, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2025-06-30", + "last_updated": "2025-06-30", + "cost": { + "input": 1.5, + "output": 6 + } + } + ] + }, + "chutes": { + "id": "chutes", + "name": "Chutes", + "display_name": "Chutes", + "api": "https://llm.chutes.ai/v1", + "doc": "https://llm.chutes.ai/v1/models", + "models": [ + { + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 0.1, + "output": 0.41 + } + } + ] + }, + "cortecs": { + "id": "cortecs", + "name": "Cortecs", + "display_name": "Cortecs", + "api": "https://api.cortecs.ai/v1", + "doc": "https://api.cortecs.ai/v1/models", + "models": [ + { + "id": "nova-pro-v1", + "name": "Nova Pro 1.0", + "display_name": "Nova Pro 1.0", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 300000, + "output": 5000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2024-12-03", + "last_updated": "2024-12-03", + "cost": { + "input": 0.824, + "output": 3.295 + } + }, + { + "id": "deepseek-v3-0324", + "name": "DeepSeek V3 0324", + "display_name": "DeepSeek V3 0324", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-03-24", + "last_updated": "2025-03-24", + "cost": { + "input": 0.447, + "output": 1.342 + } + }, + { + "id": "kimi-k2-instruct", + "name": "Kimi K2 Instruct", + "display_name": "Kimi K2 Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2025-07-11", + "last_updated": "2025-09-05", + "cost": { + "input": 0.447, + "output": 2.147 + } + }, + { + "id": "gpt-4.1", + "name": "GPT 4.1", + "display_name": "GPT 4.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-06", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 1.91, + "output": 7.64 + } + }, + { + "id": "gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "display_name": "Gemini 2.5 Pro", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65535 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-03-20", + "last_updated": "2025-06-17", + "cost": { + "input": 1.3416, + "output": 8.944 + } + }, + { + "id": "gpt-oss-120b", + "name": "GPT Oss 120b", + "display_name": "GPT Oss 120b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-01", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen3-coder-480b-a35b-instruct", + "name": "Qwen3 Coder 480B A35B Instruct", + "display_name": "Qwen3 Coder 480B A35B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262000, + "output": 262000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-01", + "release_date": "2025-07-25", + "last_updated": "2025-07-25", + "cost": { + "input": 0.358, + "output": 1.61 + } + }, + { + "id": "claude-sonnet-4", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2025-03", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 2.683, + "output": 13.416 + } + }, + { + "id": "llama-3.1-405b-instruct", + "name": "Llama 3.1 405B Instruct", + "display_name": "Llama 3.1 405B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen3-32b", + "name": "Qwen3 32B", + "display_name": "Qwen3 32B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 16384, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-04-29", + "last_updated": "2025-04-29", + "cost": { + "input": 0.08, + "output": 0.268 + } + } + ] + }, + "github-models": { + "id": "github-models", + "name": "GitHub Models", + "display_name": "GitHub Models", + "api": "https://models.github.ai/inference", + "doc": "https://docs.github.com/en/github-models", + "models": [ + { + "id": "core42/jais-30b-chat", + "name": "JAIS 30b Chat", + "display_name": "JAIS 30b Chat", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 2048 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-03", + "release_date": "2023-08-30", + "last_updated": "2023-08-30", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "xai/grok-3", + "name": "Grok 3", + "display_name": "Grok 3", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-12-09", + "last_updated": "2024-12-09", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "xai/grok-3-mini", + "name": "Grok 3 Mini", + "display_name": "Grok 3 Mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-12-09", + "last_updated": "2024-12-09", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "cohere/cohere-command-r-08-2024", + "name": "Cohere Command R 08-2024", + "display_name": "Cohere Command R 08-2024", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-03", + "release_date": "2024-08-01", + "last_updated": "2024-08-01", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "cohere/cohere-command-a", + "name": "Cohere Command A", + "display_name": "Cohere Command A", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-03", + "release_date": "2024-11-01", + "last_updated": "2024-11-01", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "cohere/cohere-command-r-plus-08-2024", + "name": "Cohere Command R+ 08-2024", + "display_name": "Cohere Command R+ 08-2024", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-03", + "release_date": "2024-08-01", + "last_updated": "2024-08-01", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "cohere/cohere-command-r", + "name": "Cohere Command R", + "display_name": "Cohere Command R", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-03", + "release_date": "2024-03-11", + "last_updated": "2024-08-01", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "cohere/cohere-command-r-plus", + "name": "Cohere Command R+", + "display_name": "Cohere Command R+", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-03", + "release_date": "2024-04-04", + "last_updated": "2024-08-01", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "deepseek/deepseek-r1-0528", + "name": "DeepSeek-R1-0528", + "display_name": "DeepSeek-R1-0528", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 65536, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-06", + "release_date": "2025-05-28", + "last_updated": "2025-05-28", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "deepseek/deepseek-r1", + "name": "DeepSeek-R1", + "display_name": "DeepSeek-R1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 65536, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-06", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "deepseek/deepseek-v3-0324", + "name": "DeepSeek-V3-0324", + "display_name": "DeepSeek-V3-0324", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-06", + "release_date": "2025-03-24", + "last_updated": "2025-03-24", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "mistral-ai/mistral-medium-2505", + "name": "Mistral Medium 3 (25.05)", + "display_name": "Mistral Medium 3 (25.05)", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-09", + "release_date": "2025-05-01", + "last_updated": "2025-05-01", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "mistral-ai/ministral-3b", + "name": "Ministral 3B", + "display_name": "Ministral 3B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-03", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "mistral-ai/mistral-nemo", + "name": "Mistral Nemo", + "display_name": "Mistral Nemo", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-03", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "mistral-ai/mistral-large-2411", + "name": "Mistral Large 24.11", + "display_name": "Mistral Large 24.11", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-09", + "release_date": "2024-11-01", + "last_updated": "2024-11-01", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "mistral-ai/codestral-2501", + "name": "Codestral 25.01", + "display_name": "Codestral 25.01", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-03", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "mistral-ai/mistral-small-2503", + "name": "Mistral Small 3.1", + "display_name": "Mistral Small 3.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-09", + "release_date": "2025-03-01", + "last_updated": "2025-03-01", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-3-medium-128k-instruct", + "name": "Phi-3-medium instruct (128k)", + "display_name": "Phi-3-medium instruct (128k)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-3-mini-4k-instruct", + "name": "Phi-3-mini instruct (4k)", + "display_name": "Phi-3-mini instruct (4k)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 1024 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-3-small-128k-instruct", + "name": "Phi-3-small instruct (128k)", + "display_name": "Phi-3-small instruct (128k)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-3.5-vision-instruct", + "name": "Phi-3.5-vision instruct (128k)", + "display_name": "Phi-3.5-vision instruct (128k)", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-08-20", + "last_updated": "2024-08-20", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-4", + "name": "Phi-4", + "display_name": "Phi-4", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 16000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-4-mini-reasoning", + "name": "Phi-4-mini-reasoning", + "display_name": "Phi-4-mini-reasoning", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-3-small-8k-instruct", + "name": "Phi-3-small instruct (8k)", + "display_name": "Phi-3-small instruct (8k)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 2048 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-3.5-mini-instruct", + "name": "Phi-3.5-mini instruct (128k)", + "display_name": "Phi-3.5-mini instruct (128k)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-08-20", + "last_updated": "2024-08-20", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-4-multimodal-instruct", + "name": "Phi-4-multimodal-instruct", + "display_name": "Phi-4-multimodal-instruct", + "modalities": { + "input": [ + "text", + "image", + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-3-mini-128k-instruct", + "name": "Phi-3-mini instruct (128k)", + "display_name": "Phi-3-mini instruct (128k)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-3.5-moe-instruct", + "name": "Phi-3.5-MoE instruct (128k)", + "display_name": "Phi-3.5-MoE instruct (128k)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-08-20", + "last_updated": "2024-08-20", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-4-mini-instruct", + "name": "Phi-4-mini-instruct", + "display_name": "Phi-4-mini-instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-3-medium-4k-instruct", + "name": "Phi-3-medium instruct (4k)", + "display_name": "Phi-3-medium instruct (4k)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 1024 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-04-23", + "last_updated": "2024-04-23", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/phi-4-reasoning", + "name": "Phi-4-Reasoning", + "display_name": "Phi-4-Reasoning", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-10", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/mai-ds-r1", + "name": "MAI-DS-R1", + "display_name": "MAI-DS-R1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 65536, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-06", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openai/gpt-4.1-nano", + "name": "GPT-4.1-nano", + "display_name": "GPT-4.1-nano", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openai/gpt-4.1-mini", + "name": "GPT-4.1-mini", + "display_name": "GPT-4.1-mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openai/o1-preview", + "name": "OpenAI o1-preview", + "display_name": "OpenAI o1-preview", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32768 + }, + "temperature": false, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2023-10", + "release_date": "2024-09-12", + "last_updated": "2024-09-12", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openai/o3-mini", + "name": "OpenAI o3-mini", + "display_name": "OpenAI o3-mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-01-31", + "last_updated": "2025-01-31", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openai/gpt-4o", + "name": "GPT-4o", + "display_name": "GPT-4o", + "modalities": { + "input": [ + "text", + "image", + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-10", + "release_date": "2024-05-13", + "last_updated": "2024-05-13", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openai/gpt-4.1", + "name": "GPT-4.1", + "display_name": "GPT-4.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openai/o4-mini", + "name": "OpenAI o4-mini", + "display_name": "OpenAI o4-mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-01-31", + "last_updated": "2025-01-31", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openai/o1", + "name": "OpenAI o1", + "display_name": "OpenAI o1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2023-10", + "release_date": "2024-09-12", + "last_updated": "2024-12-17", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openai/o1-mini", + "name": "OpenAI o1-mini", + "display_name": "OpenAI o1-mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 65536 + }, + "temperature": false, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2023-10", + "release_date": "2024-09-12", + "last_updated": "2024-12-17", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openai/o3", + "name": "OpenAI o3", + "display_name": "OpenAI o3", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-01-31", + "last_updated": "2025-01-31", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openai/gpt-4o-mini", + "name": "GPT-4o mini", + "display_name": "GPT-4o mini", + "modalities": { + "input": [ + "text", + "image", + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-10", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "meta/llama-3.2-11b-vision-instruct", + "name": "Llama-3.2-11B-Vision-Instruct", + "display_name": "Llama-3.2-11B-Vision-Instruct", + "modalities": { + "input": [ + "text", + "image", + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "meta/meta-llama-3.1-405b-instruct", + "name": "Meta-Llama-3.1-405B-Instruct", + "display_name": "Meta-Llama-3.1-405B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "meta/llama-4-maverick-17b-128e-instruct-fp8", + "name": "Llama 4 Maverick 17B 128E Instruct FP8", + "display_name": "Llama 4 Maverick 17B 128E Instruct FP8", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-01-31", + "last_updated": "2025-01-31", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "meta/meta-llama-3-70b-instruct", + "name": "Meta-Llama-3-70B-Instruct", + "display_name": "Meta-Llama-3-70B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 2048 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-04-18", + "last_updated": "2024-04-18", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "meta/meta-llama-3.1-70b-instruct", + "name": "Meta-Llama-3.1-70B-Instruct", + "display_name": "Meta-Llama-3.1-70B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "meta/llama-3.3-70b-instruct", + "name": "Llama-3.3-70B-Instruct", + "display_name": "Llama-3.3-70B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "meta/llama-3.2-90b-vision-instruct", + "name": "Llama-3.2-90B-Vision-Instruct", + "display_name": "Llama-3.2-90B-Vision-Instruct", + "modalities": { + "input": [ + "text", + "image", + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "meta/meta-llama-3-8b-instruct", + "name": "Meta-Llama-3-8B-Instruct", + "display_name": "Meta-Llama-3-8B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 2048 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-04-18", + "last_updated": "2024-04-18", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "meta/llama-4-scout-17b-16e-instruct", + "name": "Llama 4 Scout 17B 16E Instruct", + "display_name": "Llama 4 Scout 17B 16E Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-01-31", + "last_updated": "2025-01-31", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "meta/meta-llama-3.1-8b-instruct", + "name": "Meta-Llama-3.1-8B-Instruct", + "display_name": "Meta-Llama-3.1-8B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "ai21-labs/ai21-jamba-1.5-large", + "name": "AI21 Jamba 1.5 Large", + "display_name": "AI21 Jamba 1.5 Large", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-03", + "release_date": "2024-08-29", + "last_updated": "2024-08-29", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "ai21-labs/ai21-jamba-1.5-mini", + "name": "AI21 Jamba 1.5 Mini", + "display_name": "AI21 Jamba 1.5 Mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-03", + "release_date": "2024-08-29", + "last_updated": "2024-08-29", + "cost": { + "input": 0, + "output": 0 + } + } + ] + }, + "togetherai": { + "id": "togetherai", + "name": "Together AI", + "display_name": "Together AI", + "doc": "https://docs.together.ai/docs/serverless-models", + "models": [ + { + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 0.15, + "output": 0.6 + } + } + ] + }, + "azure": { + "id": "azure", + "name": "Azure", + "display_name": "Azure", + "doc": "https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models", + "models": [ + { + "id": "gpt-4.1-nano", + "name": "GPT-4.1 nano", + "display_name": "GPT-4.1 nano", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.03 + } + }, + { + "id": "gpt-4", + "name": "GPT-4", + "display_name": "GPT-4", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2023-11", + "release_date": "2023-03-14", + "last_updated": "2023-03-14", + "cost": { + "input": 60, + "output": 120 + } + }, + { + "id": "gpt-4-32k", + "name": "GPT-4 32K", + "display_name": "GPT-4 32K", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2023-11", + "release_date": "2023-03-14", + "last_updated": "2023-03-14", + "cost": { + "input": 60, + "output": 120 + } + }, + { + "id": "gpt-4.1-mini", + "name": "GPT-4.1 mini", + "display_name": "GPT-4.1 mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 + } + }, + { + "id": "gpt-5-chat", + "name": "GPT-5 Chat", + "display_name": "GPT-5 Chat", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": false, + "tool_call": false, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10-24", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.13 + } + }, + { + "id": "gpt-3.5-turbo-0125", + "name": "GPT-3.5 Turbo 0125", + "display_name": "GPT-3.5 Turbo 0125", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 16384, + "output": 16384 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2021-08", + "release_date": "2024-01-25", + "last_updated": "2024-01-25", + "cost": { + "input": 0.5, + "output": 1.5 + } + }, + { + "id": "gpt-4-turbo", + "name": "GPT-4 Turbo", + "display_name": "GPT-4 Turbo", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-11", + "release_date": "2023-11-06", + "last_updated": "2024-04-09", + "cost": { + "input": 10, + "output": 30 + } + }, + { + "id": "gpt-3.5-turbo-0613", + "name": "GPT-3.5 Turbo 0613", + "display_name": "GPT-3.5 Turbo 0613", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 16384, + "output": 16384 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2021-08", + "release_date": "2023-06-13", + "last_updated": "2023-06-13", + "cost": { + "input": 3, + "output": 4 + } + }, + { + "id": "o1-preview", + "name": "o1-preview", + "display_name": "o1-preview", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32768 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-09-12", + "last_updated": "2024-09-12", + "cost": { + "input": 16.5, + "output": 66, + "cache_read": 8.25 + } + }, + { + "id": "o3-mini", + "name": "o3-mini", + "display_name": "o3-mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2024-12-20", + "last_updated": "2025-01-29", + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 + } + }, + { + "id": "gpt-5-nano", + "name": "GPT-5 Nano", + "display_name": "GPT-5 Nano", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 272000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 0.05, + "output": 0.4, + "cache_read": 0.01 + } + }, + { + "id": "gpt-5-codex", + "name": "GPT-5-Codex", + "display_name": "GPT-5-Codex", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-09-15", + "last_updated": "2025-09-15" + }, + { + "id": "gpt-4o", + "name": "GPT-4o", + "display_name": "GPT-4o", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-05-13", + "last_updated": "2024-05-13", + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + } + }, + { + "id": "gpt-3.5-turbo-0301", + "name": "GPT-3.5 Turbo 0301", + "display_name": "GPT-3.5 Turbo 0301", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 4096 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2021-08", + "release_date": "2023-03-01", + "last_updated": "2023-03-01", + "cost": { + "input": 1.5, + "output": 2 + } + }, + { + "id": "gpt-4.1", + "name": "GPT-4.1", + "display_name": "GPT-4.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + } + }, + { + "id": "o4-mini", + "name": "o4-mini", + "display_name": "o4-mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.28 + } + }, + { + "id": "o1", + "name": "o1", + "display_name": "o1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-12-05", + "last_updated": "2024-12-05", + "cost": { + "input": 15, + "output": 60, + "cache_read": 7.5 + } + }, + { + "id": "gpt-5-mini", + "name": "GPT-5 Mini", + "display_name": "GPT-5 Mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 272000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.03 + } + }, + { + "id": "o1-mini", + "name": "o1-mini", + "display_name": "o1-mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 65536 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-09-12", + "last_updated": "2024-09-12", + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 + } + }, + { + "id": "gpt-3.5-turbo-instruct", + "name": "GPT-3.5 Turbo Instruct", + "display_name": "GPT-3.5 Turbo Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 4096 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2021-08", + "release_date": "2023-09-21", + "last_updated": "2023-09-21", + "cost": { + "input": 1.5, + "output": 2 + } + }, + { + "id": "o3", + "name": "o3", + "display_name": "o3", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + } + }, + { + "id": "codex-mini", + "name": "Codex Mini", + "display_name": "Codex Mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-05-16", + "last_updated": "2025-05-16", + "cost": { + "input": 1.5, + "output": 6, + "cache_read": 0.375 + } + }, + { + "id": "gpt-4-turbo-vision", + "name": "GPT-4 Turbo Vision", + "display_name": "GPT-4 Turbo Vision", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-11", + "release_date": "2023-11-06", + "last_updated": "2024-04-09", + "cost": { + "input": 10, + "output": 30 + } + }, + { + "id": "gpt-4o-mini", + "name": "GPT-4o mini", + "display_name": "GPT-4o mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.08 + } + }, + { + "id": "gpt-5", + "name": "GPT-5", + "display_name": "GPT-5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 272000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.13 + } + }, + { + "id": "gpt-3.5-turbo-1106", + "name": "GPT-3.5 Turbo 1106", + "display_name": "GPT-3.5 Turbo 1106", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 16384, + "output": 16384 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2021-08", + "release_date": "2023-11-06", + "last_updated": "2023-11-06", + "cost": { + "input": 1, + "output": 2 + } + } + ] + }, + "opencode": { + "id": "opencode", + "name": "opencode zen", + "display_name": "opencode zen", + "api": "https://opencode.ai/zen/v1", + "doc": "https://opencode.ai/docs", + "models": [ + { + "id": "qwen3-coder", + "name": "Qwen3 Coder", + "display_name": "Qwen3 Coder", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", + "cost": { + "input": 0.45, + "output": 1.8 + } + }, + { + "id": "claude-opus-4-1", + "name": "Claude Opus 4.1", + "display_name": "Claude Opus 4.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 15, + "output": 75, + "reasoning": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + { + "id": "kimi-k2", + "name": "Kimi K2", + "display_name": "Kimi K2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-09-05", + "last_updated": "2025-09-05", + "cost": { + "input": 0.6, + "output": 2.5 + } + }, + { + "id": "claude-sonnet-4-5", + "name": "Claude Sonnet 4.5", + "display_name": "Claude Sonnet 4.5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1000000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-07-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", + "cost": { + "input": 3, + "output": 15, + "reasoning": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "gpt-5-codex", + "name": "GPT-5-Codex", + "display_name": "GPT-5-Codex", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 1.25, + "output": 10, + "reasoning": 10, + "cache_read": 0.125 + } + }, + { + "id": "claude-3-5-haiku", + "name": "Claude Haiku 3.5", + "display_name": "Claude Haiku 3.5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-07-31", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + { + "id": "grok-code", + "name": "Grok Code Fast 1", + "display_name": "Grok Code Fast 1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 256000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "release_date": "2025-08-20", + "last_updated": "2025-08-20", + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + } + }, + { + "id": "code-supernova", + "name": "Code Supernova 1M", + "display_name": "Code Supernova 1M", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1000000, + "output": 1000000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "release_date": "2025-09-19", + "last_updated": "2025-09-19", + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + } + }, + { + "id": "qwen3-max", + "name": "Qwen3 Max", + "display_name": "Qwen3 Max", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-09-05", + "last_updated": "2025-09-05", + "cost": { + "input": 1.6, + "output": 6.4 + } + }, + { + "id": "claude-sonnet-4", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1000000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 3, + "output": 15, + "reasoning": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "gpt-5", + "name": "GPT-5", + "display_name": "GPT-5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 1.25, + "output": 10, + "reasoning": 10, + "cache_read": 0.125 + } + } + ] + }, + "fastrouter": { + "id": "fastrouter", + "name": "FastRouter", + "display_name": "FastRouter", + "api": "https://go.fastrouter.ai/api/v1", + "doc": "https://fastrouter.ai/models", + "models": [ + { + "id": "moonshotai/kimi-k2", + "name": "Kimi K2", + "display_name": "Kimi K2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-07-11", + "last_updated": "2025-07-11", + "cost": { + "input": 0.55, + "output": 2.2 + } + }, + { + "id": "x-ai/grok-4", + "name": "Grok 4", + "display_name": "Grok 4", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-07-09", + "last_updated": "2025-07-09", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.75, + "cache_write": 15 + } + }, + { + "id": "google/gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "display_name": "Gemini 2.5 Flash", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.0375 + } + }, + { + "id": "google/gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "display_name": "Gemini 2.5 Pro", + "modalities": { + "input": [ + "text", + "image", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + } + }, + { + "id": "openai/gpt-5-nano", + "name": "GPT-5 Nano", + "display_name": "GPT-5 Nano", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10-01", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 0.05, + "output": 0.4, + "cache_read": 0.005 + } + }, + { + "id": "openai/gpt-4.1", + "name": "GPT-4.1", + "display_name": "GPT-4.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + } + }, + { + "id": "openai/gpt-5-mini", + "name": "GPT-5 Mini", + "display_name": "GPT-5 Mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10-01", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.025 + } + }, + { + "id": "openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "display_name": "GPT OSS 20B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 0.05, + "output": 0.2 + } + }, + { + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 0.15, + "output": 0.6 + } + }, + { + "id": "openai/gpt-5", + "name": "GPT-5", + "display_name": "GPT-5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10-01", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + } + }, + { + "id": "qwen/qwen3-coder", + "name": "Qwen3 Coder", + "display_name": "Qwen3 Coder", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 66536 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", + "cost": { + "input": 0.3, + "output": 1.2 + } + }, + { + "id": "anthropic/claude-opus-4.1", + "name": "Claude Opus 4.1", + "display_name": "Claude Opus 4.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + { + "id": "anthropic/claude-sonnet-4", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "deepseek-ai/deepseek-r1-distill-llama-70b", + "name": "DeepSeek R1 Distill Llama 70B", + "display_name": "DeepSeek R1 Distill Llama 70B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "temperature": true, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-01-23", + "last_updated": "2025-01-23", + "cost": { + "input": 0.03, + "output": 0.14 + } + } + ] + }, + "google": { + "id": "google", + "name": "Google", + "display_name": "Google", + "doc": "https://ai.google.dev/gemini-api/docs/pricing", + "models": [ + { + "id": "gemini-2.5-flash-preview-05-20", + "name": "Gemini 2.5 Flash Preview 05-20", + "display_name": "Gemini 2.5 Flash Preview 05-20", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-05-20", + "last_updated": "2025-05-20", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.0375 + } + }, + { + "id": "gemini-flash-lite-latest", + "name": "Gemini Flash-Lite Latest", + "display_name": "Gemini Flash-Lite Latest", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-09-25", + "last_updated": "2025-09-25", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + } + }, + { + "id": "gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "display_name": "Gemini 2.5 Flash", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-03-20", + "last_updated": "2025-06-05", + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "input_audio": 1 + } + }, + { + "id": "gemini-flash-latest", + "name": "Gemini Flash Latest", + "display_name": "Gemini Flash Latest", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-09-25", + "last_updated": "2025-09-25", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.0375 + } + }, + { + "id": "gemini-2.5-pro-preview-05-06", + "name": "Gemini 2.5 Pro Preview 05-06", + "display_name": "Gemini 2.5 Pro Preview 05-06", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-05-06", + "last_updated": "2025-05-06", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + } + }, + { + "id": "gemini-2.0-flash-lite", + "name": "Gemini 2.0 Flash Lite", + "display_name": "Gemini 2.0 Flash Lite", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-06", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", + "cost": { + "input": 0.075, + "output": 0.3 + } + }, + { + "id": "gemini-live-2.5-flash-preview-native-audio", + "name": "Gemini Live 2.5 Flash Preview Native Audio", + "display_name": "Gemini Live 2.5 Flash Preview Native Audio", + "modalities": { + "input": [ + "text", + "audio", + "video" + ], + "output": [ + "text", + "audio" + ] + }, + "limit": { + "context": 131072, + "output": 65536 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-09-18", + "cost": { + "input": 0.5, + "output": 2, + "input_audio": 3, + "output_audio": 12 + } + }, + { + "id": "gemini-2.0-flash", + "name": "Gemini 2.0 Flash", + "display_name": "Gemini 2.0 Flash", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-06", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + } + }, + { + "id": "gemini-2.5-flash-lite", + "name": "Gemini 2.5 Flash Lite", + "display_name": "Gemini 2.5 Flash Lite", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + } + }, + { + "id": "gemini-2.5-pro-preview-06-05", + "name": "Gemini 2.5 Pro Preview 06-05", + "display_name": "Gemini 2.5 Pro Preview 06-05", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-06-05", + "last_updated": "2025-06-05", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + } + }, + { + "id": "gemini-2.5-flash-lite-preview-06-17", + "name": "Gemini 2.5 Flash Lite Preview 06-17", + "display_name": "Gemini 2.5 Flash Lite Preview 06-17", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025, + "input_audio": 0.3 + } + }, + { + "id": "gemini-2.5-flash-preview-09-2025", + "name": "Gemini 2.5 Flash Preview 09-25", + "display_name": "Gemini 2.5 Flash Preview 09-25", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-09-25", + "last_updated": "2025-09-25", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.0375 + } + }, + { + "id": "gemini-2.5-flash-preview-04-17", + "name": "Gemini 2.5 Flash Preview 04-17", + "display_name": "Gemini 2.5 Flash Preview 04-17", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-04-17", + "last_updated": "2025-04-17", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.0375 + } + }, + { + "id": "gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "display_name": "Gemini 2.5 Pro", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-03-20", + "last_updated": "2025-06-05", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + } + }, + { + "id": "gemini-1.5-flash", + "name": "Gemini 1.5 Flash", + "display_name": "Gemini 1.5 Flash", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1000000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2024-05-14", + "last_updated": "2024-05-14", + "cost": { + "input": 0.075, + "output": 0.3, + "cache_read": 0.01875 + } + }, + { + "id": "gemini-1.5-flash-8b", + "name": "Gemini 1.5 Flash-8B", + "display_name": "Gemini 1.5 Flash-8B", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1000000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2024-10-03", + "last_updated": "2024-10-03", + "cost": { + "input": 0.0375, + "output": 0.15, + "cache_read": 0.01 + } + }, + { + "id": "gemini-2.5-flash-lite-preview-09-2025", + "name": "Gemini 2.5 Flash Lite Preview 09-25", + "display_name": "Gemini 2.5 Flash Lite Preview 09-25", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-09-25", + "last_updated": "2025-09-25", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + } + }, + { + "id": "gemini-1.5-pro", + "name": "Gemini 1.5 Pro", + "display_name": "Gemini 1.5 Pro", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1000000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2024-02-15", + "last_updated": "2024-02-15", + "cost": { + "input": 1.25, + "output": 5, + "cache_read": 0.3125 + } + } + ] + }, + "google-vertex": { + "id": "google-vertex", + "name": "Vertex", + "display_name": "Vertex", + "doc": "https://cloud.google.com/vertex-ai/generative-ai/docs/models", + "models": [ + { + "id": "gemini-2.5-flash-preview-05-20", + "name": "Gemini 2.5 Flash Preview 05-20", + "display_name": "Gemini 2.5 Flash Preview 05-20", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-05-20", + "last_updated": "2025-05-20", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.0375 + } + }, + { + "id": "gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "display_name": "Gemini 2.5 Flash", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "cache_write": 0.383 + } + }, + { + "id": "gemini-2.5-pro-preview-05-06", + "name": "Gemini 2.5 Pro Preview 05-06", + "display_name": "Gemini 2.5 Pro Preview 05-06", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-05-06", + "last_updated": "2025-05-06", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + } + }, + { + "id": "gemini-2.0-flash-lite", + "name": "Gemini 2.0 Flash Lite", + "display_name": "Gemini 2.0 Flash Lite", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-06", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", + "cost": { + "input": 0.075, + "output": 0.3 + } + }, + { + "id": "gemini-2.0-flash", + "name": "Gemini 2.0 Flash", + "display_name": "Gemini 2.0 Flash", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-06", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + } + }, + { + "id": "gemini-2.5-pro-preview-06-05", + "name": "Gemini 2.5 Pro Preview 06-05", + "display_name": "Gemini 2.5 Pro Preview 06-05", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-06-05", + "last_updated": "2025-06-05", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + } + }, + { + "id": "gemini-2.5-flash-lite-preview-06-17", + "name": "Gemini 2.5 Flash Lite Preview 06-17", + "display_name": "Gemini 2.5 Flash Lite Preview 06-17", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 65536, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + } + }, + { + "id": "gemini-2.5-flash-preview-04-17", + "name": "Gemini 2.5 Flash Preview 04-17", + "display_name": "Gemini 2.5 Flash Preview 04-17", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-04-17", + "last_updated": "2025-04-17", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.0375 + } + }, + { + "id": "gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "display_name": "Gemini 2.5 Pro", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-03-20", + "last_updated": "2025-06-05", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + } + } + ] + }, + "cloudflare-workers-ai": { + "id": "cloudflare-workers-ai", + "name": "Cloudflare Workers AI", + "display_name": "Cloudflare Workers AI", + "doc": "https://developers.cloudflare.com/workers-ai/models/", + "models": [ + { + "id": "mistral-7b-instruct-v0.1-awq", + "name": "@hf/thebloke/mistral-7b-instruct-v0.1-awq", + "display_name": "@hf/thebloke/mistral-7b-instruct-v0.1-awq", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-09-27", + "last_updated": "2023-11-09", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "aura-1", + "name": "@cf/deepgram/aura-1", + "display_name": "@cf/deepgram/aura-1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "audio" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-27", + "last_updated": "2025-07-07", + "cost": { + "input": 0.015, + "output": 0.015 + } + }, + { + "id": "mistral-7b-instruct-v0.2", + "name": "@hf/mistral/mistral-7b-instruct-v0.2", + "display_name": "@hf/mistral/mistral-7b-instruct-v0.2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 3072, + "output": 3072 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-12-11", + "last_updated": "2025-07-24", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "tinyllama-1.1b-chat-v1.0", + "name": "@cf/tinyllama/tinyllama-1.1b-chat-v1.0", + "display_name": "@cf/tinyllama/tinyllama-1.1b-chat-v1.0", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 2048, + "output": 2048 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-12-30", + "last_updated": "2024-03-17", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen1.5-0.5b-chat", + "name": "@cf/qwen/qwen1.5-0.5b-chat", + "display_name": "@cf/qwen/qwen1.5-0.5b-chat", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-01-31", + "last_updated": "2024-04-30", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "llama-3.2-11b-vision-instruct", + "name": "@cf/meta/llama-3.2-11b-vision-instruct", + "display_name": "@cf/meta/llama-3.2-11b-vision-instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-09-18", + "last_updated": "2024-12-04", + "cost": { + "input": 0.049, + "output": 0.68 + } + }, + { + "id": "llama-2-13b-chat-awq", + "name": "@hf/thebloke/llama-2-13b-chat-awq", + "display_name": "@hf/thebloke/llama-2-13b-chat-awq", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-09-19", + "last_updated": "2023-11-09", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "llama-3.1-8b-instruct-fp8", + "name": "@cf/meta/llama-3.1-8b-instruct-fp8", + "display_name": "@cf/meta/llama-3.1-8b-instruct-fp8", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-07-25", + "last_updated": "2024-07-25", + "cost": { + "input": 0.15, + "output": 0.29 + } + }, + { + "id": "whisper", + "name": "@cf/openai/whisper", + "display_name": "@cf/openai/whisper", + "modalities": { + "input": [ + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-11-07", + "last_updated": "2024-08-12", + "cost": { + "input": 0.00045, + "output": 0.00045 + } + }, + { + "id": "stable-diffusion-xl-base-1.0", + "name": "@cf/stabilityai/stable-diffusion-xl-base-1.0", + "display_name": "@cf/stabilityai/stable-diffusion-xl-base-1.0", + "modalities": { + "input": [ + "text" + ], + "output": [ + "image" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-07-25", + "last_updated": "2023-10-30", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "llama-2-7b-chat-fp16", + "name": "@cf/meta/llama-2-7b-chat-fp16", + "display_name": "@cf/meta/llama-2-7b-chat-fp16", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-07-26", + "last_updated": "2023-07-26", + "cost": { + "input": 0.56, + "output": 6.67 + } + }, + { + "id": "resnet-50", + "name": "@cf/microsoft/resnet-50", + "display_name": "@cf/microsoft/resnet-50", + "modalities": { + "input": [ + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2022-03-16", + "last_updated": "2024-02-13", + "cost": { + "input": 0.0000025, + "output": 0 + } + }, + { + "id": "stable-diffusion-v1-5-inpainting", + "name": "@cf/runwayml/stable-diffusion-v1-5-inpainting", + "display_name": "@cf/runwayml/stable-diffusion-v1-5-inpainting", + "modalities": { + "input": [ + "text" + ], + "output": [ + "image" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-02-27", + "last_updated": "2024-02-27", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "sqlcoder-7b-2", + "name": "@cf/defog/sqlcoder-7b-2", + "display_name": "@cf/defog/sqlcoder-7b-2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 10000, + "output": 10000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-02-05", + "last_updated": "2024-02-12", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "llama-3-8b-instruct", + "name": "@cf/meta/llama-3-8b-instruct", + "display_name": "@cf/meta/llama-3-8b-instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 7968, + "output": 7968 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-04-17", + "last_updated": "2025-06-19", + "cost": { + "input": 0.28, + "output": 0.83 + } + }, + { + "id": "llama-2-7b-chat-hf-lora", + "name": "@cf/meta-llama/llama-2-7b-chat-hf-lora", + "display_name": "@cf/meta-llama/llama-2-7b-chat-hf-lora", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-07-13", + "last_updated": "2024-04-17", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "llama-3.1-8b-instruct", + "name": "@cf/meta/llama-3.1-8b-instruct", + "display_name": "@cf/meta/llama-3.1-8b-instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 7968, + "output": 7968 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-07-18", + "last_updated": "2024-09-25", + "cost": { + "input": 0.28, + "output": 0.83 + } + }, + { + "id": "openchat-3.5-0106", + "name": "@cf/openchat/openchat-3.5-0106", + "display_name": "@cf/openchat/openchat-3.5-0106", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-01-07", + "last_updated": "2024-05-18", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openhermes-2.5-mistral-7b-awq", + "name": "@hf/thebloke/openhermes-2.5-mistral-7b-awq", + "display_name": "@hf/thebloke/openhermes-2.5-mistral-7b-awq", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-11-02", + "last_updated": "2023-11-09", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "lucid-origin", + "name": "@cf/leonardo/lucid-origin", + "display_name": "@cf/leonardo/lucid-origin", + "modalities": { + "input": [ + "text" + ], + "output": [ + "image" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "release_date": "2025-08-25", + "last_updated": "2025-08-05", + "cost": { + "input": 0.007, + "output": 0.007 + } + }, + { + "id": "bart-large-cnn", + "name": "@cf/facebook/bart-large-cnn", + "display_name": "@cf/facebook/bart-large-cnn", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2022-03-02", + "last_updated": "2024-02-13", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "flux-1-schnell", + "name": "@cf/black-forest-labs/flux-1-schnell", + "display_name": "@cf/black-forest-labs/flux-1-schnell", + "modalities": { + "input": [ + "text" + ], + "output": [ + "image" + ] + }, + "limit": { + "context": 2048, + "output": 0 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-07-31", + "last_updated": "2024-08-16", + "cost": { + "input": 0.000053, + "output": 0.00011 + } + }, + { + "id": "deepseek-r1-distill-qwen-32b", + "name": "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b", + "display_name": "@cf/deepseek-ai/deepseek-r1-distill-qwen-32b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 80000, + "output": 80000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "release_date": "2025-01-20", + "last_updated": "2025-02-24", + "cost": { + "input": 0.5, + "output": 4.88 + } + }, + { + "id": "gemma-2b-it-lora", + "name": "@cf/google/gemma-2b-it-lora", + "display_name": "@cf/google/gemma-2b-it-lora", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-04-02", + "last_updated": "2024-04-02", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "una-cybertron-7b-v2-bf16", + "name": "@cf/fblgit/una-cybertron-7b-v2-bf16", + "display_name": "@cf/fblgit/una-cybertron-7b-v2-bf16", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 15000, + "output": 15000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-12-02", + "last_updated": "2024-03-08", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "m2m100-1.2b", + "name": "@cf/meta/m2m100-1.2b", + "display_name": "@cf/meta/m2m100-1.2b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2022-03-02", + "last_updated": "2023-11-16", + "cost": { + "input": 0.34, + "output": 0.34 + } + }, + { + "id": "llama-3.2-3b-instruct", + "name": "@cf/meta/llama-3.2-3b-instruct", + "display_name": "@cf/meta/llama-3.2-3b-instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-09-18", + "last_updated": "2024-10-24", + "cost": { + "input": 0.051, + "output": 0.34 + } + }, + { + "id": "qwen2.5-coder-32b-instruct", + "name": "@cf/qwen/qwen2.5-coder-32b-instruct", + "display_name": "@cf/qwen/qwen2.5-coder-32b-instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-11-06", + "last_updated": "2025-01-12", + "cost": { + "input": 0.66, + "output": 1 + } + }, + { + "id": "stable-diffusion-v1-5-img2img", + "name": "@cf/runwayml/stable-diffusion-v1-5-img2img", + "display_name": "@cf/runwayml/stable-diffusion-v1-5-img2img", + "modalities": { + "input": [ + "text" + ], + "output": [ + "image" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-02-27", + "last_updated": "2024-02-27", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "gemma-7b-it-lora", + "name": "@cf/google/gemma-7b-it-lora", + "display_name": "@cf/google/gemma-7b-it-lora", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 3500, + "output": 3500 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-04-02", + "last_updated": "2024-04-02", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen1.5-14b-chat-awq", + "name": "@cf/qwen/qwen1.5-14b-chat-awq", + "display_name": "@cf/qwen/qwen1.5-14b-chat-awq", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 7500, + "output": 7500 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-02-03", + "last_updated": "2024-04-30", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen1.5-1.8b-chat", + "name": "@cf/qwen/qwen1.5-1.8b-chat", + "display_name": "@cf/qwen/qwen1.5-1.8b-chat", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-01-30", + "last_updated": "2024-04-30", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "mistral-small-3.1-24b-instruct", + "name": "@cf/mistralai/mistral-small-3.1-24b-instruct", + "display_name": "@cf/mistralai/mistral-small-3.1-24b-instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2025-03-11", + "last_updated": "2025-07-28", + "cost": { + "input": 0.35, + "output": 0.56 + } + }, + { + "id": "gemma-7b-it", + "name": "@hf/google/gemma-7b-it", + "display_name": "@hf/google/gemma-7b-it", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-02-13", + "last_updated": "2024-08-14", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "llamaguard-7b-awq", + "name": "@hf/thebloke/llamaguard-7b-awq", + "display_name": "@hf/thebloke/llamaguard-7b-awq", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-12-11", + "last_updated": "2023-12-11", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "hermes-2-pro-mistral-7b", + "name": "@hf/nousresearch/hermes-2-pro-mistral-7b", + "display_name": "@hf/nousresearch/hermes-2-pro-mistral-7b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 24000, + "output": 24000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-03-11", + "last_updated": "2024-09-08", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "falcon-7b-instruct", + "name": "@cf/tiiuae/falcon-7b-instruct", + "display_name": "@cf/tiiuae/falcon-7b-instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-04-25", + "last_updated": "2024-10-12", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "llama-3.3-70b-instruct-fp8-fast", + "name": "@cf/meta/llama-3.3-70b-instruct-fp8-fast", + "display_name": "@cf/meta/llama-3.3-70b-instruct-fp8-fast", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 24000, + "output": 24000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-12-06", + "last_updated": "2024-12-06", + "cost": { + "input": 0.29, + "output": 2.25 + } + }, + { + "id": "llama-3-8b-instruct-awq", + "name": "@cf/meta/llama-3-8b-instruct-awq", + "display_name": "@cf/meta/llama-3-8b-instruct-awq", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-05-09", + "last_updated": "2024-05-09", + "cost": { + "input": 0.12, + "output": 0.27 + } + }, + { + "id": "phoenix-1.0", + "name": "@cf/leonardo/phoenix-1.0", + "display_name": "@cf/leonardo/phoenix-1.0", + "modalities": { + "input": [ + "text" + ], + "output": [ + "image" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "release_date": "2025-08-25", + "last_updated": "2025-08-25", + "cost": { + "input": 0.0058, + "output": 0.0058 + } + }, + { + "id": "phi-2", + "name": "@cf/microsoft/phi-2", + "display_name": "@cf/microsoft/phi-2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 2048, + "output": 2048 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-12-13", + "last_updated": "2024-04-29", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "dreamshaper-8-lcm", + "name": "@cf/lykon/dreamshaper-8-lcm", + "display_name": "@cf/lykon/dreamshaper-8-lcm", + "modalities": { + "input": [ + "text" + ], + "output": [ + "image" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": true, + "open_weights": true, + "release_date": "2023-12-06", + "last_updated": "2023-12-07", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "discolm-german-7b-v1-awq", + "name": "@cf/thebloke/discolm-german-7b-v1-awq", + "display_name": "@cf/thebloke/discolm-german-7b-v1-awq", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-01-18", + "last_updated": "2024-01-24", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "llama-2-7b-chat-int8", + "name": "@cf/meta/llama-2-7b-chat-int8", + "display_name": "@cf/meta/llama-2-7b-chat-int8", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-09-25", + "last_updated": "2023-09-25" + }, + { + "id": "llama-3.2-1b-instruct", + "name": "@cf/meta/llama-3.2-1b-instruct", + "display_name": "@cf/meta/llama-3.2-1b-instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 60000, + "output": 60000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-09-18", + "last_updated": "2024-10-24", + "cost": { + "input": 0.027, + "output": 0.2 + } + }, + { + "id": "whisper-large-v3-turbo", + "name": "@cf/openai/whisper-large-v3-turbo", + "display_name": "@cf/openai/whisper-large-v3-turbo", + "modalities": { + "input": [ + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-10-01", + "last_updated": "2024-10-04", + "cost": { + "input": 0.00051, + "output": 0.00051 + } + }, + { + "id": "llama-4-scout-17b-16e-instruct", + "name": "@cf/meta/llama-4-scout-17b-16e-instruct", + "display_name": "@cf/meta/llama-4-scout-17b-16e-instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 131000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2025-04-02", + "last_updated": "2025-05-23", + "cost": { + "input": 0.27, + "output": 0.85 + } + }, + { + "id": "starling-lm-7b-beta", + "name": "@hf/nexusflow/starling-lm-7b-beta", + "display_name": "@hf/nexusflow/starling-lm-7b-beta", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-03-19", + "last_updated": "2024-04-03", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "deepseek-coder-6.7b-base-awq", + "name": "@hf/thebloke/deepseek-coder-6.7b-base-awq", + "display_name": "@hf/thebloke/deepseek-coder-6.7b-base-awq", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-11-05", + "last_updated": "2023-11-09", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "gemma-3-12b-it", + "name": "@cf/google/gemma-3-12b-it", + "display_name": "@cf/google/gemma-3-12b-it", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 80000, + "output": 80000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2025-03-01", + "last_updated": "2025-03-21", + "cost": { + "input": 0.35, + "output": 0.56 + } + }, + { + "id": "llama-guard-3-8b", + "name": "@cf/meta/llama-guard-3-8b", + "display_name": "@cf/meta/llama-guard-3-8b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-07-22", + "last_updated": "2024-10-11", + "cost": { + "input": 0.48, + "output": 0.03 + } + }, + { + "id": "neural-chat-7b-v3-1-awq", + "name": "@hf/thebloke/neural-chat-7b-v3-1-awq", + "display_name": "@hf/thebloke/neural-chat-7b-v3-1-awq", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-11-15", + "last_updated": "2023-11-17", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "whisper-tiny-en", + "name": "@cf/openai/whisper-tiny-en", + "display_name": "@cf/openai/whisper-tiny-en", + "modalities": { + "input": [ + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2022-09-26", + "last_updated": "2024-01-22", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "stable-diffusion-xl-lightning", + "name": "@cf/bytedance/stable-diffusion-xl-lightning", + "display_name": "@cf/bytedance/stable-diffusion-xl-lightning", + "modalities": { + "input": [ + "text" + ], + "output": [ + "image" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-02-20", + "last_updated": "2024-04-03", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "mistral-7b-instruct-v0.1", + "name": "@cf/mistral/mistral-7b-instruct-v0.1", + "display_name": "@cf/mistral/mistral-7b-instruct-v0.1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 2824, + "output": 2824 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-09-27", + "last_updated": "2025-07-24", + "cost": { + "input": 0.11, + "output": 0.19 + } + }, + { + "id": "llava-1.5-7b-hf", + "name": "@cf/llava-hf/llava-1.5-7b-hf", + "display_name": "@cf/llava-hf/llava-1.5-7b-hf", + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": true, + "open_weights": true, + "release_date": "2023-12-05", + "last_updated": "2025-06-06", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "gpt-oss-20b", + "name": "@cf/openai/gpt-oss-20b", + "display_name": "@cf/openai/gpt-oss-20b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-04", + "last_updated": "2025-08-14", + "cost": { + "input": 0.2, + "output": 0.3 + } + }, + { + "id": "deepseek-math-7b-instruct", + "name": "@cf/deepseek-ai/deepseek-math-7b-instruct", + "display_name": "@cf/deepseek-ai/deepseek-math-7b-instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-02-05", + "last_updated": "2024-02-06", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "gpt-oss-120b", + "name": "@cf/openai/gpt-oss-120b", + "display_name": "@cf/openai/gpt-oss-120b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-04", + "last_updated": "2025-08-14", + "cost": { + "input": 0.35, + "output": 0.75 + } + }, + { + "id": "melotts", + "name": "@cf/myshell-ai/melotts", + "display_name": "@cf/myshell-ai/melotts", + "modalities": { + "input": [ + "text" + ], + "output": [ + "audio" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": true, + "open_weights": true, + "release_date": "2024-07-19", + "last_updated": "2024-07-19", + "cost": { + "input": 0.0002, + "output": 0 + } + }, + { + "id": "qwen1.5-7b-chat-awq", + "name": "@cf/qwen/qwen1.5-7b-chat-awq", + "display_name": "@cf/qwen/qwen1.5-7b-chat-awq", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 20000, + "output": 20000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-02-03", + "last_updated": "2024-04-30", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "llama-3.1-8b-instruct-fast", + "name": "@cf/meta/llama-3.1-8b-instruct-fast", + "display_name": "@cf/meta/llama-3.1-8b-instruct-fast", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-07-18", + "last_updated": "2024-09-25" + }, + { + "id": "nova-3", + "name": "@cf/deepgram/nova-3", + "display_name": "@cf/deepgram/nova-3", + "modalities": { + "input": [ + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2025-06-05", + "last_updated": "2025-07-08", + "cost": { + "input": 0.0052, + "output": 0.0052 + } + }, + { + "id": "llama-3.1-70b-instruct", + "name": "@cf/meta/llama-3.1-70b-instruct", + "display_name": "@cf/meta/llama-3.1-70b-instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 24000, + "output": 24000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-07-16", + "last_updated": "2024-12-15" + }, + { + "id": "qwq-32b", + "name": "@cf/qwen/qwq-32b", + "display_name": "@cf/qwen/qwq-32b", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 24000, + "output": 24000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2025-03-05", + "last_updated": "2025-03-11", + "cost": { + "input": 0.66, + "output": 1 + } + }, + { + "id": "zephyr-7b-beta-awq", + "name": "@hf/thebloke/zephyr-7b-beta-awq", + "display_name": "@hf/thebloke/zephyr-7b-beta-awq", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-10-27", + "last_updated": "2023-11-09", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "deepseek-coder-6.7b-instruct-awq", + "name": "@hf/thebloke/deepseek-coder-6.7b-instruct-awq", + "display_name": "@hf/thebloke/deepseek-coder-6.7b-instruct-awq", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2023-11-05", + "last_updated": "2023-11-13", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "llama-3.1-8b-instruct-awq", + "name": "@cf/meta/llama-3.1-8b-instruct-awq", + "display_name": "@cf/meta/llama-3.1-8b-instruct-awq", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-07-25", + "last_updated": "2024-07-25", + "cost": { + "input": 0.12, + "output": 0.27 + } + }, + { + "id": "mistral-7b-instruct-v0.2-lora", + "name": "@cf/mistral/mistral-7b-instruct-v0.2-lora", + "display_name": "@cf/mistral/mistral-7b-instruct-v0.2-lora", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 15000, + "output": 15000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-04-01", + "last_updated": "2024-04-01", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "uform-gen2-qwen-500m", + "name": "@cf/unum/uform-gen2-qwen-500m", + "display_name": "@cf/unum/uform-gen2-qwen-500m", + "modalities": { + "input": [ + "image", + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 0, + "output": 0 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2024-02-15", + "last_updated": "2024-04-24", + "cost": { + "input": 0, + "output": 0 + } + } + ] + }, + "inception": { + "id": "inception", + "name": "Inception", + "display_name": "Inception", + "api": "https://api.inceptionlabs.ai/v1/", + "doc": "https://platform.inceptionlabs.ai/docs", + "models": [ + { + "id": "mercury-coder", + "name": "Mercury Coder", + "display_name": "Mercury Coder", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2023-10", + "release_date": "2025-02-26", + "last_updated": "2025-07-31", + "cost": { + "input": 0.25, + "output": 1, + "cache_read": 0.25, + "cache_write": 1 + } + }, + { + "id": "mercury", + "name": "Mercury", + "display_name": "Mercury", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2023-10", + "release_date": "2025-06-26", + "last_updated": "2025-07-31", + "cost": { + "input": 0.25, + "output": 1, + "cache_read": 0.25, + "cache_write": 1 + } + } + ] + }, + "openai": { + "id": "openai", + "name": "OpenAI", + "display_name": "OpenAI", + "doc": "https://platform.openai.com/docs/models", + "models": [ + { + "id": "gpt-4.1-nano", + "name": "GPT-4.1 nano", + "display_name": "GPT-4.1 nano", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.03 + } + }, + { + "id": "gpt-4", + "name": "GPT-4", + "display_name": "GPT-4", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-11", + "release_date": "2023-11-06", + "last_updated": "2024-04-09", + "cost": { + "input": 30, + "output": 60 + } + }, + { + "id": "o1-pro", + "name": "o1-pro", + "display_name": "o1-pro", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2025-03-19", + "last_updated": "2025-03-19", + "cost": { + "input": 150, + "output": 600 + } + }, + { + "id": "gpt-4o-2024-05-13", + "name": "GPT-4o (2024-05-13)", + "display_name": "GPT-4o (2024-05-13)", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-05-13", + "last_updated": "2024-05-13", + "cost": { + "input": 5, + "output": 15 + } + }, + { + "id": "gpt-4o-2024-08-06", + "name": "GPT-4o (2024-08-06)", + "display_name": "GPT-4o (2024-08-06)", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-08-06", + "last_updated": "2024-08-06", + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + } + }, + { + "id": "gpt-4.1-mini", + "name": "GPT-4.1 mini", + "display_name": "GPT-4.1 mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 + } + }, + { + "id": "o3-deep-research", + "name": "o3-deep-research", + "display_name": "o3-deep-research", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2024-06-26", + "last_updated": "2024-06-26", + "cost": { + "input": 10, + "output": 40, + "cache_read": 2.5 + } + }, + { + "id": "gpt-3.5-turbo", + "name": "GPT-3.5-turbo", + "display_name": "GPT-3.5-turbo", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 16385, + "output": 4096 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2021-09-01", + "release_date": "2023-03-01", + "last_updated": "2023-11-06", + "cost": { + "input": 0.5, + "output": 1.5, + "cache_read": 1.25 + } + }, + { + "id": "gpt-4-turbo", + "name": "GPT-4 Turbo", + "display_name": "GPT-4 Turbo", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-12", + "release_date": "2023-11-06", + "last_updated": "2024-04-09", + "cost": { + "input": 10, + "output": 30 + } + }, + { + "id": "o1-preview", + "name": "o1-preview", + "display_name": "o1-preview", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32768 + }, + "temperature": true, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-09-12", + "last_updated": "2024-09-12", + "cost": { + "input": 15, + "output": 60, + "cache_read": 7.5 + } + }, + { + "id": "o3-mini", + "name": "o3-mini", + "display_name": "o3-mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2024-12-20", + "last_updated": "2025-01-29", + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 + } + }, + { + "id": "codex-mini-latest", + "name": "Codex Mini", + "display_name": "Codex Mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-05-16", + "last_updated": "2025-05-16", + "cost": { + "input": 1.5, + "output": 6, + "cache_read": 0.375 + } + }, + { + "id": "gpt-5-nano", + "name": "GPT-5 Nano", + "display_name": "GPT-5 Nano", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 0.05, + "output": 0.4, + "cache_read": 0.01 + } + }, + { + "id": "gpt-5-codex", + "name": "GPT-5-Codex", + "display_name": "GPT-5-Codex", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-09-15", + "last_updated": "2025-09-15" + }, + { + "id": "gpt-4o", + "name": "GPT-4o", + "display_name": "GPT-4o", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-05-13", + "last_updated": "2024-08-06", + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + } + }, + { + "id": "gpt-4.1", + "name": "GPT-4.1", + "display_name": "GPT-4.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + } + }, + { + "id": "o4-mini", + "name": "o4-mini", + "display_name": "o4-mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.28 + } + }, + { + "id": "o1", + "name": "o1", + "display_name": "o1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-12-05", + "last_updated": "2024-12-05", + "cost": { + "input": 15, + "output": 60, + "cache_read": 7.5 + } + }, + { + "id": "gpt-5-mini", + "name": "GPT-5 Mini", + "display_name": "GPT-5 Mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.03 + } + }, + { + "id": "o1-mini", + "name": "o1-mini", + "display_name": "o1-mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 65536 + }, + "temperature": false, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-09-12", + "last_updated": "2024-09-12", + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.55 + } + }, + { + "id": "o3-pro", + "name": "o3-pro", + "display_name": "o3-pro", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-06-10", + "last_updated": "2025-06-10", + "cost": { + "input": 20, + "output": 80 + } + }, + { + "id": "gpt-4o-2024-11-20", + "name": "GPT-4o (2024-11-20)", + "display_name": "GPT-4o (2024-11-20)", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-11-20", + "last_updated": "2024-11-20", + "cost": { + "input": 2.5, + "output": 10, + "cache_read": 1.25 + } + }, + { + "id": "o3", + "name": "o3", + "display_name": "o3", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + } + }, + { + "id": "o4-mini-deep-research", + "name": "o4-mini-deep-research", + "display_name": "o4-mini-deep-research", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05", + "release_date": "2024-06-26", + "last_updated": "2024-06-26", + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + } + }, + { + "id": "gpt-5-chat-latest", + "name": "GPT-5 Chat (latest)", + "display_name": "GPT-5 Chat (latest)", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": true, + "tool_call": false, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 1.25, + "output": 10 + } + }, + { + "id": "gpt-4o-mini", + "name": "GPT-4o mini", + "display_name": "GPT-4o mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-09", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.08 + } + }, + { + "id": "gpt-5", + "name": "GPT-5", + "display_name": "GPT-5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.13 + } + } + ] + }, + "zhipuai-coding-plan": { + "id": "zhipuai-coding-plan", + "name": "Zhipu AI Coding Plan", + "display_name": "Zhipu AI Coding Plan", + "api": "https://open.bigmodel.cn/api/coding/paas/v4", + "doc": "https://docs.bigmodel.cn/cn/coding-plan/overview", + "models": [ + { + "id": "glm-4.6", + "name": "GLM-4.6", + "display_name": "GLM-4.6", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 204800, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-09-30", + "last_updated": "2025-09-30", + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + } + }, + { + "id": "glm-4.5v", + "name": "GLM 4.5V", + "display_name": "GLM 4.5V", + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 64000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-08-11", + "last_updated": "2025-08-11", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "glm-4.5-air", + "name": "GLM-4.5-Air", + "display_name": "GLM-4.5-Air", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 98304 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + } + }, + { + "id": "glm-4.5", + "name": "GLM-4.5", + "display_name": "GLM-4.5", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 98304 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + } + }, + { + "id": "glm-4.5-flash", + "name": "GLM-4.5-Flash", + "display_name": "GLM-4.5-Flash", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 98304 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + } + } + ] + }, + "perplexity": { + "id": "perplexity", + "name": "Perplexity", + "display_name": "Perplexity", + "doc": "https://docs.perplexity.ai", + "models": [ + { + "id": "sonar-reasoning", + "name": "Sonar Reasoning", + "display_name": "Sonar Reasoning", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2025-09-01", + "release_date": "2024-01-01", + "last_updated": "2025-09-01", + "cost": { + "input": 1, + "output": 5 + } + }, + { + "id": "sonar", + "name": "Sonar", + "display_name": "Sonar", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2025-09-01", + "release_date": "2024-01-01", + "last_updated": "2025-09-01", + "cost": { + "input": 1, + "output": 1 + } + }, + { + "id": "sonar-pro", + "name": "Sonar Pro", + "display_name": "Sonar Pro", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2025-09-01", + "release_date": "2024-01-01", + "last_updated": "2025-09-01", + "cost": { + "input": 3, + "output": 15 + } + }, + { + "id": "sonar-reasoning-pro", + "name": "Sonar Reasoning Pro", + "display_name": "Sonar Reasoning Pro", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": false, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-09-01", + "release_date": "2024-01-01", + "last_updated": "2025-09-01", + "cost": { + "input": 2, + "output": 8 + } + } + ] + }, + "openrouter": { + "id": "openrouter", + "name": "OpenRouter", + "display_name": "OpenRouter", + "api": "https://openrouter.ai/api/v1", + "doc": "https://openrouter.ai/models", + "models": [ + { + "id": "moonshotai/kimi-k2", + "name": "Kimi K2", + "display_name": "Kimi K2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-07-11", + "last_updated": "2025-07-11", + "cost": { + "input": 0.55, + "output": 2.2 + } + }, + { + "id": "moonshotai/kimi-k2-0905", + "name": "Kimi K2 Instruct 0905", + "display_name": "Kimi K2 Instruct 0905", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-09-05", + "last_updated": "2025-09-05", + "cost": { + "input": 0.6, + "output": 2.5 + } + }, + { + "id": "moonshotai/kimi-dev-72b:free", + "name": "Kimi Dev 72b (free)", + "display_name": "Kimi Dev 72b (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-06", + "release_date": "2025-06-16", + "last_updated": "2025-06-16", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "moonshotai/kimi-k2:free", + "name": "Kimi K2 (free)", + "display_name": "Kimi K2 (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32800, + "output": 32800 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-11", + "last_updated": "2025-07-11", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "thudm/glm-z1-32b:free", + "name": "GLM Z1 32B (free)", + "display_name": "GLM Z1 32B (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04-17", + "last_updated": "2025-04-17", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "nousresearch/hermes-4-70b", + "name": "Hermes 4 70B", + "display_name": "Hermes 4 70B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2025-08-25", + "last_updated": "2025-08-25", + "cost": { + "input": 0.13, + "output": 0.4 + } + }, + { + "id": "nousresearch/hermes-4-405b", + "name": "Hermes 4 405B", + "display_name": "Hermes 4 405B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2025-08-25", + "last_updated": "2025-08-25", + "cost": { + "input": 1, + "output": 3 + } + }, + { + "id": "nousresearch/deephermes-3-llama-3-8b-preview", + "name": "DeepHermes 3 Llama 3 8B Preview", + "display_name": "DeepHermes 3 Llama 3 8B Preview", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2025-02-28", + "last_updated": "2025-02-28", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "x-ai/grok-4", + "name": "Grok 4", + "display_name": "Grok 4", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-07-09", + "last_updated": "2025-07-09", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.75, + "cache_write": 15 + } + }, + { + "id": "x-ai/grok-code-fast-1", + "name": "Grok Code Fast 1", + "display_name": "Grok Code Fast 1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 10000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2025-08", + "release_date": "2025-08-26", + "last_updated": "2025-08-26", + "cost": { + "input": 0.2, + "output": 1.5, + "cache_read": 0.02 + } + }, + { + "id": "x-ai/grok-4-fast:free", + "name": "Grok 4 Fast (free)", + "display_name": "Grok 4 Fast (free)", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 2000000, + "output": 2000000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-08-19", + "last_updated": "2025-08-19", + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + } + }, + { + "id": "x-ai/grok-3", + "name": "Grok 3", + "display_name": "Grok 3", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.75, + "cache_write": 15 + } + }, + { + "id": "x-ai/grok-4-fast", + "name": "Grok 4 Fast", + "display_name": "Grok 4 Fast", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 2000000, + "output": 30000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-08-19", + "last_updated": "2025-08-19", + "cost": { + "input": 0.2, + "output": 0.5, + "cache_read": 0.05, + "cache_write": 0.05 + } + }, + { + "id": "x-ai/grok-3-beta", + "name": "Grok 3 Beta", + "display_name": "Grok 3 Beta", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.75, + "cache_write": 15 + } + }, + { + "id": "x-ai/grok-3-mini-beta", + "name": "Grok 3 Mini Beta", + "display_name": "Grok 3 Mini Beta", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", + "cost": { + "input": 0.3, + "output": 0.5, + "cache_read": 0.075, + "cache_write": 0.5 + } + }, + { + "id": "x-ai/grok-3-mini", + "name": "Grok 3 Mini", + "display_name": "Grok 3 Mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-11", + "release_date": "2025-02-17", + "last_updated": "2025-02-17", + "cost": { + "input": 0.3, + "output": 0.5, + "cache_read": 0.075, + "cache_write": 0.5 + } + }, + { + "id": "cognitivecomputations/dolphin3.0-mistral-24b", + "name": "Dolphin3.0 Mistral 24B", + "display_name": "Dolphin3.0 Mistral 24B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-02-13", + "last_updated": "2025-02-13", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "cognitivecomputations/dolphin3.0-r1-mistral-24b", + "name": "Dolphin3.0 R1 Mistral 24B", + "display_name": "Dolphin3.0 R1 Mistral 24B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-02-13", + "last_updated": "2025-02-13", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "deepseek/deepseek-chat-v3.1", + "name": "DeepSeek-V3.1", + "display_name": "DeepSeek-V3.1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 163840, + "output": 163840 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2025-08-21", + "last_updated": "2025-08-21", + "cost": { + "input": 0.2, + "output": 0.8 + } + }, + { + "id": "deepseek/deepseek-r1:free", + "name": "R1 (free)", + "display_name": "R1 (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 163840, + "output": 163840 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-01", + "release_date": "2025-01-20", + "last_updated": "2025-01-20", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "deepseek/deepseek-v3-base:free", + "name": "DeepSeek V3 Base (free)", + "display_name": "DeepSeek V3 Base (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 163840, + "output": 163840 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-03", + "release_date": "2025-03-29", + "last_updated": "2025-03-29", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "deepseek/deepseek-v3.1-terminus", + "name": "DeepSeek V3.1 Terminus", + "display_name": "DeepSeek V3.1 Terminus", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2025-09-22", + "last_updated": "2025-09-22", + "cost": { + "input": 0.27, + "output": 1 + } + }, + { + "id": "deepseek/deepseek-r1-0528-qwen3-8b:free", + "name": "Deepseek R1 0528 Qwen3 8B (free)", + "display_name": "Deepseek R1 0528 Qwen3 8B (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-05-29", + "last_updated": "2025-05-29", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "deepseek/deepseek-chat-v3-0324", + "name": "DeepSeek V3 0324", + "display_name": "DeepSeek V3 0324", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 16384, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-03-24", + "last_updated": "2025-03-24", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "deepseek/deepseek-r1-0528:free", + "name": "R1 0528 (free)", + "display_name": "R1 0528 (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 163840, + "output": 163840 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-05-28", + "last_updated": "2025-05-28", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "deepseek/deepseek-r1-distill-llama-70b", + "name": "DeepSeek R1 Distill Llama 70B", + "display_name": "DeepSeek R1 Distill Llama 70B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-01-23", + "last_updated": "2025-01-23", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "deepseek/deepseek-r1-distill-qwen-14b", + "name": "DeepSeek R1 Distill Qwen 14B", + "display_name": "DeepSeek R1 Distill Qwen 14B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 64000, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-01-29", + "last_updated": "2025-01-29", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "featherless/qwerky-72b", + "name": "Qwerky 72B", + "display_name": "Qwerky 72B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-03-20", + "last_updated": "2025-03-20", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "tngtech/deepseek-r1t2-chimera:free", + "name": "DeepSeek R1T2 Chimera (free)", + "display_name": "DeepSeek R1T2 Chimera (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 163840, + "output": 163840 + }, + "temperature": true, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2025-07-08", + "last_updated": "2025-07-08", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "google/gemini-2.0-flash-001", + "name": "Gemini 2.0 Flash", + "display_name": "Gemini 2.0 Flash", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-06", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", + "cost": { + "input": 0.1, + "output": 0.4, + "cache_read": 0.025 + } + }, + { + "id": "google/gemma-2-9b-it:free", + "name": "Gemma 2 9B (free)", + "display_name": "Gemma 2 9B (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-06", + "release_date": "2024-06-28", + "last_updated": "2024-06-28", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "google/gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "display_name": "Gemini 2.5 Flash", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-07-17", + "last_updated": "2025-07-17", + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.0375 + } + }, + { + "id": "google/gemini-2.5-pro-preview-05-06", + "name": "Gemini 2.5 Pro Preview 05-06", + "display_name": "Gemini 2.5 Pro Preview 05-06", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-05-06", + "last_updated": "2025-05-06", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + } + }, + { + "id": "google/gemma-3n-e4b-it", + "name": "Gemma 3n E4B IT", + "display_name": "Gemma 3n E4B IT", + "modalities": { + "input": [ + "text", + "image", + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-05-20", + "last_updated": "2025-05-20", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "google/gemini-2.5-pro-preview-06-05", + "name": "Gemini 2.5 Pro Preview 06-05", + "display_name": "Gemini 2.5 Pro Preview 06-05", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-06-05", + "last_updated": "2025-06-05", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + } + }, + { + "id": "google/gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "display_name": "Gemini 2.5 Pro", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-03-20", + "last_updated": "2025-06-05", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31 + } + }, + { + "id": "google/gemma-3-12b-it", + "name": "Gemma 3 12B IT", + "display_name": "Gemma 3 12B IT", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 96000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-03-13", + "last_updated": "2025-03-13", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "google/gemma-3n-e4b-it:free", + "name": "Gemma 3n 4B (free)", + "display_name": "Gemma 3n 4B (free)", + "modalities": { + "input": [ + "text", + "image", + "audio" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-05-20", + "last_updated": "2025-05-20", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "google/gemini-2.0-flash-exp:free", + "name": "Gemini 2.0 Flash Experimental (free)", + "display_name": "Gemini 2.0 Flash Experimental (free)", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 1048576 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-12", + "release_date": "2024-12-11", + "last_updated": "2024-12-11", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "google/gemma-3-27b-it", + "name": "Gemma 3 27B IT", + "display_name": "Gemma 3 27B IT", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 96000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-03-12", + "last_updated": "2025-03-12", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "microsoft/mai-ds-r1:free", + "name": "MAI DS R1 (free)", + "display_name": "MAI DS R1 (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 163840, + "output": 163840 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04-21", + "last_updated": "2025-04-21", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openai/gpt-4.1-mini", + "name": "GPT-4.1 Mini", + "display_name": "GPT-4.1 Mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 + } + }, + { + "id": "openai/gpt-5-chat", + "name": "GPT-5 Chat (latest)", + "display_name": "GPT-5 Chat (latest)", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": true, + "tool_call": false, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 1.25, + "output": 10 + } + }, + { + "id": "openai/gpt-5-nano", + "name": "GPT-5 Nano", + "display_name": "GPT-5 Nano", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10-01", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 0.05, + "output": 0.4 + } + }, + { + "id": "openai/gpt-5-codex", + "name": "GPT-5 Codex", + "display_name": "GPT-5 Codex", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10-01", + "release_date": "2025-09-15", + "last_updated": "2025-09-15", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.125 + } + }, + { + "id": "openai/gpt-4.1", + "name": "GPT-4.1", + "display_name": "GPT-4.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + } + }, + { + "id": "openai/o4-mini", + "name": "o4 Mini", + "display_name": "o4 Mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-06", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.28 + } + }, + { + "id": "openai/gpt-5-mini", + "name": "GPT-5 Mini", + "display_name": "GPT-5 Mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10-01", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 0.25, + "output": 2 + } + }, + { + "id": "openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "display_name": "GPT OSS 20B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 0.05, + "output": 0.2 + } + }, + { + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 0.072, + "output": 0.28 + } + }, + { + "id": "openai/gpt-4o-mini", + "name": "GPT-4o-mini", + "display_name": "GPT-4o-mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.08 + } + }, + { + "id": "openai/gpt-5", + "name": "GPT-5", + "display_name": "GPT-5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10-01", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 1.25, + "output": 10 + } + }, + { + "id": "openrouter/horizon-alpha", + "name": "Horizon Alpha", + "display_name": "Horizon Alpha", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-07-30", + "last_updated": "2025-07-30", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openrouter/sonoma-sky-alpha", + "name": "Sonoma Sky Alpha", + "display_name": "Sonoma Sky Alpha", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 2000000, + "output": 2000000 + }, + "temperature": false, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "release_date": "2024-09-05", + "last_updated": "2024-09-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openrouter/cypher-alpha:free", + "name": "Cypher Alpha (free)", + "display_name": "Cypher Alpha (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1000000, + "output": 1000000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-07-01", + "last_updated": "2025-07-01", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openrouter/sonoma-dusk-alpha", + "name": "Sonoma Dusk Alpha", + "display_name": "Sonoma Dusk Alpha", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 2000000, + "output": 2000000 + }, + "temperature": false, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "release_date": "2024-09-05", + "last_updated": "2024-09-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "openrouter/horizon-beta", + "name": "Horizon Beta", + "display_name": "Horizon Beta", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2025-07", + "release_date": "2025-08-01", + "last_updated": "2025-08-01", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "z-ai/glm-4.5", + "name": "GLM 4.5", + "display_name": "GLM 4.5", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 96000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", + "cost": { + "input": 0.6, + "output": 2.2 + } + }, + { + "id": "z-ai/glm-4.5-air", + "name": "GLM 4.5 Air", + "display_name": "GLM 4.5 Air", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 96000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", + "cost": { + "input": 0.2, + "output": 1.1 + } + }, + { + "id": "z-ai/glm-4.5v", + "name": "GLM 4.5V", + "display_name": "GLM 4.5V", + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 64000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-08-11", + "last_updated": "2025-08-11", + "cost": { + "input": 0.6, + "output": 1.8 + } + }, + { + "id": "z-ai/glm-4.5-air:free", + "name": "GLM 4.5 Air (free)", + "display_name": "GLM 4.5 Air (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 96000 + }, + "temperature": true, + "tool_call": false, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen/qwen3-coder", + "name": "Qwen3 Coder", + "display_name": "Qwen3 Coder", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 66536 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", + "cost": { + "input": 0.3, + "output": 1.2 + } + }, + { + "id": "qwen/qwen3-32b:free", + "name": "Qwen3 32B (free)", + "display_name": "Qwen3 32B (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 40960, + "output": 40960 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04-28", + "last_updated": "2025-04-28", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen/qwen3-next-80b-a3b-instruct", + "name": "Qwen3 Next 80B A3B Instruct", + "display_name": "Qwen3 Next 80B A3B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-09-11", + "last_updated": "2025-09-11", + "cost": { + "input": 0.14, + "output": 1.4 + } + }, + { + "id": "qwen/qwen-2.5-coder-32b-instruct", + "name": "Qwen2.5 Coder 32B Instruct", + "display_name": "Qwen2.5 Coder 32B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2024-11-11", + "last_updated": "2024-11-11", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen/qwen3-235b-a22b:free", + "name": "Qwen3 235B A22B (free)", + "display_name": "Qwen3 235B A22B (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04-28", + "last_updated": "2025-04-28", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen/qwq-32b:free", + "name": "QwQ 32B (free)", + "display_name": "QwQ 32B (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-03", + "release_date": "2025-03-05", + "last_updated": "2025-03-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen/qwen3-30b-a3b:free", + "name": "Qwen3 30B A3B (free)", + "display_name": "Qwen3 30B A3B (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 40960, + "output": 40960 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04-28", + "last_updated": "2025-04-28", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen/qwen2.5-vl-72b-instruct", + "name": "Qwen2.5 VL 72B Instruct", + "display_name": "Qwen2.5 VL 72B Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-02-01", + "last_updated": "2025-02-01", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen/qwen3-14b:free", + "name": "Qwen3 14B (free)", + "display_name": "Qwen3 14B (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 40960, + "output": 40960 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04-28", + "last_updated": "2025-04-28", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen/qwen3-30b-a3b-instruct-2507", + "name": "Qwen3 30B A3B Instruct 2507", + "display_name": "Qwen3 30B A3B Instruct 2507", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 33000 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-29", + "last_updated": "2025-07-29", + "cost": { + "input": 0.2, + "output": 0.8 + } + }, + { + "id": "qwen/qwen3-235b-a22b-thinking-2507", + "name": "Qwen3 235B A22B Thinking 2507", + "display_name": "Qwen3 235B A22B Thinking 2507", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 81920 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-25", + "last_updated": "2025-07-25", + "cost": { + "input": 0.078, + "output": 0.312 + } + }, + { + "id": "qwen/qwen2.5-vl-32b-instruct:free", + "name": "Qwen2.5 VL 32B Instruct (free)", + "display_name": "Qwen2.5 VL 32B Instruct (free)", + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2025-03", + "release_date": "2025-03-24", + "last_updated": "2025-03-24", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen/qwen2.5-vl-72b-instruct:free", + "name": "Qwen2.5 VL 72B Instruct (free)", + "display_name": "Qwen2.5 VL 72B Instruct (free)", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2025-02", + "release_date": "2025-02-01", + "last_updated": "2025-02-01", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen/qwen3-235b-a22b-07-25:free", + "name": "Qwen3 235B A22B Instruct 2507 (free)", + "display_name": "Qwen3 235B A22B Instruct 2507 (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04-28", + "last_updated": "2025-07-21", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen/qwen3-coder:free", + "name": "Qwen3 Coder 480B A35B Instruct (free)", + "display_name": "Qwen3 Coder 480B A35B Instruct (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 66536 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen/qwen3-235b-a22b-07-25", + "name": "Qwen3 235B A22B Instruct 2507", + "display_name": "Qwen3 235B A22B Instruct 2507", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04-28", + "last_updated": "2025-07-21", + "cost": { + "input": 0.15, + "output": 0.85 + } + }, + { + "id": "qwen/qwen3-8b:free", + "name": "Qwen3 8B (free)", + "display_name": "Qwen3 8B (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 40960, + "output": 40960 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04-28", + "last_updated": "2025-04-28", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen/qwen3-max", + "name": "Qwen3 Max", + "display_name": "Qwen3 Max", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "release_date": "2025-09-05", + "last_updated": "2025-09-05", + "cost": { + "input": 1.2, + "output": 6 + } + }, + { + "id": "mistralai/devstral-medium-2507", + "name": "Devstral Medium", + "display_name": "Devstral Medium", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-07-10", + "last_updated": "2025-07-10", + "cost": { + "input": 0.4, + "output": 2 + } + }, + { + "id": "mistralai/codestral-2508", + "name": "Codestral 2508", + "display_name": "Codestral 2508", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 256000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-08-01", + "last_updated": "2025-08-01", + "cost": { + "input": 0.3, + "output": 0.9 + } + }, + { + "id": "mistralai/mistral-7b-instruct:free", + "name": "Mistral 7B Instruct (free)", + "display_name": "Mistral 7B Instruct (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-05", + "release_date": "2024-05-27", + "last_updated": "2024-05-27", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "mistralai/devstral-small-2505", + "name": "Devstral Small", + "display_name": "Devstral Small", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-05-07", + "last_updated": "2025-05-07", + "cost": { + "input": 0.06, + "output": 0.12 + } + }, + { + "id": "mistralai/mistral-small-3.2-24b-instruct", + "name": "Mistral Small 3.2 24B Instruct", + "display_name": "Mistral Small 3.2 24B Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 96000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-06-20", + "last_updated": "2025-06-20", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "mistralai/devstral-small-2505:free", + "name": "Devstral Small 2505 (free)", + "display_name": "Devstral Small 2505 (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-05-21", + "last_updated": "2025-05-21", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "mistralai/mistral-small-3.2-24b-instruct:free", + "name": "Mistral Small 3.2 24B (free)", + "display_name": "Mistral Small 3.2 24B (free)", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 96000, + "output": 96000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2025-06", + "release_date": "2025-06-20", + "last_updated": "2025-06-20", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "mistralai/mistral-medium-3", + "name": "Mistral Medium 3", + "display_name": "Mistral Medium 3", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2025-05", + "release_date": "2025-05-07", + "last_updated": "2025-05-07", + "cost": { + "input": 0.4, + "output": 2 + } + }, + { + "id": "mistralai/mistral-small-3.1-24b-instruct", + "name": "Mistral Small 3.1 24B Instruct", + "display_name": "Mistral Small 3.1 24B Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-03-17", + "last_updated": "2025-03-17", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "mistralai/devstral-small-2507", + "name": "Devstral Small 1.1", + "display_name": "Devstral Small 1.1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-07-10", + "last_updated": "2025-07-10", + "cost": { + "input": 0.1, + "output": 0.3 + } + }, + { + "id": "mistralai/mistral-medium-3.1", + "name": "Mistral Medium 3.1", + "display_name": "Mistral Medium 3.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 262144 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2025-05", + "release_date": "2025-08-12", + "last_updated": "2025-08-12", + "cost": { + "input": 0.4, + "output": 2 + } + }, + { + "id": "mistralai/mistral-nemo:free", + "name": "Mistral Nemo (free)", + "display_name": "Mistral Nemo (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-07", + "release_date": "2024-07-19", + "last_updated": "2024-07-19", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "rekaai/reka-flash-3", + "name": "Reka Flash 3", + "display_name": "Reka Flash 3", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-03-12", + "last_updated": "2025-03-12", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "meta-llama/llama-3.2-11b-vision-instruct", + "name": "Llama 3.2 11B Vision Instruct", + "display_name": "Llama 3.2 11B Vision Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 8192 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "meta-llama/llama-3.3-70b-instruct:free", + "name": "Llama 3.3 70B Instruct (free)", + "display_name": "Llama 3.3 70B Instruct (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 65536, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "meta-llama/llama-4-scout:free", + "name": "Llama 4 Scout (free)", + "display_name": "Llama 4 Scout (free)", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 64000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "anthropic/claude-opus-4", + "name": "Claude Opus 4", + "display_name": "Claude Opus 4", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + { + "id": "anthropic/claude-opus-4.1", + "name": "Claude Opus 4.1", + "display_name": "Claude Opus 4.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + { + "id": "anthropic/claude-3.7-sonnet", + "name": "Claude Sonnet 3.7", + "display_name": "Claude Sonnet 3.7", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 128000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-01", + "release_date": "2025-02-19", + "last_updated": "2025-02-19", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + { + "id": "anthropic/claude-3.5-haiku", + "name": "Claude Haiku 3.5", + "display_name": "Claude Haiku 3.5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-07-31", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + { + "id": "anthropic/claude-sonnet-4", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "anthropic/claude-sonnet-4.5", + "name": "Claude Sonnet 4.5", + "display_name": "Claude Sonnet 4.5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-07-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "sarvamai/sarvam-m:free", + "name": "Sarvam-M (free)", + "display_name": "Sarvam-M (free)", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32768, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-05-25", + "last_updated": "2025-05-25", + "cost": { + "input": 0, + "output": 0 + } + } + ] + }, + "v0": { + "id": "v0", + "name": "v0", + "display_name": "v0", + "doc": "https://sdk.vercel.ai/providers/ai-sdk-providers/vercel", + "models": [ + { + "id": "v0-1.5-lg", + "name": "v0-1.5-lg", + "display_name": "v0-1.5-lg", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 512000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "release_date": "2025-06-09", + "last_updated": "2025-06-09", + "cost": { + "input": 15, + "output": 75 + } + }, + { + "id": "v0-1.5-md", + "name": "v0-1.5-md", + "display_name": "v0-1.5-md", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "release_date": "2025-06-09", + "last_updated": "2025-06-09", + "cost": { + "input": 3, + "output": 15 + } + }, + { + "id": "v0-1.0-md", + "name": "v0-1.0-md", + "display_name": "v0-1.0-md", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 3, + "output": 15 + } + } + ] + }, + "synthetic": { + "id": "synthetic", + "name": "Synthetic", + "display_name": "Synthetic", + "api": "https://api.synthetic.new/v1", + "doc": "https://synthetic.new/pricing", + "models": [ + { + "id": "hf:openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 0.1, + "output": 0.1 + } + } + ] + }, + "zhipuai": { + "id": "zhipuai", + "name": "Zhipu AI", + "display_name": "Zhipu AI", + "api": "https://open.bigmodel.cn/api/paas/v4", + "doc": "https://docs.z.ai/guides/overview/pricing", + "models": [ + { + "id": "glm-4.6", + "name": "GLM-4.6", + "display_name": "GLM-4.6", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 204800, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-09-30", + "last_updated": "2025-09-30", + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 + } + }, + { + "id": "glm-4.5v", + "name": "GLM 4.5V", + "display_name": "GLM 4.5V", + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 64000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-08-11", + "last_updated": "2025-08-11", + "cost": { + "input": 0.6, + "output": 1.8 + } + }, + { + "id": "glm-4.5-air", + "name": "GLM-4.5-Air", + "display_name": "GLM-4.5-Air", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 98304 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", + "cost": { + "input": 0.2, + "output": 1.1, + "cache_read": 0.03, + "cache_write": 0 + } + }, + { + "id": "glm-4.5", + "name": "GLM-4.5", + "display_name": "GLM-4.5", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 98304 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 + } + }, + { + "id": "glm-4.5-flash", + "name": "GLM-4.5-Flash", + "display_name": "GLM-4.5-Flash", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 98304 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + } + } + ] + }, + "submodel": { + "id": "submodel", + "name": "submodel", + "display_name": "submodel", + "api": "https://llm.submodel.ai/v1", + "doc": "https://submodel.gitbook.io", + "models": [ + { + "id": "openai/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-23", + "last_updated": "2025-08-23", + "cost": { + "input": 0.1, + "output": 0.5 + } + } + ] + }, + "zai": { + "id": "zai", + "name": "Z.AI", + "display_name": "Z.AI", + "api": "https://api.z.ai/api/paas/v4", + "doc": "https://docs.z.ai/guides/overview/pricing", + "models": [ + { + "id": "glm-4.5-flash", + "name": "GLM-4.5-Flash", + "display_name": "GLM-4.5-Flash", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 98304 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", + "cost": { + "input": 0, + "output": 0, + "cache_read": 0, + "cache_write": 0 + } + }, + { + "id": "glm-4.5", + "name": "GLM-4.5", + "display_name": "GLM-4.5", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 98304 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 + } + }, + { + "id": "glm-4.5-air", + "name": "GLM-4.5-Air", + "display_name": "GLM-4.5-Air", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 98304 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-28", + "last_updated": "2025-07-28", + "cost": { + "input": 0.2, + "output": 1.1, + "cache_read": 0.03, + "cache_write": 0 + } + }, + { + "id": "glm-4.5v", + "name": "GLM 4.5V", + "display_name": "GLM 4.5V", + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 64000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-08-11", + "last_updated": "2025-08-11", + "cost": { + "input": 0.6, + "output": 1.8 + } + }, + { + "id": "glm-4.6", + "name": "GLM-4.6", + "display_name": "GLM-4.6", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 204800, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-09-30", + "last_updated": "2025-09-30", + "cost": { + "input": 0.6, + "output": 2.2, + "cache_read": 0.11, + "cache_write": 0 + } + } + ] + }, + "inference": { + "id": "inference", + "name": "Inference", + "display_name": "Inference", + "api": "https://inference.net/v1", + "doc": "https://inference.net/models", + "models": [ + { + "id": "mistral/mistral-nemo-12b-instruct", + "name": "Mistral Nemo 12B Instruct", + "display_name": "Mistral Nemo 12B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 16000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", + "cost": { + "input": 0.038, + "output": 0.1 + } + }, + { + "id": "google/gemma-3", + "name": "Google Gemma 3", + "display_name": "Google Gemma 3", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 125000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", + "cost": { + "input": 0.15, + "output": 0.3 + } + }, + { + "id": "osmosis/osmosis-structure-0.6b", + "name": "Osmosis Structure 0.6B", + "display_name": "Osmosis Structure 0.6B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4000, + "output": 2048 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", + "cost": { + "input": 0.1, + "output": 0.5 + } + }, + { + "id": "qwen/qwen3-embedding-4b", + "name": "Qwen 3 Embedding 4B", + "display_name": "Qwen 3 Embedding 4B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32000, + "output": 2048 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", + "cost": { + "input": 0.01, + "output": 0 + } + }, + { + "id": "qwen/qwen-2.5-7b-vision-instruct", + "name": "Qwen 2.5 7B Vision Instruct", + "display_name": "Qwen 2.5 7B Vision Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 125000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", + "cost": { + "input": 0.2, + "output": 0.2 + } + }, + { + "id": "meta/llama-3.2-11b-vision-instruct", + "name": "Llama 3.2 11B Vision Instruct", + "display_name": "Llama 3.2 11B Vision Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 16000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", + "cost": { + "input": 0.055, + "output": 0.055 + } + }, + { + "id": "meta/llama-3.1-8b-instruct", + "name": "Llama 3.1 8B Instruct", + "display_name": "Llama 3.1 8B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 16000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", + "cost": { + "input": 0.025, + "output": 0.025 + } + }, + { + "id": "meta/llama-3.2-3b-instruct", + "name": "Llama 3.2 3B Instruct", + "display_name": "Llama 3.2 3B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 16000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", + "cost": { + "input": 0.02, + "output": 0.02 + } + }, + { + "id": "meta/llama-3.2-1b-instruct", + "name": "Llama 3.2 1B Instruct", + "display_name": "Llama 3.2 1B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 16000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2025-01-01", + "last_updated": "2025-01-01", + "cost": { + "input": 0.01, + "output": 0.01 + } + } + ] + }, + "requesty": { + "id": "requesty", + "name": "Requesty", + "display_name": "Requesty", + "api": "https://router.requesty.ai/v1", + "doc": "https://requesty.ai/solution/llm-routing/models", + "models": [ + { + "id": "google/gemini-2.5-flash", + "name": "Gemini 2.5 Flash", + "display_name": "Gemini 2.5 Flash", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", + "cost": { + "input": 0.3, + "output": 2.5, + "cache_read": 0.075, + "cache_write": 0.55 + } + }, + { + "id": "google/gemini-2.5-pro", + "name": "Gemini 2.5 Pro", + "display_name": "Gemini 2.5 Pro", + "modalities": { + "input": [ + "text", + "image", + "audio", + "video", + "pdf" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1048576, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-01", + "release_date": "2025-06-17", + "last_updated": "2025-06-17", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.31, + "cache_write": 2.375 + } + }, + { + "id": "openai/gpt-4.1-mini", + "name": "GPT-4.1 Mini", + "display_name": "GPT-4.1 Mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 0.4, + "output": 1.6, + "cache_read": 0.1 + } + }, + { + "id": "openai/gpt-5-nano", + "name": "GPT-5 Nano", + "display_name": "GPT-5 Nano", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 16000, + "output": 4000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 0.05, + "output": 0.4, + "cache_read": 0.01 + } + }, + { + "id": "openai/gpt-4.1", + "name": "GPT-4.1", + "display_name": "GPT-4.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1047576, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-04-14", + "last_updated": "2025-04-14", + "cost": { + "input": 2, + "output": 8, + "cache_read": 0.5 + } + }, + { + "id": "openai/o4-mini", + "name": "o4 Mini", + "display_name": "o4 Mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 100000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-06", + "release_date": "2025-04-16", + "last_updated": "2025-04-16", + "cost": { + "input": 1.1, + "output": 4.4, + "cache_read": 0.28 + } + }, + { + "id": "openai/gpt-5-mini", + "name": "GPT-5 Mini", + "display_name": "GPT-5 Mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-05-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 0.25, + "output": 2, + "cache_read": 0.03 + } + }, + { + "id": "openai/gpt-4o-mini", + "name": "GPT-4o Mini", + "display_name": "GPT-4o Mini", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-07-18", + "last_updated": "2024-07-18", + "cost": { + "input": 0.15, + "output": 0.6, + "cache_read": 0.08 + } + }, + { + "id": "openai/gpt-5", + "name": "GPT-5", + "display_name": "GPT-5", + "modalities": { + "input": [ + "text", + "audio", + "image", + "video" + ], + "output": [ + "text", + "audio", + "image" + ] + }, + "limit": { + "context": 400000, + "output": 128000 + }, + "temperature": false, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-09-30", + "release_date": "2025-08-07", + "last_updated": "2025-08-07", + "cost": { + "input": 1.25, + "output": 10, + "cache_read": 0.13 + } + }, + { + "id": "anthropic/claude-opus-4", + "name": "Claude Opus 4", + "display_name": "Claude Opus 4", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + { + "id": "anthropic/claude-3-7-sonnet", + "name": "Claude Sonnet 3.7", + "display_name": "Claude Sonnet 3.7", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-01", + "release_date": "2025-02-19", + "last_updated": "2025-02-19", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "anthropic/claude-4-sonnet-20250522", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "anthropic/claude-opus-4-1-20250805", + "name": "Claude Opus 4.1", + "display_name": "Claude Opus 4.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + } + ] + }, + "morph": { + "id": "morph", + "name": "Morph", + "display_name": "Morph", + "api": "https://api.morphllm.com/v1", + "doc": "https://docs.morphllm.com/api-reference/introduction", + "models": [ + { + "id": "morph-v3-large", + "name": "Morph v3 Large", + "display_name": "Morph v3 Large", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32000, + "output": 32000 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "release_date": "2024-08-15", + "last_updated": "2024-08-15", + "cost": { + "input": 0.9, + "output": 1.9 + } + }, + { + "id": "auto", + "name": "Auto", + "display_name": "Auto", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 32000, + "output": 32000 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "release_date": "2024-06-01", + "last_updated": "2024-06-01", + "cost": { + "input": 0.85, + "output": 1.55 + } + }, + { + "id": "morph-v3-fast", + "name": "Morph v3 Fast", + "display_name": "Morph v3 Fast", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 16000, + "output": 16000 + }, + "temperature": false, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "release_date": "2024-08-15", + "last_updated": "2024-08-15", + "cost": { + "input": 0.8, + "output": 1.2 + } + } + ] + }, + "lmstudio": { + "id": "lmstudio", + "name": "LMStudio", + "display_name": "LMStudio", + "api": "http://127.0.0.1:1234/v1", + "doc": "https://lmstudio.ai/models", + "models": [ + { + "id": "openai/gpt-oss-20b", + "name": "GPT OSS 20B", + "display_name": "GPT OSS 20B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen/qwen3-30b-a3b-2507", + "name": "Qwen3 30B A3B 2507", + "display_name": "Qwen3 30B A3B 2507", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-30", + "last_updated": "2025-07-30", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "qwen/qwen3-coder-30b", + "name": "Qwen3 Coder 30B", + "display_name": "Qwen3 Coder 30B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 262144, + "output": 65536 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", + "cost": { + "input": 0, + "output": 0 + } + } + ] + }, + "anthropic": { + "id": "anthropic", + "name": "Anthropic", + "display_name": "Anthropic", + "doc": "https://docs.anthropic.com/en/docs/about-claude/models", + "models": [ + { + "id": "claude-3-5-sonnet-20241022", + "name": "Claude Sonnet 3.5 v2", + "display_name": "Claude Sonnet 3.5 v2", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04-30", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "claude-3-5-sonnet-20240620", + "name": "Claude Sonnet 3.5", + "display_name": "Claude Sonnet 3.5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04-30", + "release_date": "2024-06-20", + "last_updated": "2024-06-20", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "claude-3-opus-20240229", + "name": "Claude Opus 3", + "display_name": "Claude Opus 3", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-08-31", + "release_date": "2024-02-29", + "last_updated": "2024-02-29", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + { + "id": "claude-sonnet-4-5-20250929", + "name": "Claude Sonnet 4.5", + "display_name": "Claude Sonnet 4.5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1000000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-07-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", + "cost": { + "input": 3, + "output": 15, + "reasoning": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "claude-sonnet-4-20250514", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "claude-opus-4-20250514", + "name": "Claude Opus 4", + "display_name": "Claude Opus 4", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + { + "id": "claude-3-5-haiku-20241022", + "name": "Claude Haiku 3.5", + "display_name": "Claude Haiku 3.5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-07-31", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + }, + { + "id": "claude-3-haiku-20240307", + "name": "Claude Haiku 3", + "display_name": "Claude Haiku 3", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-08-31", + "release_date": "2024-03-13", + "last_updated": "2024-03-13", + "cost": { + "input": 0.25, + "output": 1.25, + "cache_read": 0.03, + "cache_write": 0.3 + } + }, + { + "id": "claude-3-7-sonnet-20250219", + "name": "Claude Sonnet 3.7", + "display_name": "Claude Sonnet 3.7", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10-31", + "release_date": "2025-02-19", + "last_updated": "2025-02-19", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "claude-opus-4-1-20250805", + "name": "Claude Opus 4.1", + "display_name": "Claude Opus 4.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + { + "id": "claude-3-sonnet-20240229", + "name": "Claude Sonnet 3", + "display_name": "Claude Sonnet 3", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-08-31", + "release_date": "2024-03-04", + "last_updated": "2024-03-04", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 0.3 + } + } + ] + }, + "fireworks-ai": { + "id": "fireworks-ai", + "name": "Fireworks AI", + "display_name": "Fireworks AI", + "api": "https://api.fireworks.ai/inference/v1/", + "doc": "https://fireworks.ai/docs/", + "models": [ + { + "id": "accounts/fireworks/models/deepseek-r1-0528", + "name": "Deepseek R1 05/28", + "display_name": "Deepseek R1 05/28", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 160000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-05", + "release_date": "2025-05-28", + "last_updated": "2025-05-28", + "cost": { + "input": 3, + "output": 8 + } + }, + { + "id": "accounts/fireworks/models/deepseek-v3p1", + "name": "DeepSeek V3.1", + "display_name": "DeepSeek V3.1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 163840, + "output": 163840 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-07", + "release_date": "2025-08-21", + "last_updated": "2025-08-21", + "cost": { + "input": 0.56, + "output": 1.68 + } + }, + { + "id": "accounts/fireworks/models/deepseek-v3-0324", + "name": "Deepseek V3 03-24", + "display_name": "Deepseek V3 03-24", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 160000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-03-24", + "last_updated": "2025-03-24", + "cost": { + "input": 0.9, + "output": 0.9 + } + }, + { + "id": "accounts/fireworks/models/kimi-k2-instruct", + "name": "Kimi K2 Instruct", + "display_name": "Kimi K2 Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-10", + "release_date": "2025-07-11", + "last_updated": "2025-07-11", + "cost": { + "input": 1, + "output": 3 + } + }, + { + "id": "accounts/fireworks/models/qwen3-235b-a22b", + "name": "Qwen3 235B-A22B", + "display_name": "Qwen3 235B-A22B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-04-29", + "last_updated": "2025-04-29", + "cost": { + "input": 0.22, + "output": 0.88 + } + }, + { + "id": "accounts/fireworks/models/gpt-oss-20b", + "name": "GPT OSS 20B", + "display_name": "GPT OSS 20B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 0.05, + "output": 0.2 + } + }, + { + "id": "accounts/fireworks/models/gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 0.15, + "output": 0.6 + } + }, + { + "id": "accounts/fireworks/models/glm-4p5-air", + "name": "GLM 4.5 Air", + "display_name": "GLM 4.5 Air", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-08-01", + "last_updated": "2025-08-01", + "cost": { + "input": 0.22, + "output": 0.88 + } + }, + { + "id": "accounts/fireworks/models/qwen3-coder-480b-a35b-instruct", + "name": "Qwen3 Coder 480B A35B Instruct", + "display_name": "Qwen3 Coder 480B A35B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "release_date": "2025-07-22", + "last_updated": "2025-07-22", + "cost": { + "input": 0.45, + "output": 1.8 + } + }, + { + "id": "accounts/fireworks/models/glm-4p5", + "name": "GLM 4.5", + "display_name": "GLM 4.5", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 131072 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-29", + "last_updated": "2025-07-29", + "cost": { + "input": 0.55, + "output": 2.19 + } + } + ] + }, + "llama": { + "id": "llama", + "name": "Llama", + "display_name": "Llama", + "api": "https://api.llama.com/compat/v1/", + "doc": "https://llama.developer.meta.com/docs/models", + "models": [ + { + "id": "llama-3.3-8b-instruct", + "name": "Llama-3.3-8B-Instruct", + "display_name": "Llama-3.3-8B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "llama-4-maverick-17b-128e-instruct-fp8", + "name": "Llama-4-Maverick-17B-128E-Instruct-FP8", + "display_name": "Llama-4-Maverick-17B-128E-Instruct-FP8", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "llama-3.3-70b-instruct", + "name": "Llama-3.3-70B-Instruct", + "display_name": "Llama-3.3-70B-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "llama-4-scout-17b-16e-instruct-fp8", + "name": "Llama-4-Scout-17B-16E-Instruct-FP8", + "display_name": "Llama-4-Scout-17B-16E-Instruct-FP8", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "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", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2025-01", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "cerebras-llama-4-scout-17b-16e-instruct", + "name": "Cerebras-Llama-4-Scout-17B-16E-Instruct", + "display_name": "Cerebras-Llama-4-Scout-17B-16E-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2025-01", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0, + "output": 0 + } + }, + { + "id": "cerebras-llama-4-maverick-17b-128e-instruct", + "name": "Cerebras-Llama-4-Maverick-17B-128E-Instruct", + "display_name": "Cerebras-Llama-4-Maverick-17B-128E-Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2025-01", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0, + "output": 0 + } + } + ] + }, + "amazon-bedrock": { + "id": "amazon-bedrock", + "name": "Amazon Bedrock", + "display_name": "Amazon Bedrock", + "doc": "https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html", + "models": [ + { + "id": "cohere.command-r-plus-v1:0", + "name": "Command R+", + "display_name": "Command R+", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2024-04-04", + "last_updated": "2024-04-04", + "cost": { + "input": 3, + "output": 15 + } + }, + { + "id": "anthropic.claude-v2", + "name": "Claude 2", + "display_name": "Claude 2", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 100000, + "output": 4096 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2023-08", + "release_date": "2023-07-11", + "last_updated": "2023-07-11", + "cost": { + "input": 8, + "output": 24 + } + }, + { + "id": "anthropic.claude-3-7-sonnet-20250219-v1:0", + "name": "Claude Sonnet 3.7", + "display_name": "Claude Sonnet 3.7", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-02-19", + "last_updated": "2025-02-19", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "anthropic.claude-sonnet-4-20250514-v1:0", + "name": "Claude Sonnet 4", + "display_name": "Claude Sonnet 4", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "meta.llama3-2-11b-instruct-v1:0", + "name": "Llama 3.2 11B Instruct", + "display_name": "Llama 3.2 11B Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", + "cost": { + "input": 0.16, + "output": 0.16 + } + }, + { + "id": "anthropic.claude-3-haiku-20240307-v1:0", + "name": "Claude Haiku 3", + "display_name": "Claude Haiku 3", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-02", + "release_date": "2024-03-13", + "last_updated": "2024-03-13", + "cost": { + "input": 0.25, + "output": 1.25 + } + }, + { + "id": "meta.llama3-2-90b-instruct-v1:0", + "name": "Llama 3.2 90B Instruct", + "display_name": "Llama 3.2 90B Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", + "cost": { + "input": 0.72, + "output": 0.72 + } + }, + { + "id": "meta.llama3-2-1b-instruct-v1:0", + "name": "Llama 3.2 1B Instruct", + "display_name": "Llama 3.2 1B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", + "cost": { + "input": 0.1, + "output": 0.1 + } + }, + { + "id": "anthropic.claude-v2:1", + "name": "Claude 2.1", + "display_name": "Claude 2.1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 4096 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2023-08", + "release_date": "2023-11-21", + "last_updated": "2023-11-21", + "cost": { + "input": 8, + "output": 24 + } + }, + { + "id": "cohere.command-light-text-v14", + "name": "Command Light", + "display_name": "Command Light", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 4096 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-08", + "release_date": "2023-11-01", + "last_updated": "2023-11-01", + "cost": { + "input": 0.3, + "output": 0.6 + } + }, + { + "id": "ai21.jamba-1-5-large-v1:0", + "name": "Jamba 1.5 Large", + "display_name": "Jamba 1.5 Large", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2024-08-15", + "last_updated": "2024-08-15", + "cost": { + "input": 2, + "output": 8 + } + }, + { + "id": "meta.llama3-3-70b-instruct-v1:0", + "name": "Llama 3.3 70B Instruct", + "display_name": "Llama 3.3 70B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-12-06", + "last_updated": "2024-12-06", + "cost": { + "input": 0.72, + "output": 0.72 + } + }, + { + "id": "anthropic.claude-3-opus-20240229-v1:0", + "name": "Claude Opus 3", + "display_name": "Claude Opus 3", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-08", + "release_date": "2024-02-29", + "last_updated": "2024-02-29", + "cost": { + "input": 15, + "output": 75 + } + }, + { + "id": "amazon.nova-pro-v1:0", + "name": "Nova Pro", + "display_name": "Nova Pro", + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 300000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-12-03", + "last_updated": "2024-12-03", + "cost": { + "input": 0.8, + "output": 3.2, + "cache_read": 0.2 + } + }, + { + "id": "meta.llama3-1-8b-instruct-v1:0", + "name": "Llama 3.1 8B Instruct", + "display_name": "Llama 3.1 8B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", + "cost": { + "input": 0.22, + "output": 0.22 + } + }, + { + "id": "anthropic.claude-3-5-sonnet-20240620-v1:0", + "name": "Claude Sonnet 3.5", + "display_name": "Claude Sonnet 3.5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2024-06-20", + "last_updated": "2024-06-20", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "cohere.command-r-v1:0", + "name": "Command R", + "display_name": "Command R", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-04", + "release_date": "2024-03-11", + "last_updated": "2024-03-11", + "cost": { + "input": 0.5, + "output": 1.5 + } + }, + { + "id": "amazon.nova-micro-v1:0", + "name": "Nova Micro", + "display_name": "Nova Micro", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-12-03", + "last_updated": "2024-12-03", + "cost": { + "input": 0.035, + "output": 0.14, + "cache_read": 0.00875 + } + }, + { + "id": "meta.llama3-1-70b-instruct-v1:0", + "name": "Llama 3.1 70B Instruct", + "display_name": "Llama 3.1 70B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", + "cost": { + "input": 0.72, + "output": 0.72 + } + }, + { + "id": "meta.llama3-70b-instruct-v1:0", + "name": "Llama 3 70B Instruct", + "display_name": "Llama 3 70B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 2048 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", + "cost": { + "input": 2.65, + "output": 3.5 + } + }, + { + "id": "deepseek.r1-v1:0", + "name": "DeepSeek-R1", + "display_name": "DeepSeek-R1", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 128000, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": false, + "knowledge": "2024-07", + "release_date": "2025-01-20", + "last_updated": "2025-05-29", + "cost": { + "input": 1.35, + "output": 5.4 + } + }, + { + "id": "anthropic.claude-3-5-sonnet-20241022-v2:0", + "name": "Claude Sonnet 3.5 v2", + "display_name": "Claude Sonnet 3.5 v2", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", + "cost": { + "input": 3, + "output": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "cohere.command-text-v14", + "name": "Command", + "display_name": "Command", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 4096, + "output": 4096 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-08", + "release_date": "2023-11-01", + "last_updated": "2023-11-01", + "cost": { + "input": 1.5, + "output": 2 + } + }, + { + "id": "anthropic.claude-opus-4-20250514-v1:0", + "name": "Claude Opus 4", + "display_name": "Claude Opus 4", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-04", + "release_date": "2025-05-22", + "last_updated": "2025-05-22", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + { + "id": "anthropic.claude-sonnet-4-5-20250929-v1:0", + "name": "Claude Sonnet 4.5", + "display_name": "Claude Sonnet 4.5", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 64000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-07-31", + "release_date": "2025-09-29", + "last_updated": "2025-09-29", + "cost": { + "input": 3, + "output": 15, + "reasoning": 15, + "cache_read": 0.3, + "cache_write": 3.75 + } + }, + { + "id": "meta.llama3-2-3b-instruct-v1:0", + "name": "Llama 3.2 3B Instruct", + "display_name": "Llama 3.2 3B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-12", + "release_date": "2024-09-25", + "last_updated": "2024-09-25", + "cost": { + "input": 0.15, + "output": 0.15 + } + }, + { + "id": "anthropic.claude-instant-v1", + "name": "Claude Instant", + "display_name": "Claude Instant", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 100000, + "output": 4096 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": false, + "knowledge": "2023-08", + "release_date": "2023-03-01", + "last_updated": "2023-03-01", + "cost": { + "input": 0.8, + "output": 2.4 + } + }, + { + "id": "amazon.nova-premier-v1:0", + "name": "Nova Premier", + "display_name": "Nova Premier", + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1000000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-12-03", + "last_updated": "2024-12-03", + "cost": { + "input": 2.5, + "output": 12.5 + } + }, + { + "id": "anthropic.claude-opus-4-1-20250805-v1:0", + "name": "Claude Opus 4.1", + "display_name": "Claude Opus 4.1", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": true, + "open_weights": false, + "knowledge": "2025-03-31", + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 15, + "output": 75, + "cache_read": 1.5, + "cache_write": 18.75 + } + }, + { + "id": "meta.llama4-scout-17b-instruct-v1:0", + "name": "Llama 4 Scout 17B Instruct", + "display_name": "Llama 4 Scout 17B Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 3500000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0.17, + "output": 0.66 + } + }, + { + "id": "ai21.jamba-1-5-mini-v1:0", + "name": "Jamba 1.5 Mini", + "display_name": "Jamba 1.5 Mini", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 256000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2024-08-15", + "last_updated": "2024-08-15", + "cost": { + "input": 0.2, + "output": 0.4 + } + }, + { + "id": "meta.llama3-8b-instruct-v1:0", + "name": "Llama 3 8B Instruct", + "display_name": "Llama 3 8B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 8192, + "output": 2048 + }, + "temperature": true, + "tool_call": false, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2023-03", + "release_date": "2024-07-23", + "last_updated": "2024-07-23", + "cost": { + "input": 0.3, + "output": 0.6 + } + }, + { + "id": "anthropic.claude-3-sonnet-20240229-v1:0", + "name": "Claude Sonnet 3", + "display_name": "Claude Sonnet 3", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 4096 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2023-08", + "release_date": "2024-03-04", + "last_updated": "2024-03-04", + "cost": { + "input": 3, + "output": 15 + } + }, + { + "id": "meta.llama4-maverick-17b-instruct-v1:0", + "name": "Llama 4 Maverick 17B Instruct", + "display_name": "Llama 4 Maverick 17B Instruct", + "modalities": { + "input": [ + "text", + "image" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 1000000, + "output": 16384 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": true, + "knowledge": "2024-08", + "release_date": "2025-04-05", + "last_updated": "2025-04-05", + "cost": { + "input": 0.24, + "output": 0.97 + } + }, + { + "id": "amazon.nova-lite-v1:0", + "name": "Nova Lite", + "display_name": "Nova Lite", + "modalities": { + "input": [ + "text", + "image", + "video" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 300000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-10", + "release_date": "2024-12-03", + "last_updated": "2024-12-03", + "cost": { + "input": 0.06, + "output": 0.24, + "cache_read": 0.015 + } + }, + { + "id": "anthropic.claude-3-5-haiku-20241022-v1:0", + "name": "Claude Haiku 3.5", + "display_name": "Claude Haiku 3.5", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 200000, + "output": 8192 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": true, + "open_weights": false, + "knowledge": "2024-07", + "release_date": "2024-10-22", + "last_updated": "2024-10-22", + "cost": { + "input": 0.8, + "output": 4, + "cache_read": 0.08, + "cache_write": 1 + } + } + ] + }, + "cerebras": { + "id": "cerebras", + "name": "Cerebras", + "display_name": "Cerebras", + "doc": "https://inference-docs.cerebras.ai/models/overview", + "models": [ + { + "id": "qwen-3-235b-a22b-instruct-2507", + "name": "Qwen 3 235B Instruct", + "display_name": "Qwen 3 235B Instruct", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-22", + "last_updated": "2025-07-22", + "cost": { + "input": 0.6, + "output": 1.2 + } + }, + { + "id": "qwen-3-coder-480b", + "name": "Qwen 3 Coder 480B", + "display_name": "Qwen 3 Coder 480B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131000, + "output": 32000 + }, + "temperature": true, + "tool_call": true, + "reasoning": false, + "attachment": false, + "open_weights": true, + "knowledge": "2025-04", + "release_date": "2025-07-23", + "last_updated": "2025-07-23", + "cost": { + "input": 2, + "output": 2 + } + }, + { + "id": "gpt-oss-120b", + "name": "GPT OSS 120B", + "display_name": "GPT OSS 120B", + "modalities": { + "input": [ + "text" + ], + "output": [ + "text" + ] + }, + "limit": { + "context": 131072, + "output": 32768 + }, + "temperature": true, + "tool_call": true, + "reasoning": true, + "attachment": false, + "open_weights": true, + "release_date": "2025-08-05", + "last_updated": "2025-08-05", + "cost": { + "input": 0.25, + "output": 0.69 + } + } + ] + }, + "ollama": { + "id": "ollama", + "name": "Ollama", + "display_name": "Ollama", + "models": [ + { + "id": "gpt-oss:20b", + "name": "GPT-OSS 20B", + "display_name": "GPT-OSS 20B" + }, + { + "id": "gpt-oss:120b", + "name": "GPT-OSS 120B", + "display_name": "GPT-OSS 120B" + }, + { + "id": "deepseek-r1:1.5b", + "name": "DeepSeek R1 1.5B", + "display_name": "DeepSeek R1 1.5B" + }, + { + "id": "deepseek-r1:7b", + "name": "DeepSeek R1 7B", + "display_name": "DeepSeek R1 7B" + }, + { + "id": "deepseek-r1:8b", + "name": "DeepSeek R1 8B", + "display_name": "DeepSeek R1 8B" + }, + { + "id": "deepseek-r1:14b", + "name": "DeepSeek R1 14B", + "display_name": "DeepSeek R1 14B" + }, + { + "id": "deepseek-r1:32b", + "name": "DeepSeek R1 32B", + "display_name": "DeepSeek R1 32B" + }, + { + "id": "deepseek-r1:70b", + "name": "DeepSeek R1 70B", + "display_name": "DeepSeek R1 70B" + }, + { + "id": "deepseek-r1:671b", + "name": "DeepSeek R1 671B", + "display_name": "DeepSeek R1 671B" + }, + { + "id": "deepseek-v3:671b", + "name": "DeepSeek V3 671B", + "display_name": "DeepSeek V3 671B" + }, + { + "id": "deepseek-v2.5:236b", + "name": "DeepSeek V2.5 236B", + "display_name": "DeepSeek V2.5 236B" + }, + { + "id": "gemma3:1b", + "name": "Gemma3 1B", + "display_name": "Gemma3 1B" + }, + { + "id": "gemma3:4b", + "name": "Gemma3 4B", + "display_name": "Gemma3 4B" + }, + { + "id": "gemma3:12b", + "name": "Gemma3 12B", + "display_name": "Gemma3 12B" + }, + { + "id": "gemma3:27b", + "name": "Gemma3 27B", + "display_name": "Gemma3 27B" + } + ] + }, + "siliconflow": { + "id": "siliconflow", + "name": "SiliconFlow", + "display_name": "SiliconFlow", + "models": [ + { + "id": "deepseek-r1:32b", + "name": "DeepSeek R1 32B", + "display_name": "DeepSeek R1 32B" + }, + { + "id": "deepseek-v2.5:236b", + "name": "DeepSeek V2.5 236B", + "display_name": "DeepSeek V2.5 236B" + }, + { + "id": "deepseek-r1:7b", + "name": "DeepSeek R1 7B", + "display_name": "DeepSeek R1 7B" + }, + { + "id": "gpt-oss:120b", + "name": "GPT-OSS 120B", + "display_name": "GPT-OSS 120B" + }, + { + "id": "gemma3:1b", + "name": "Gemma3 1B", + "display_name": "Gemma3 1B" + }, + { + "id": "deepseek-r1:70b", + "name": "DeepSeek R1 70B", + "display_name": "DeepSeek R1 70B" + }, + { + "id": "deepseek-r1:14b", + "name": "DeepSeek R1 14B", + "display_name": "DeepSeek R1 14B" + }, + { + "id": "gemma3:27b", + "name": "Gemma3 27B", + "display_name": "Gemma3 27B" + }, + { + "id": "gemma3:12b", + "name": "Gemma3 12B", + "display_name": "Gemma3 12B" + }, + { + "id": "gpt-oss:20b", + "name": "GPT-OSS 20B", + "display_name": "GPT-OSS 20B" + }, + { + "id": "deepseek-r1:671b", + "name": "DeepSeek R1 671B", + "display_name": "DeepSeek R1 671B" + }, + { + "id": "gemma3:4b", + "name": "Gemma3 4B", + "display_name": "Gemma3 4B" + }, + { + "id": "deepseek-r1:8b", + "name": "DeepSeek R1 8B", + "display_name": "DeepSeek R1 8B" + }, + { + "id": "deepseek-r1:1.5b", + "name": "DeepSeek R1 1.5B", + "display_name": "DeepSeek R1 1.5B" + }, + { + "id": "deepseek-v3:671b", + "name": "DeepSeek V3 671B", + "display_name": "DeepSeek V3 671B" + } + ] + }, + "ppinfra": { + "id": "ppinfra", + "name": "PPInfra", + "display_name": "PPInfra", + "models": [ + { + "id": "baichuan/baichuan-m2-32b", + "name": "BaiChuan M2 32B", + "display_name": "BaiChuan M2 32B", + "tool_call": false, + "reasoning": true + }, + { + "id": "deepseek/deepseek-prover-v2-671b", + "name": "Deepseek Prover V2 671B", + "display_name": "Deepseek Prover V2 671B", + "tool_call": false, + "reasoning": false + }, + { + "id": "deepseek/deepseek-r1/community", + "name": "DeepSeek R1 (Community)", + "display_name": "DeepSeek R1 (Community)", + "tool_call": true, + "reasoning": true + }, + { + "id": "deepseek/deepseek-r1-turbo", + "name": "DeepSeek R1 (Turbo)", + "display_name": "DeepSeek R1 (Turbo)", + "tool_call": true, + "reasoning": true + }, + { + "id": "deepseek/deepseek-r1-distill-llama-70b", + "name": "DeepSeek R1 Distill Llama 70B", + "display_name": "DeepSeek R1 Distill Llama 70B", + "tool_call": false, + "reasoning": true + }, + { + "id": "deepseek/deepseek-v3/community", + "name": "DeepSeek V3 (Community)", + "display_name": "DeepSeek V3 (Community)", + "tool_call": true, + "reasoning": false + }, + { + "id": "deepseek/deepseek-v3-turbo", + "name": "DeepSeek V3 (Turbo)", + "display_name": "DeepSeek V3 (Turbo)", + "tool_call": true, + "reasoning": false + }, + { + "id": "deepseek/deepseek-v3-0324", + "name": "DeepSeek V3 0324", + "display_name": "DeepSeek V3 0324", + "tool_call": true, + "reasoning": false + }, + { + "id": "deepseek/deepseek-v3.1", + "name": "Deepseek V3.1", + "display_name": "Deepseek V3.1", + "tool_call": true, + "reasoning": true + }, + { + "id": "deepseek/deepseek-v3.1-terminus", + "name": "Deepseek V3.1 Terminus", + "display_name": "Deepseek V3.1 Terminus", + "tool_call": true, + "reasoning": true + }, + { + "id": "deepseek/deepseek-v3.2-exp", + "name": "Deepseek V3.2 Exp", + "display_name": "Deepseek V3.2 Exp", + "tool_call": true, + "reasoning": true + }, + { + "id": "deepseek/deepseek-r1-0528-qwen3-8b", + "name": "DeepSeek-R1-0528-Qwen3-8B", + "display_name": "DeepSeek-R1-0528-Qwen3-8B", + "tool_call": false, + "reasoning": true + }, + { + "id": "deepseek/deepseek-r1-distill-llama-8b", + "name": "DeepSeek: DeepSeek R1 Distill Llama 8B", + "display_name": "DeepSeek: DeepSeek R1 Distill Llama 8B", + "tool_call": false, + "reasoning": true + }, + { + "id": "deepseek/deepseek-r1-distill-qwen-14b", + "name": "DeepSeek: DeepSeek R1 Distill Qwen 14B", + "display_name": "DeepSeek: DeepSeek R1 Distill Qwen 14B", + "tool_call": false, + "reasoning": true + }, + { + "id": "deepseek/deepseek-r1-distill-qwen-32b", + "name": "DeepSeek: DeepSeek R1 Distill Qwen 32B", + "display_name": "DeepSeek: DeepSeek R1 Distill Qwen 32B", + "tool_call": false, + "reasoning": true + }, + { + "id": "deepseek/deepseek-r1-0528", + "name": "deepseek/deepseek-r1-0528", + "display_name": "deepseek/deepseek-r1-0528", + "tool_call": true, + "reasoning": true + }, + { + "id": "baidu/ernie-4.5-0.3b", + "name": "ERNIE-4.5-0.3B", + "display_name": "ERNIE-4.5-0.3B", + "tool_call": true, + "reasoning": false + }, + { + "id": "baidu/ernie-4.5-300b-a47b-paddle", + "name": "ERNIE-4.5-300B-A47B", + "display_name": "ERNIE-4.5-300B-A47B", + "tool_call": true, + "reasoning": false + }, + { + "id": "baidu/ernie-4.5-vl-28b-a3b", + "name": "ERNIE-4.5-VL-28B-A3B", + "display_name": "ERNIE-4.5-VL-28B-A3B", + "tool_call": true, + "reasoning": true + }, + { + "id": "baidu/ernie-4.5-vl-424b-a47b", + "name": "ERNIE-4.5-VL-424B-A47B", + "display_name": "ERNIE-4.5-VL-424B-A47B", + "tool_call": true, + "reasoning": true + }, + { + "id": "thudm/glm-4.1v-9b-thinking", + "name": "GLM 4.1V 9B Thinking", + "display_name": "GLM 4.1V 9B Thinking", + "tool_call": false, + "reasoning": true + }, + { + "id": "zai-org/glm-4.5v", + "name": "GLM 4.5V", + "display_name": "GLM 4.5V", + "tool_call": true, + "reasoning": true + }, + { + "id": "zai-org/glm-4.6", + "name": "GLM 4.6", + "display_name": "GLM 4.6", + "tool_call": true, + "reasoning": true + }, + { + "id": "zai-org/glm-4.5", + "name": "GLM-4.5", + "display_name": "GLM-4.5", + "tool_call": true, + "reasoning": true + }, + { + "id": "kat-coder", + "name": "KAT-Coder", + "display_name": "KAT-Coder", + "tool_call": false, + "reasoning": false + }, + { + "id": "moonshotai/kimi-k2-0905", + "name": "Kimi K2 0905", + "display_name": "Kimi K2 0905", + "tool_call": true, + "reasoning": false + }, + { + "id": "moonshotai/kimi-k2-instruct", + "name": "Kimi K2 Instruct", + "display_name": "Kimi K2 Instruct", + "tool_call": true, + "reasoning": false + }, + { + "id": "kwaipilot/kat-dev", + "name": "Kwaipilot-Kat-Dev", + "display_name": "Kwaipilot-Kat-Dev", + "tool_call": true, + "reasoning": false + }, + { + "id": "minimaxai/minimax-m1-80k", + "name": "MiniMaxAI/MiniMax-M1-80k", + "display_name": "MiniMaxAI/MiniMax-M1-80k", + "tool_call": true, + "reasoning": true + }, + { + "id": "qwen/qwen2.5-7b-instruct", + "name": "Qwen 2.5 7B Instruct", + "display_name": "Qwen 2.5 7B Instruct", + "tool_call": true, + "reasoning": false + }, + { + "id": "qwen/qwen2.5-32b-instruct", + "name": "Qwen2.5 32B Instruct", + "display_name": "Qwen2.5 32B Instruct", + "tool_call": true, + "reasoning": false + }, + { + "id": "qwen/qwen-2.5-72b-instruct", + "name": "Qwen2.5 72B Instruct", + "display_name": "Qwen2.5 72B Instruct", + "tool_call": true, + "reasoning": false + }, + { + "id": "qwen/qwen2.5-vl-72b-instruct", + "name": "Qwen2.5 VL 72B Instruct", + "display_name": "Qwen2.5 VL 72B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-235b-a22b-instruct-2507", + "name": "Qwen3 235B A22B Instruct 2507", + "display_name": "Qwen3 235B A22B Instruct 2507", + "tool_call": true, + "reasoning": false + }, + { + "id": "qwen/qwen3-235b-a22b-thinking-2507", + "name": "Qwen3 235B A22b Thinking 2507", + "display_name": "Qwen3 235B A22b Thinking 2507", + "tool_call": true, + "reasoning": true + }, + { + "id": "qwen/qwen3-32b-fp8", + "name": "Qwen3 32B", + "display_name": "Qwen3 32B", + "tool_call": false, + "reasoning": true + }, + { + "id": "qwen/qwen3-4b-fp8", + "name": "Qwen3 4B", + "display_name": "Qwen3 4B", + "tool_call": false, + "reasoning": true + }, + { + "id": "qwen/qwen3-8b-fp8", + "name": "Qwen3 8B", + "display_name": "Qwen3 8B", + "tool_call": false, + "reasoning": true + }, + { + "id": "qwen/qwen3-coder-480b-a35b-instruct", + "name": "Qwen3 Coder 480B A35B Instruct", + "display_name": "Qwen3 Coder 480B A35B Instruct", + "tool_call": true, + "reasoning": false + }, + { + "id": "qwen/qwen3-next-80b-a3b-instruct", + "name": "Qwen3 Next 80B A3B Instruct", + "display_name": "Qwen3 Next 80B A3B Instruct", + "tool_call": true, + "reasoning": false + }, + { + "id": "qwen/qwen3-next-80b-a3b-thinking", + "name": "Qwen3 Next 80B A3B Thinking", + "display_name": "Qwen3 Next 80B A3B Thinking", + "tool_call": true, + "reasoning": true + }, + { + "id": "qwen/qwen3-vl-235b-a22b-instruct", + "name": "Qwen3 VL 235B A22B Instruct", + "display_name": "Qwen3 VL 235B A22B Instruct", + "tool_call": true, + "reasoning": false + }, + { + "id": "qwen/qwen3-vl-235b-a22b-thinking", + "name": "Qwen3 VL 235B A22B Thinking", + "display_name": "Qwen3 VL 235B A22B Thinking", + "tool_call": false, + "reasoning": true + }, + { + "id": "qwen/qwen3-235b-a22b-fp8", + "name": "Qwen3-235B-A22B", + "display_name": "Qwen3-235B-A22B", + "tool_call": false, + "reasoning": true + }, + { + "id": "qwen/qwen3-30b-a3b-fp8", + "name": "Qwen3-30B-A3B", + "display_name": "Qwen3-30B-A3B", + "tool_call": false, + "reasoning": true + }, + { + "id": "thudm/glm-4-32b-0414", + "name": "THUDM/GLM-4-32B-0414", + "display_name": "THUDM/GLM-4-32B-0414", + "tool_call": true, + "reasoning": false + } + ] + }, + "tokenflux": { + "id": "tokenflux", + "name": "Tokenflux", + "display_name": "Tokenflux", + "models": [ + { + "id": "agentica-org/deepcoder-14b-preview", + "name": "Agentica: Deepcoder 14B Preview", + "display_name": "Agentica: Deepcoder 14B Preview", + "tool_call": false, + "reasoning": false + }, + { + "id": "ai21/jamba-large-1.7", + "name": "AI21: Jamba Large 1.7", + "display_name": "AI21: Jamba Large 1.7", + "tool_call": false, + "reasoning": false + }, + { + "id": "ai21/jamba-mini-1.7", + "name": "AI21: Jamba Mini 1.7", + "display_name": "AI21: Jamba Mini 1.7", + "tool_call": false, + "reasoning": false + }, + { + "id": "aion-labs/aion-1.0", + "name": "AionLabs: Aion-1.0", + "display_name": "AionLabs: Aion-1.0", + "tool_call": false, + "reasoning": false + }, + { + "id": "aion-labs/aion-1.0-mini", + "name": "AionLabs: Aion-1.0-Mini", + "display_name": "AionLabs: Aion-1.0-Mini", + "tool_call": false, + "reasoning": false + }, + { + "id": "aion-labs/aion-rp-llama-3.1-8b", + "name": "AionLabs: Aion-RP 1.0 (8B)", + "display_name": "AionLabs: Aion-RP 1.0 (8B)", + "tool_call": false, + "reasoning": false + }, + { + "id": "alfredpros/codellama-7b-instruct-solidity", + "name": "AlfredPros: CodeLLaMa 7B Instruct Solidity", + "display_name": "AlfredPros: CodeLLaMa 7B Instruct Solidity", + "tool_call": false, + "reasoning": false + }, + { + "id": "allenai/molmo-7b-d", + "name": "AllenAI: Molmo 7B D", + "display_name": "AllenAI: Molmo 7B D", + "tool_call": false, + "reasoning": false + }, + { + "id": "allenai/olmo-2-0325-32b-instruct", + "name": "AllenAI: Olmo 2 32B Instruct", + "display_name": "AllenAI: Olmo 2 32B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "amazon/nova-lite-v1", + "name": "Amazon: Nova Lite 1.0", + "display_name": "Amazon: Nova Lite 1.0", + "tool_call": false, + "reasoning": false + }, + { + "id": "amazon/nova-micro-v1", + "name": "Amazon: Nova Micro 1.0", + "display_name": "Amazon: Nova Micro 1.0", + "tool_call": false, + "reasoning": false + }, + { + "id": "amazon/nova-pro-v1", + "name": "Amazon: Nova Pro 1.0", + "display_name": "Amazon: Nova Pro 1.0", + "tool_call": false, + "reasoning": false + }, + { + "id": "anthropic/claude-3-haiku", + "name": "Anthropic: Claude 3 Haiku", + "display_name": "Anthropic: Claude 3 Haiku", + "tool_call": false, + "reasoning": false + }, + { + "id": "anthropic/claude-3-opus", + "name": "Anthropic: Claude 3 Opus", + "display_name": "Anthropic: Claude 3 Opus", + "tool_call": false, + "reasoning": false + }, + { + "id": "anthropic/claude-3.5-haiku", + "name": "Anthropic: Claude 3.5 Haiku", + "display_name": "Anthropic: Claude 3.5 Haiku", + "tool_call": false, + "reasoning": false + }, + { + "id": "anthropic/claude-3.5-haiku-20241022", + "name": "Anthropic: Claude 3.5 Haiku (2024-10-22)", + "display_name": "Anthropic: Claude 3.5 Haiku (2024-10-22)", + "tool_call": false, + "reasoning": false + }, + { + "id": "anthropic/claude-3.5-sonnet", + "name": "Anthropic: Claude 3.5 Sonnet", + "display_name": "Anthropic: Claude 3.5 Sonnet", + "tool_call": false, + "reasoning": false + }, + { + "id": "anthropic/claude-3.5-sonnet-20240620", + "name": "Anthropic: Claude 3.5 Sonnet (2024-06-20)", + "display_name": "Anthropic: Claude 3.5 Sonnet (2024-06-20)", + "tool_call": false, + "reasoning": false + }, + { + "id": "anthropic/claude-3.7-sonnet", + "name": "Anthropic: Claude 3.7 Sonnet", + "display_name": "Anthropic: Claude 3.7 Sonnet", + "tool_call": false, + "reasoning": false + }, + { + "id": "anthropic/claude-3.7-sonnet:thinking", + "name": "Anthropic: Claude 3.7 Sonnet (thinking)", + "display_name": "Anthropic: Claude 3.7 Sonnet (thinking)", + "tool_call": false, + "reasoning": false + }, + { + "id": "anthropic/claude-opus-4", + "name": "Anthropic: Claude Opus 4", + "display_name": "Anthropic: Claude Opus 4", + "tool_call": false, + "reasoning": false + }, + { + "id": "anthropic/claude-opus-4.1", + "name": "Anthropic: Claude Opus 4.1", + "display_name": "Anthropic: Claude Opus 4.1", + "tool_call": false, + "reasoning": false + }, + { + "id": "anthropic/claude-sonnet-4", + "name": "Anthropic: Claude Sonnet 4", + "display_name": "Anthropic: Claude Sonnet 4", + "tool_call": false, + "reasoning": false + }, + { + "id": "arcee-ai/afm-4.5b", + "name": "Arcee AI: AFM 4.5B", + "display_name": "Arcee AI: AFM 4.5B", + "tool_call": false, + "reasoning": false + }, + { + "id": "arcee-ai/coder-large", + "name": "Arcee AI: Coder Large", + "display_name": "Arcee AI: Coder Large", + "tool_call": false, + "reasoning": false + }, + { + "id": "arcee-ai/maestro-reasoning", + "name": "Arcee AI: Maestro Reasoning", + "display_name": "Arcee AI: Maestro Reasoning", + "tool_call": false, + "reasoning": false + }, + { + "id": "arcee-ai/spotlight", + "name": "Arcee AI: Spotlight", + "display_name": "Arcee AI: Spotlight", + "tool_call": false, + "reasoning": false + }, + { + "id": "arcee-ai/virtuoso-large", + "name": "Arcee AI: Virtuoso Large", + "display_name": "Arcee AI: Virtuoso Large", + "tool_call": false, + "reasoning": false + }, + { + "id": "arliai/qwq-32b-arliai-rpr-v1", + "name": "ArliAI: QwQ 32B RpR v1", + "display_name": "ArliAI: QwQ 32B RpR v1", + "tool_call": false, + "reasoning": false + }, + { + "id": "openrouter/auto", + "name": "Auto Router", + "display_name": "Auto Router", + "tool_call": false, + "reasoning": false + }, + { + "id": "baidu/ernie-4.5-21b-a3b", + "name": "Baidu: ERNIE 4.5 21B A3B", + "display_name": "Baidu: ERNIE 4.5 21B A3B", + "tool_call": false, + "reasoning": false + }, + { + "id": "baidu/ernie-4.5-300b-a47b", + "name": "Baidu: ERNIE 4.5 300B A47B", + "display_name": "Baidu: ERNIE 4.5 300B A47B", + "tool_call": false, + "reasoning": false + }, + { + "id": "baidu/ernie-4.5-vl-28b-a3b", + "name": "Baidu: ERNIE 4.5 VL 28B A3B", + "display_name": "Baidu: ERNIE 4.5 VL 28B A3B", + "tool_call": false, + "reasoning": false + }, + { + "id": "baidu/ernie-4.5-vl-424b-a47b", + "name": "Baidu: ERNIE 4.5 VL 424B A47B", + "display_name": "Baidu: ERNIE 4.5 VL 424B A47B", + "tool_call": false, + "reasoning": false + }, + { + "id": "bytedance/doubao-embedding-text-240715", + "name": "ByteDance: Doubao Embedding", + "display_name": "ByteDance: Doubao Embedding", + "tool_call": false, + "reasoning": false + }, + { + "id": "bytedance/doubao-embedding-large-text-240915", + "name": "ByteDance: Doubao Embedding Large Text (240915)", + "display_name": "ByteDance: Doubao Embedding Large Text (240915)", + "tool_call": false, + "reasoning": false + }, + { + "id": "bytedance/doubao-embedding-vision-241215", + "name": "ByteDance: Doubao Embedding Vision", + "display_name": "ByteDance: Doubao Embedding Vision", + "tool_call": false, + "reasoning": false + }, + { + "id": "bytedance/doubao-embedding-vision-250328", + "name": "ByteDance: Doubao Embedding Vision", + "display_name": "ByteDance: Doubao Embedding Vision", + "tool_call": false, + "reasoning": false + }, + { + "id": "bytedance/doubao-seed-1.6", + "name": "ByteDance: Doubao Seed 1.6", + "display_name": "ByteDance: Doubao Seed 1.6", + "tool_call": false, + "reasoning": false + }, + { + "id": "bytedance/doubao-seed-1.6-flash", + "name": "ByteDance: Doubao Seed 1.6 Flash", + "display_name": "ByteDance: Doubao Seed 1.6 Flash", + "tool_call": false, + "reasoning": false + }, + { + "id": "bytedance/doubao-seed-1.6-thinking", + "name": "ByteDance: Doubao Seed 1.6 Thinking", + "display_name": "ByteDance: Doubao Seed 1.6 Thinking", + "tool_call": false, + "reasoning": false + }, + { + "id": "bytedance/seed-oss-36b-instruct", + "name": "ByteDance: Seed OSS 36B Instruct", + "display_name": "ByteDance: Seed OSS 36B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "bytedance/ui-tars-1.5-7b", + "name": "ByteDance: UI-TARS 7B", + "display_name": "ByteDance: UI-TARS 7B", + "tool_call": false, + "reasoning": false + }, + { + "id": "deepcogito/cogito-v2-preview-llama-109b-moe", + "name": "Cogito V2 Preview Llama 109B", + "display_name": "Cogito V2 Preview Llama 109B", + "tool_call": false, + "reasoning": false + }, + { + "id": "cohere/command-a", + "name": "Cohere: Command A", + "display_name": "Cohere: Command A", + "tool_call": false, + "reasoning": false + }, + { + "id": "cohere/command-r-08-2024", + "name": "Cohere: Command R (08-2024)", + "display_name": "Cohere: Command R (08-2024)", + "tool_call": false, + "reasoning": false + }, + { + "id": "cohere/command-r-plus-08-2024", + "name": "Cohere: Command R+ (08-2024)", + "display_name": "Cohere: Command R+ (08-2024)", + "tool_call": false, + "reasoning": false + }, + { + "id": "cohere/command-r7b-12-2024", + "name": "Cohere: Command R7B (12-2024)", + "display_name": "Cohere: Command R7B (12-2024)", + "tool_call": false, + "reasoning": false + }, + { + "id": "deepcogito/cogito-v2-preview-deepseek-671b", + "name": "Deep Cogito: Cogito V2 Preview Deepseek 671B", + "display_name": "Deep Cogito: Cogito V2 Preview Deepseek 671B", + "tool_call": false, + "reasoning": false + }, + { + "id": "deepseek/deepseek-prover-v2", + "name": "DeepSeek: DeepSeek Prover V2", + "display_name": "DeepSeek: DeepSeek Prover V2", + "tool_call": false, + "reasoning": false + }, + { + "id": "deepseek/deepseek-r1-0528-qwen3-8b", + "name": "DeepSeek: Deepseek R1 0528 Qwen3 8B", + "display_name": "DeepSeek: Deepseek R1 0528 Qwen3 8B", + "tool_call": false, + "reasoning": false + }, + { + "id": "deepseek/deepseek-chat", + "name": "DeepSeek: DeepSeek V3", + "display_name": "DeepSeek: DeepSeek V3", + "tool_call": false, + "reasoning": false + }, + { + "id": "deepseek/deepseek-chat-v3-0324", + "name": "DeepSeek: DeepSeek V3 0324", + "display_name": "DeepSeek: DeepSeek V3 0324", + "tool_call": false, + "reasoning": false + }, + { + "id": "deepseek/deepseek-chat-v3.1", + "name": "DeepSeek: DeepSeek V3.1", + "display_name": "DeepSeek: DeepSeek V3.1", + "tool_call": false, + "reasoning": false + }, + { + "id": "deepseek/deepseek-v3.1-base", + "name": "DeepSeek: DeepSeek V3.1 Base", + "display_name": "DeepSeek: DeepSeek V3.1 Base", + "tool_call": false, + "reasoning": false + }, + { + "id": "deepseek/deepseek-v3.1-terminus", + "name": "DeepSeek: DeepSeek V3.1 Terminus", + "display_name": "DeepSeek: DeepSeek V3.1 Terminus", + "tool_call": false, + "reasoning": false + }, + { + "id": "deepseek/deepseek-r1", + "name": "DeepSeek: R1", + "display_name": "DeepSeek: R1", + "tool_call": false, + "reasoning": false + }, + { + "id": "deepseek/deepseek-r1-0528", + "name": "DeepSeek: R1 0528", + "display_name": "DeepSeek: R1 0528", + "tool_call": false, + "reasoning": false + }, + { + "id": "deepseek/deepseek-r1-distill-llama-70b", + "name": "DeepSeek: R1 Distill Llama 70B", + "display_name": "DeepSeek: R1 Distill Llama 70B", + "tool_call": false, + "reasoning": false + }, + { + "id": "deepseek/deepseek-r1-distill-llama-8b", + "name": "DeepSeek: R1 Distill Llama 8B", + "display_name": "DeepSeek: R1 Distill Llama 8B", + "tool_call": false, + "reasoning": false + }, + { + "id": "deepseek/deepseek-r1-distill-qwen-14b", + "name": "DeepSeek: R1 Distill Qwen 14B", + "display_name": "DeepSeek: R1 Distill Qwen 14B", + "tool_call": false, + "reasoning": false + }, + { + "id": "deepseek/deepseek-r1-distill-qwen-32b", + "name": "DeepSeek: R1 Distill Qwen 32B", + "display_name": "DeepSeek: R1 Distill Qwen 32B", + "tool_call": false, + "reasoning": false + }, + { + "id": "cognitivecomputations/dolphin3.0-mistral-24b", + "name": "Dolphin3.0 Mistral 24B", + "display_name": "Dolphin3.0 Mistral 24B", + "tool_call": false, + "reasoning": false + }, + { + "id": "cognitivecomputations/dolphin3.0-r1-mistral-24b", + "name": "Dolphin3.0 R1 Mistral 24B", + "display_name": "Dolphin3.0 R1 Mistral 24B", + "tool_call": false, + "reasoning": false + }, + { + "id": "eleutherai/llemma_7b", + "name": "EleutherAI: Llemma 7b", + "display_name": "EleutherAI: Llemma 7b", + "tool_call": false, + "reasoning": false + }, + { + "id": "google/gemini-2.5-flash-image-preview", + "name": "Gemini 2.5 Flash Image (Nano Banana)", + "display_name": "Gemini 2.5 Flash Image (Nano Banana)", + "tool_call": false, + "reasoning": false + }, + { + "id": "alpindale/goliath-120b", + "name": "Goliath 120B", + "display_name": "Goliath 120B", + "tool_call": false, + "reasoning": false + }, + { + "id": "google/gemini-flash-1.5-8b", + "name": "Google: Gemini 1.5 Flash 8B", + "display_name": "Google: Gemini 1.5 Flash 8B", + "tool_call": false, + "reasoning": false + }, + { + "id": "google/gemini-2.0-flash-001", + "name": "Google: Gemini 2.0 Flash", + "display_name": "Google: Gemini 2.0 Flash", + "tool_call": false, + "reasoning": false + }, + { + "id": "google/gemini-2.0-flash-lite-001", + "name": "Google: Gemini 2.0 Flash Lite", + "display_name": "Google: Gemini 2.0 Flash Lite", + "tool_call": false, + "reasoning": false + }, + { + "id": "google/gemini-2.5-flash", + "name": "Google: Gemini 2.5 Flash", + "display_name": "Google: Gemini 2.5 Flash", + "tool_call": false, + "reasoning": false + }, + { + "id": "google/gemini-2.5-flash-lite", + "name": "Google: Gemini 2.5 Flash Lite", + "display_name": "Google: Gemini 2.5 Flash Lite", + "tool_call": false, + "reasoning": false + }, + { + "id": "google/gemini-2.5-flash-lite-preview-06-17", + "name": "Google: Gemini 2.5 Flash Lite Preview 06-17", + "display_name": "Google: Gemini 2.5 Flash Lite Preview 06-17", + "tool_call": false, + "reasoning": false + }, + { + "id": "google/gemini-2.5-flash-lite-preview-09-2025", + "name": "Google: Gemini 2.5 Flash Lite Preview 09-2025", + "display_name": "Google: Gemini 2.5 Flash Lite Preview 09-2025", + "tool_call": false, + "reasoning": false + }, + { + "id": "google/gemini-2.5-flash-preview-09-2025", + "name": "Google: Gemini 2.5 Flash Preview 09-2025", + "display_name": "Google: Gemini 2.5 Flash Preview 09-2025", + "tool_call": false, + "reasoning": false + }, + { + "id": "google/gemini-2.5-pro", + "name": "Google: Gemini 2.5 Pro", + "display_name": "Google: Gemini 2.5 Pro", + "tool_call": false, + "reasoning": false + }, + { + "id": "google/gemini-2.5-pro-preview-05-06", + "name": "Google: Gemini 2.5 Pro Preview 05-06", + "display_name": "Google: Gemini 2.5 Pro Preview 05-06", + "tool_call": false, + "reasoning": false + }, + { + "id": "google/gemini-2.5-pro-preview", + "name": "Google: Gemini 2.5 Pro Preview 06-05", + "display_name": "Google: Gemini 2.5 Pro Preview 06-05", + "tool_call": false, + "reasoning": false + }, + { + "id": "google/gemma-2-27b-it", + "name": "Google: Gemma 2 27B", + "display_name": "Google: Gemma 2 27B", + "tool_call": false, + "reasoning": false + }, + { + "id": "google/gemma-2-9b-it", + "name": "Google: Gemma 2 9B", + "display_name": "Google: Gemma 2 9B", + "tool_call": false, + "reasoning": false + }, + { + "id": "google/gemma-3-12b-it", + "name": "Google: Gemma 3 12B", + "display_name": "Google: Gemma 3 12B", + "tool_call": false, + "reasoning": false + }, + { + "id": "google/gemma-3-27b-it", + "name": "Google: Gemma 3 27B", + "display_name": "Google: Gemma 3 27B", + "tool_call": false, + "reasoning": false + }, + { + "id": "google/gemma-3-4b-it", + "name": "Google: Gemma 3 4B", + "display_name": "Google: Gemma 3 4B", + "tool_call": false, + "reasoning": false + }, + { + "id": "google/gemma-3n-e4b-it", + "name": "Google: Gemma 3n 4B", + "display_name": "Google: Gemma 3n 4B", + "tool_call": false, + "reasoning": false + }, + { + "id": "inception/mercury", + "name": "Inception: Mercury", + "display_name": "Inception: Mercury", + "tool_call": false, + "reasoning": false + }, + { + "id": "inception/mercury-coder", + "name": "Inception: Mercury Coder", + "display_name": "Inception: Mercury Coder", + "tool_call": false, + "reasoning": false + }, + { + "id": "inflection/inflection-3-pi", + "name": "Inflection: Inflection 3 Pi", + "display_name": "Inflection: Inflection 3 Pi", + "tool_call": false, + "reasoning": false + }, + { + "id": "inflection/inflection-3-productivity", + "name": "Inflection: Inflection 3 Productivity", + "display_name": "Inflection: Inflection 3 Productivity", + "tool_call": false, + "reasoning": false + }, + { + "id": "liquid/lfm-3b", + "name": "Liquid: LFM 3B", + "display_name": "Liquid: LFM 3B", + "tool_call": false, + "reasoning": false + }, + { + "id": "liquid/lfm-7b", + "name": "Liquid: LFM 7B", + "display_name": "Liquid: LFM 7B", + "tool_call": false, + "reasoning": false + }, + { + "id": "meta-llama/llama-guard-3-8b", + "name": "Llama Guard 3 8B", + "display_name": "Llama Guard 3 8B", + "tool_call": false, + "reasoning": false + }, + { + "id": "anthracite-org/magnum-v2-72b", + "name": "Magnum v2 72B", + "display_name": "Magnum v2 72B", + "tool_call": false, + "reasoning": false + }, + { + "id": "anthracite-org/magnum-v4-72b", + "name": "Magnum v4 72B", + "display_name": "Magnum v4 72B", + "tool_call": false, + "reasoning": false + }, + { + "id": "mancer/weaver", + "name": "Mancer: Weaver (alpha)", + "display_name": "Mancer: Weaver (alpha)", + "tool_call": false, + "reasoning": false + }, + { + "id": "meituan/longcat-flash-chat", + "name": "Meituan: LongCat Flash Chat", + "display_name": "Meituan: LongCat Flash Chat", + "tool_call": false, + "reasoning": false + }, + { + "id": "meta-llama/llama-3-70b-instruct", + "name": "Meta: Llama 3 70B Instruct", + "display_name": "Meta: Llama 3 70B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "meta-llama/llama-3-8b-instruct", + "name": "Meta: Llama 3 8B Instruct", + "display_name": "Meta: Llama 3 8B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "meta-llama/llama-3.1-405b", + "name": "Meta: Llama 3.1 405B (base)", + "display_name": "Meta: Llama 3.1 405B (base)", + "tool_call": false, + "reasoning": false + }, + { + "id": "meta-llama/llama-3.1-405b-instruct", + "name": "Meta: Llama 3.1 405B Instruct", + "display_name": "Meta: Llama 3.1 405B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "meta-llama/llama-3.1-70b-instruct", + "name": "Meta: Llama 3.1 70B Instruct", + "display_name": "Meta: Llama 3.1 70B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "meta-llama/llama-3.1-8b-instruct", + "name": "Meta: Llama 3.1 8B Instruct", + "display_name": "Meta: Llama 3.1 8B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "meta-llama/llama-3.2-11b-vision-instruct", + "name": "Meta: Llama 3.2 11B Vision Instruct", + "display_name": "Meta: Llama 3.2 11B Vision Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "meta-llama/llama-3.2-1b-instruct", + "name": "Meta: Llama 3.2 1B Instruct", + "display_name": "Meta: Llama 3.2 1B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "meta-llama/llama-3.2-3b-instruct", + "name": "Meta: Llama 3.2 3B Instruct", + "display_name": "Meta: Llama 3.2 3B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "meta-llama/llama-3.2-90b-vision-instruct", + "name": "Meta: Llama 3.2 90B Vision Instruct", + "display_name": "Meta: Llama 3.2 90B Vision Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "meta-llama/llama-3.3-70b-instruct", + "name": "Meta: Llama 3.3 70B Instruct", + "display_name": "Meta: Llama 3.3 70B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "meta-llama/llama-4-maverick", + "name": "Meta: Llama 4 Maverick", + "display_name": "Meta: Llama 4 Maverick", + "tool_call": false, + "reasoning": false + }, + { + "id": "meta-llama/llama-4-scout", + "name": "Meta: Llama 4 Scout", + "display_name": "Meta: Llama 4 Scout", + "tool_call": false, + "reasoning": false + }, + { + "id": "meta-llama/llama-guard-4-12b", + "name": "Meta: Llama Guard 4 12B", + "display_name": "Meta: Llama Guard 4 12B", + "tool_call": false, + "reasoning": false + }, + { + "id": "meta-llama/llama-guard-2-8b", + "name": "Meta: LlamaGuard 2 8B", + "display_name": "Meta: LlamaGuard 2 8B", + "tool_call": false, + "reasoning": false + }, + { + "id": "microsoft/mai-ds-r1", + "name": "Microsoft: MAI DS R1", + "display_name": "Microsoft: MAI DS R1", + "tool_call": false, + "reasoning": false + }, + { + "id": "microsoft/phi-4", + "name": "Microsoft: Phi 4", + "display_name": "Microsoft: Phi 4", + "tool_call": false, + "reasoning": false + }, + { + "id": "microsoft/phi-4-multimodal-instruct", + "name": "Microsoft: Phi 4 Multimodal Instruct", + "display_name": "Microsoft: Phi 4 Multimodal Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "microsoft/phi-4-reasoning-plus", + "name": "Microsoft: Phi 4 Reasoning Plus", + "display_name": "Microsoft: Phi 4 Reasoning Plus", + "tool_call": false, + "reasoning": false + }, + { + "id": "microsoft/phi-3-medium-128k-instruct", + "name": "Microsoft: Phi-3 Medium 128K Instruct", + "display_name": "Microsoft: Phi-3 Medium 128K Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "microsoft/phi-3-mini-128k-instruct", + "name": "Microsoft: Phi-3 Mini 128K Instruct", + "display_name": "Microsoft: Phi-3 Mini 128K Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "microsoft/phi-3.5-mini-128k-instruct", + "name": "Microsoft: Phi-3.5 Mini 128K Instruct", + "display_name": "Microsoft: Phi-3.5 Mini 128K Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "minimax/minimax-m1", + "name": "MiniMax: MiniMax M1", + "display_name": "MiniMax: MiniMax M1", + "tool_call": false, + "reasoning": false + }, + { + "id": "minimax/minimax-01", + "name": "MiniMax: MiniMax-01", + "display_name": "MiniMax: MiniMax-01", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/mistral-large", + "name": "Mistral Large", + "display_name": "Mistral Large", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/mistral-large-2407", + "name": "Mistral Large 2407", + "display_name": "Mistral Large 2407", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/mistral-large-2411", + "name": "Mistral Large 2411", + "display_name": "Mistral Large 2411", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/mistral-small", + "name": "Mistral Small", + "display_name": "Mistral Small", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/mistral-tiny", + "name": "Mistral Tiny", + "display_name": "Mistral Tiny", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/codestral-2501", + "name": "Mistral: Codestral 2501", + "display_name": "Mistral: Codestral 2501", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/codestral-2508", + "name": "Mistral: Codestral 2508", + "display_name": "Mistral: Codestral 2508", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/devstral-medium", + "name": "Mistral: Devstral Medium", + "display_name": "Mistral: Devstral Medium", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/devstral-small", + "name": "Mistral: Devstral Small 1.1", + "display_name": "Mistral: Devstral Small 1.1", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/devstral-small-2505", + "name": "Mistral: Devstral Small 2505", + "display_name": "Mistral: Devstral Small 2505", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/magistral-medium-2506", + "name": "Mistral: Magistral Medium 2506", + "display_name": "Mistral: Magistral Medium 2506", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/magistral-medium-2506:thinking", + "name": "Mistral: Magistral Medium 2506 (thinking)", + "display_name": "Mistral: Magistral Medium 2506 (thinking)", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/magistral-small-2506", + "name": "Mistral: Magistral Small 2506", + "display_name": "Mistral: Magistral Small 2506", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/ministral-3b", + "name": "Mistral: Ministral 3B", + "display_name": "Mistral: Ministral 3B", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/ministral-8b", + "name": "Mistral: Ministral 8B", + "display_name": "Mistral: Ministral 8B", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/mistral-7b-instruct", + "name": "Mistral: Mistral 7B Instruct", + "display_name": "Mistral: Mistral 7B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/mistral-7b-instruct-v0.1", + "name": "Mistral: Mistral 7B Instruct v0.1", + "display_name": "Mistral: Mistral 7B Instruct v0.1", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/mistral-7b-instruct-v0.3", + "name": "Mistral: Mistral 7B Instruct v0.3", + "display_name": "Mistral: Mistral 7B Instruct v0.3", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/mistral-medium-3", + "name": "Mistral: Mistral Medium 3", + "display_name": "Mistral: Mistral Medium 3", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/mistral-medium-3.1", + "name": "Mistral: Mistral Medium 3.1", + "display_name": "Mistral: Mistral Medium 3.1", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/mistral-nemo", + "name": "Mistral: Mistral Nemo", + "display_name": "Mistral: Mistral Nemo", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/mistral-small-24b-instruct-2501", + "name": "Mistral: Mistral Small 3", + "display_name": "Mistral: Mistral Small 3", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/mistral-small-3.1-24b-instruct", + "name": "Mistral: Mistral Small 3.1 24B", + "display_name": "Mistral: Mistral Small 3.1 24B", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/mistral-small-3.2-24b-instruct", + "name": "Mistral: Mistral Small 3.2 24B", + "display_name": "Mistral: Mistral Small 3.2 24B", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/mixtral-8x22b-instruct", + "name": "Mistral: Mixtral 8x22B Instruct", + "display_name": "Mistral: Mixtral 8x22B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/mixtral-8x7b-instruct", + "name": "Mistral: Mixtral 8x7B Instruct", + "display_name": "Mistral: Mixtral 8x7B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/pixtral-12b", + "name": "Mistral: Pixtral 12B", + "display_name": "Mistral: Pixtral 12B", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/pixtral-large-2411", + "name": "Mistral: Pixtral Large 2411", + "display_name": "Mistral: Pixtral Large 2411", + "tool_call": false, + "reasoning": false + }, + { + "id": "mistralai/mistral-saba", + "name": "Mistral: Saba", + "display_name": "Mistral: Saba", + "tool_call": false, + "reasoning": false + }, + { + "id": "moonshotai/kimi-dev-72b", + "name": "MoonshotAI: Kimi Dev 72B", + "display_name": "MoonshotAI: Kimi Dev 72B", + "tool_call": false, + "reasoning": false + }, + { + "id": "moonshotai/kimi-k2", + "name": "MoonshotAI: Kimi K2 0711", + "display_name": "MoonshotAI: Kimi K2 0711", + "tool_call": false, + "reasoning": false + }, + { + "id": "moonshotai/kimi-k2-0905", + "name": "MoonshotAI: Kimi K2 0905", + "display_name": "MoonshotAI: Kimi K2 0905", + "tool_call": false, + "reasoning": false + }, + { + "id": "moonshotai/kimi-vl-a3b-thinking", + "name": "MoonshotAI: Kimi VL A3B Thinking", + "display_name": "MoonshotAI: Kimi VL A3B Thinking", + "tool_call": false, + "reasoning": false + }, + { + "id": "morph/morph-v3-fast", + "name": "Morph: Morph V3 Fast", + "display_name": "Morph: Morph V3 Fast", + "tool_call": false, + "reasoning": false + }, + { + "id": "morph/morph-v3-large", + "name": "Morph: Morph V3 Large", + "display_name": "Morph: Morph V3 Large", + "tool_call": false, + "reasoning": false + }, + { + "id": "gryphe/mythomax-l2-13b", + "name": "MythoMax 13B", + "display_name": "MythoMax 13B", + "tool_call": false, + "reasoning": false + }, + { + "id": "neversleep/llama-3-lumimaid-70b", + "name": "NeverSleep: Llama 3 Lumimaid 70B", + "display_name": "NeverSleep: Llama 3 Lumimaid 70B", + "tool_call": false, + "reasoning": false + }, + { + "id": "neversleep/llama-3.1-lumimaid-8b", + "name": "NeverSleep: Lumimaid v0.2 8B", + "display_name": "NeverSleep: Lumimaid v0.2 8B", + "tool_call": false, + "reasoning": false + }, + { + "id": "neversleep/noromaid-20b", + "name": "Noromaid 20B", + "display_name": "Noromaid 20B", + "tool_call": false, + "reasoning": false + }, + { + "id": "nousresearch/deephermes-3-llama-3-8b-preview", + "name": "Nous: DeepHermes 3 Llama 3 8B Preview", + "display_name": "Nous: DeepHermes 3 Llama 3 8B Preview", + "tool_call": false, + "reasoning": false + }, + { + "id": "nousresearch/deephermes-3-mistral-24b-preview", + "name": "Nous: DeepHermes 3 Mistral 24B Preview", + "display_name": "Nous: DeepHermes 3 Mistral 24B Preview", + "tool_call": false, + "reasoning": false + }, + { + "id": "nousresearch/hermes-3-llama-3.1-405b", + "name": "Nous: Hermes 3 405B Instruct", + "display_name": "Nous: Hermes 3 405B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "nousresearch/hermes-3-llama-3.1-70b", + "name": "Nous: Hermes 3 70B Instruct", + "display_name": "Nous: Hermes 3 70B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "nousresearch/hermes-4-405b", + "name": "Nous: Hermes 4 405B", + "display_name": "Nous: Hermes 4 405B", + "tool_call": false, + "reasoning": false + }, + { + "id": "nousresearch/hermes-4-70b", + "name": "Nous: Hermes 4 70B", + "display_name": "Nous: Hermes 4 70B", + "tool_call": false, + "reasoning": false + }, + { + "id": "nousresearch/hermes-2-pro-llama-3-8b", + "name": "NousResearch: Hermes 2 Pro - Llama-3 8B", + "display_name": "NousResearch: Hermes 2 Pro - Llama-3 8B", + "tool_call": false, + "reasoning": false + }, + { + "id": "nvidia/llama-3.1-nemotron-70b-instruct", + "name": "NVIDIA: Llama 3.1 Nemotron 70B Instruct", + "display_name": "NVIDIA: Llama 3.1 Nemotron 70B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "nvidia/llama-3.1-nemotron-ultra-253b-v1", + "name": "NVIDIA: Llama 3.1 Nemotron Ultra 253B v1", + "display_name": "NVIDIA: Llama 3.1 Nemotron Ultra 253B v1", + "tool_call": false, + "reasoning": false + }, + { + "id": "nvidia/nemotron-nano-9b-v2", + "name": "NVIDIA: Nemotron Nano 9B V2", + "display_name": "NVIDIA: Nemotron Nano 9B V2", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/chatgpt-4o-latest", + "name": "OpenAI: ChatGPT-4o", + "display_name": "OpenAI: ChatGPT-4o", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/codex-mini", + "name": "OpenAI: Codex Mini", + "display_name": "OpenAI: Codex Mini", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-3.5-turbo", + "name": "OpenAI: GPT-3.5 Turbo", + "display_name": "OpenAI: GPT-3.5 Turbo", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-3.5-turbo-0613", + "name": "OpenAI: GPT-3.5 Turbo (older v0613)", + "display_name": "OpenAI: GPT-3.5 Turbo (older v0613)", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-3.5-turbo-16k", + "name": "OpenAI: GPT-3.5 Turbo 16k", + "display_name": "OpenAI: GPT-3.5 Turbo 16k", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-3.5-turbo-instruct", + "name": "OpenAI: GPT-3.5 Turbo Instruct", + "display_name": "OpenAI: GPT-3.5 Turbo Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-4", + "name": "OpenAI: GPT-4", + "display_name": "OpenAI: GPT-4", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-4-0314", + "name": "OpenAI: GPT-4 (older v0314)", + "display_name": "OpenAI: GPT-4 (older v0314)", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-4-turbo", + "name": "OpenAI: GPT-4 Turbo", + "display_name": "OpenAI: GPT-4 Turbo", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-4-1106-preview", + "name": "OpenAI: GPT-4 Turbo (older v1106)", + "display_name": "OpenAI: GPT-4 Turbo (older v1106)", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-4-turbo-preview", + "name": "OpenAI: GPT-4 Turbo Preview", + "display_name": "OpenAI: GPT-4 Turbo Preview", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-4.1", + "name": "OpenAI: GPT-4.1", + "display_name": "OpenAI: GPT-4.1", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-4.1-mini", + "name": "OpenAI: GPT-4.1 Mini", + "display_name": "OpenAI: GPT-4.1 Mini", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-4.1-nano", + "name": "OpenAI: GPT-4.1 Nano", + "display_name": "OpenAI: GPT-4.1 Nano", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-4o", + "name": "OpenAI: GPT-4o", + "display_name": "OpenAI: GPT-4o", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-4o-2024-05-13", + "name": "OpenAI: GPT-4o (2024-05-13)", + "display_name": "OpenAI: GPT-4o (2024-05-13)", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-4o-2024-08-06", + "name": "OpenAI: GPT-4o (2024-08-06)", + "display_name": "OpenAI: GPT-4o (2024-08-06)", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-4o-2024-11-20", + "name": "OpenAI: GPT-4o (2024-11-20)", + "display_name": "OpenAI: GPT-4o (2024-11-20)", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-4o:extended", + "name": "OpenAI: GPT-4o (extended)", + "display_name": "OpenAI: GPT-4o (extended)", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-4o-audio-preview", + "name": "OpenAI: GPT-4o Audio", + "display_name": "OpenAI: GPT-4o Audio", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-4o-search-preview", + "name": "OpenAI: GPT-4o Search Preview", + "display_name": "OpenAI: GPT-4o Search Preview", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-4o-mini", + "name": "OpenAI: GPT-4o-mini", + "display_name": "OpenAI: GPT-4o-mini", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-4o-mini-2024-07-18", + "name": "OpenAI: GPT-4o-mini (2024-07-18)", + "display_name": "OpenAI: GPT-4o-mini (2024-07-18)", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-4o-mini-search-preview", + "name": "OpenAI: GPT-4o-mini Search Preview", + "display_name": "OpenAI: GPT-4o-mini Search Preview", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-5", + "name": "OpenAI: GPT-5", + "display_name": "OpenAI: GPT-5", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-5-chat", + "name": "OpenAI: GPT-5 Chat", + "display_name": "OpenAI: GPT-5 Chat", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-5-codex", + "name": "OpenAI: GPT-5 Codex", + "display_name": "OpenAI: GPT-5 Codex", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-5-mini", + "name": "OpenAI: GPT-5 Mini", + "display_name": "OpenAI: GPT-5 Mini", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-5-nano", + "name": "OpenAI: GPT-5 Nano", + "display_name": "OpenAI: GPT-5 Nano", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-oss-120b", + "name": "OpenAI: gpt-oss-120b", + "display_name": "OpenAI: gpt-oss-120b", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/gpt-oss-20b", + "name": "OpenAI: gpt-oss-20b", + "display_name": "OpenAI: gpt-oss-20b", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/o1", + "name": "OpenAI: o1", + "display_name": "OpenAI: o1", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/o1-mini", + "name": "OpenAI: o1-mini", + "display_name": "OpenAI: o1-mini", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/o1-mini-2024-09-12", + "name": "OpenAI: o1-mini (2024-09-12)", + "display_name": "OpenAI: o1-mini (2024-09-12)", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/o1-pro", + "name": "OpenAI: o1-pro", + "display_name": "OpenAI: o1-pro", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/o3", + "name": "OpenAI: o3", + "display_name": "OpenAI: o3", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/o3-mini", + "name": "OpenAI: o3 Mini", + "display_name": "OpenAI: o3 Mini", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/o3-mini-high", + "name": "OpenAI: o3 Mini High", + "display_name": "OpenAI: o3 Mini High", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/o3-pro", + "name": "OpenAI: o3 Pro", + "display_name": "OpenAI: o3 Pro", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/o4-mini", + "name": "OpenAI: o4 Mini", + "display_name": "OpenAI: o4 Mini", + "tool_call": false, + "reasoning": false + }, + { + "id": "openai/o4-mini-high", + "name": "OpenAI: o4 Mini High", + "display_name": "OpenAI: o4 Mini High", + "tool_call": false, + "reasoning": false + }, + { + "id": "opengvlab/internvl3-78b", + "name": "OpenGVLab: InternVL3 78B", + "display_name": "OpenGVLab: InternVL3 78B", + "tool_call": false, + "reasoning": false + }, + { + "id": "perplexity/r1-1776", + "name": "Perplexity: R1 1776", + "display_name": "Perplexity: R1 1776", + "tool_call": false, + "reasoning": false + }, + { + "id": "perplexity/sonar", + "name": "Perplexity: Sonar", + "display_name": "Perplexity: Sonar", + "tool_call": false, + "reasoning": false + }, + { + "id": "perplexity/sonar-deep-research", + "name": "Perplexity: Sonar Deep Research", + "display_name": "Perplexity: Sonar Deep Research", + "tool_call": false, + "reasoning": false + }, + { + "id": "perplexity/sonar-pro", + "name": "Perplexity: Sonar Pro", + "display_name": "Perplexity: Sonar Pro", + "tool_call": false, + "reasoning": false + }, + { + "id": "perplexity/sonar-reasoning", + "name": "Perplexity: Sonar Reasoning", + "display_name": "Perplexity: Sonar Reasoning", + "tool_call": false, + "reasoning": false + }, + { + "id": "perplexity/sonar-reasoning-pro", + "name": "Perplexity: Sonar Reasoning Pro", + "display_name": "Perplexity: Sonar Reasoning Pro", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen-plus-2025-07-28", + "name": "Qwen: Qwen Plus 0728", + "display_name": "Qwen: Qwen Plus 0728", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen-plus-2025-07-28:thinking", + "name": "Qwen: Qwen Plus 0728 (thinking)", + "display_name": "Qwen: Qwen Plus 0728 (thinking)", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen-vl-max", + "name": "Qwen: Qwen VL Max", + "display_name": "Qwen: Qwen VL Max", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen-vl-plus", + "name": "Qwen: Qwen VL Plus", + "display_name": "Qwen: Qwen VL Plus", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen-max", + "name": "Qwen: Qwen-Max", + "display_name": "Qwen: Qwen-Max", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen-plus", + "name": "Qwen: Qwen-Plus", + "display_name": "Qwen: Qwen-Plus", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen-turbo", + "name": "Qwen: Qwen-Turbo", + "display_name": "Qwen: Qwen-Turbo", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen2.5-vl-32b-instruct", + "name": "Qwen: Qwen2.5 VL 32B Instruct", + "display_name": "Qwen: Qwen2.5 VL 32B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen2.5-vl-72b-instruct", + "name": "Qwen: Qwen2.5 VL 72B Instruct", + "display_name": "Qwen: Qwen2.5 VL 72B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen-2.5-vl-7b-instruct", + "name": "Qwen: Qwen2.5-VL 7B Instruct", + "display_name": "Qwen: Qwen2.5-VL 7B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-14b", + "name": "Qwen: Qwen3 14B", + "display_name": "Qwen: Qwen3 14B", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-235b-a22b", + "name": "Qwen: Qwen3 235B A22B", + "display_name": "Qwen: Qwen3 235B A22B", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-235b-a22b-2507", + "name": "Qwen: Qwen3 235B A22B Instruct 2507", + "display_name": "Qwen: Qwen3 235B A22B Instruct 2507", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-235b-a22b-thinking-2507", + "name": "Qwen: Qwen3 235B A22B Thinking 2507", + "display_name": "Qwen: Qwen3 235B A22B Thinking 2507", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-30b-a3b", + "name": "Qwen: Qwen3 30B A3B", + "display_name": "Qwen: Qwen3 30B A3B", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-30b-a3b-instruct-2507", + "name": "Qwen: Qwen3 30B A3B Instruct 2507", + "display_name": "Qwen: Qwen3 30B A3B Instruct 2507", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-30b-a3b-thinking-2507", + "name": "Qwen: Qwen3 30B A3B Thinking 2507", + "display_name": "Qwen: Qwen3 30B A3B Thinking 2507", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-32b", + "name": "Qwen: Qwen3 32B", + "display_name": "Qwen: Qwen3 32B", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-8b", + "name": "Qwen: Qwen3 8B", + "display_name": "Qwen: Qwen3 8B", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-coder-30b-a3b-instruct", + "name": "Qwen: Qwen3 Coder 30B A3B Instruct", + "display_name": "Qwen: Qwen3 Coder 30B A3B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-coder", + "name": "Qwen: Qwen3 Coder 480B A35B", + "display_name": "Qwen: Qwen3 Coder 480B A35B", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-coder-480b-a35b-instruct", + "name": "Qwen: Qwen3 Coder 480B A35B Instruct", + "display_name": "Qwen: Qwen3 Coder 480B A35B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-coder-flash", + "name": "Qwen: Qwen3 Coder Flash", + "display_name": "Qwen: Qwen3 Coder Flash", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-coder-plus", + "name": "Qwen: Qwen3 Coder Plus", + "display_name": "Qwen: Qwen3 Coder Plus", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-max", + "name": "Qwen: Qwen3 Max", + "display_name": "Qwen: Qwen3 Max", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-next-80b-a3b-instruct", + "name": "Qwen: Qwen3 Next 80B A3B Instruct", + "display_name": "Qwen: Qwen3 Next 80B A3B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-next-80b-a3b-thinking", + "name": "Qwen: Qwen3 Next 80B A3B Thinking", + "display_name": "Qwen: Qwen3 Next 80B A3B Thinking", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-vl-235b-a22b-instruct", + "name": "Qwen: Qwen3 VL 235B A22B Instruct", + "display_name": "Qwen: Qwen3 VL 235B A22B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen3-vl-235b-a22b-thinking", + "name": "Qwen: Qwen3 VL 235B A22B Thinking", + "display_name": "Qwen: Qwen3 VL 235B A22B Thinking", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwq-32b", + "name": "Qwen: QwQ 32B", + "display_name": "Qwen: QwQ 32B", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/text-embedding-v3", + "name": "Qwen: Text Embedding v3", + "display_name": "Qwen: Text Embedding v3", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/text-embedding-v4", + "name": "Qwen: Text Embedding v4", + "display_name": "Qwen: Text Embedding v4", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen-2.5-72b-instruct", + "name": "Qwen2.5 72B Instruct", + "display_name": "Qwen2.5 72B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen-2.5-7b-instruct", + "name": "Qwen2.5 7B Instruct", + "display_name": "Qwen2.5 7B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "qwen/qwen-2.5-coder-32b-instruct", + "name": "Qwen2.5 Coder 32B Instruct", + "display_name": "Qwen2.5 Coder 32B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "undi95/remm-slerp-l2-13b", + "name": "ReMM SLERP 13B", + "display_name": "ReMM SLERP 13B", + "tool_call": false, + "reasoning": false + }, + { + "id": "sao10k/l3-lunaris-8b", + "name": "Sao10K: Llama 3 8B Lunaris", + "display_name": "Sao10K: Llama 3 8B Lunaris", + "tool_call": false, + "reasoning": false + }, + { + "id": "sao10k/l3-euryale-70b", + "name": "Sao10k: Llama 3 Euryale 70B v2.1", + "display_name": "Sao10k: Llama 3 Euryale 70B v2.1", + "tool_call": false, + "reasoning": false + }, + { + "id": "sao10k/l3.1-euryale-70b", + "name": "Sao10K: Llama 3.1 Euryale 70B v2.2", + "display_name": "Sao10K: Llama 3.1 Euryale 70B v2.2", + "tool_call": false, + "reasoning": false + }, + { + "id": "sao10k/l3.3-euryale-70b", + "name": "Sao10K: Llama 3.3 Euryale 70B", + "display_name": "Sao10K: Llama 3.3 Euryale 70B", + "tool_call": false, + "reasoning": false + }, + { + "id": "shisa-ai/shisa-v2-llama3.3-70b", + "name": "Shisa AI: Shisa V2 Llama 3.3 70B", + "display_name": "Shisa AI: Shisa V2 Llama 3.3 70B", + "tool_call": false, + "reasoning": false + }, + { + "id": "raifle/sorcererlm-8x22b", + "name": "SorcererLM 8x22B", + "display_name": "SorcererLM 8x22B", + "tool_call": false, + "reasoning": false + }, + { + "id": "stepfun-ai/step3", + "name": "StepFun: Step3", + "display_name": "StepFun: Step3", + "tool_call": false, + "reasoning": false + }, + { + "id": "switchpoint/router", + "name": "Switchpoint Router", + "display_name": "Switchpoint Router", + "tool_call": false, + "reasoning": false + }, + { + "id": "tencent/hunyuan-a13b-instruct", + "name": "Tencent: Hunyuan A13B Instruct", + "display_name": "Tencent: Hunyuan A13B Instruct", + "tool_call": false, + "reasoning": false + }, + { + "id": "thedrummer/anubis-70b-v1.1", + "name": "TheDrummer: Anubis 70B V1.1", + "display_name": "TheDrummer: Anubis 70B V1.1", + "tool_call": false, + "reasoning": false + }, + { + "id": "thedrummer/anubis-pro-105b-v1", + "name": "TheDrummer: Anubis Pro 105B V1", + "display_name": "TheDrummer: Anubis Pro 105B V1", + "tool_call": false, + "reasoning": false + }, + { + "id": "thedrummer/rocinante-12b", + "name": "TheDrummer: Rocinante 12B", + "display_name": "TheDrummer: Rocinante 12B", + "tool_call": false, + "reasoning": false + }, + { + "id": "thedrummer/skyfall-36b-v2", + "name": "TheDrummer: Skyfall 36B V2", + "display_name": "TheDrummer: Skyfall 36B V2", + "tool_call": false, + "reasoning": false + }, + { + "id": "thedrummer/unslopnemo-12b", + "name": "TheDrummer: UnslopNemo 12B", + "display_name": "TheDrummer: UnslopNemo 12B", + "tool_call": false, + "reasoning": false + }, + { + "id": "thudm/glm-4.1v-9b-thinking", + "name": "THUDM: GLM 4.1V 9B Thinking", + "display_name": "THUDM: GLM 4.1V 9B Thinking", + "tool_call": false, + "reasoning": false + }, + { + "id": "thudm/glm-z1-32b", + "name": "THUDM: GLM Z1 32B", + "display_name": "THUDM: GLM Z1 32B", + "tool_call": false, + "reasoning": false + }, + { + "id": "tngtech/deepseek-r1t-chimera", + "name": "TNG: DeepSeek R1T Chimera", + "display_name": "TNG: DeepSeek R1T Chimera", + "tool_call": false, + "reasoning": false + }, + { + "id": "tngtech/deepseek-r1t2-chimera", + "name": "TNG: DeepSeek R1T2 Chimera", + "display_name": "TNG: DeepSeek R1T2 Chimera", + "tool_call": false, + "reasoning": false + }, + { + "id": "alibaba/tongyi-deepresearch-30b-a3b", + "name": "Tongyi DeepResearch 30B A3B", + "display_name": "Tongyi DeepResearch 30B A3B", + "tool_call": false, + "reasoning": false + }, + { + "id": "microsoft/wizardlm-2-8x22b", + "name": "WizardLM-2 8x22B", + "display_name": "WizardLM-2 8x22B", + "tool_call": false, + "reasoning": false + }, + { + "id": "x-ai/grok-3", + "name": "xAI: Grok 3", + "display_name": "xAI: Grok 3", + "tool_call": false, + "reasoning": false + }, + { + "id": "x-ai/grok-3-beta", + "name": "xAI: Grok 3 Beta", + "display_name": "xAI: Grok 3 Beta", + "tool_call": false, + "reasoning": false + }, + { + "id": "x-ai/grok-3-mini", + "name": "xAI: Grok 3 Mini", + "display_name": "xAI: Grok 3 Mini", + "tool_call": false, + "reasoning": false + }, + { + "id": "x-ai/grok-3-mini-beta", + "name": "xAI: Grok 3 Mini Beta", + "display_name": "xAI: Grok 3 Mini Beta", + "tool_call": false, + "reasoning": false + }, + { + "id": "x-ai/grok-4", + "name": "xAI: Grok 4", + "display_name": "xAI: Grok 4", + "tool_call": false, + "reasoning": false + }, + { + "id": "x-ai/grok-4-fast", + "name": "xAI: Grok 4 Fast", + "display_name": "xAI: Grok 4 Fast", + "tool_call": false, + "reasoning": false + }, + { + "id": "x-ai/grok-code-fast-1", + "name": "xAI: Grok Code Fast 1", + "display_name": "xAI: Grok Code Fast 1", + "tool_call": false, + "reasoning": false + }, + { + "id": "z-ai/glm-4-32b", + "name": "Z.AI: GLM 4 32B", + "display_name": "Z.AI: GLM 4 32B", + "tool_call": false, + "reasoning": false + }, + { + "id": "z-ai/glm-4.5", + "name": "Z.AI: GLM 4.5", + "display_name": "Z.AI: GLM 4.5", + "tool_call": false, + "reasoning": false + }, + { + "id": "z-ai/glm-4.5-air", + "name": "Z.AI: GLM 4.5 Air", + "display_name": "Z.AI: GLM 4.5 Air", + "tool_call": false, + "reasoning": false + }, + { + "id": "z-ai/glm-4.5v", + "name": "Z.AI: GLM 4.5V", + "display_name": "Z.AI: GLM 4.5V", + "tool_call": false, + "reasoning": false + } + ] + } + } +} \ No newline at end of file diff --git a/scripts/fetch-provider-db.mjs b/scripts/fetch-provider-db.mjs new file mode 100644 index 000000000..61aa3de58 --- /dev/null +++ b/scripts/fetch-provider-db.mjs @@ -0,0 +1,161 @@ +#!/usr/bin/env node +// Build-time fetch of Provider DB (aggregated all.json) into resources/model-db/providers.json + +import fs from 'node:fs' +import fsp from 'node:fs/promises' +import path from 'node:path' +import process from 'node:process' + +const DEFAULT_URL = + 'https://raw.githubusercontent.com/ThinkInAIXYZ/PublicProviderConf/refs/heads/dev/dist/all.json' + +const log = (...args) => console.log('[fetch-provider-db]', ...args) +const warn = (...args) => console.warn('[fetch-provider-db]', ...args) +const error = (...args) => console.error('[fetch-provider-db]', ...args) + +async function ensureDir(dir) { + await fsp.mkdir(dir, { recursive: true }) +} + +const PROVIDER_ID_REGEX = /^[a-z0-9][a-z0-9-_]*$/ +const MODEL_ID_REGEX = /^[a-z0-9][a-z0-9\-_.:/]*$/ +const isValidLowercaseProviderId = (id) => + typeof id === 'string' && id === id.toLowerCase() && PROVIDER_ID_REGEX.test(id) +const isValidLowercaseModelId = (id) => + typeof id === 'string' && id === id.toLowerCase() && MODEL_ID_REGEX.test(id) + +function sanitizeAggregateJson(json) { + if (!json || typeof json !== 'object') return null + const providers = json.providers + if (!providers || typeof providers !== 'object' || Array.isArray(providers)) return null + const out = { providers: {} } + for (const [key, p] of Object.entries(providers)) { + if (!p || typeof p !== 'object') continue + const pid = p.id ?? key + if (!isValidLowercaseProviderId(pid)) continue + if (pid !== key) continue + const models = Array.isArray(p.models) ? p.models : [] + const sanitizedModels = [] + for (const m of models) { + if (!m || typeof m !== 'object') continue + const mid = m.id + if (!isValidLowercaseModelId(mid)) continue + const rlimit = m.limit + let limit + if (rlimit && typeof rlimit === 'object') { + const l = {} + if (typeof rlimit.context === 'number' && Number.isFinite(rlimit.context) && rlimit.context >= 0) + l.context = rlimit.context + if (typeof rlimit.output === 'number' && Number.isFinite(rlimit.output) && rlimit.output >= 0) + l.output = rlimit.output + if (Object.keys(l).length) limit = l + } + let modalities + const rmods = m.modalities + if (rmods && typeof rmods === 'object') { + const inp = Array.isArray(rmods.input) ? rmods.input.filter((v) => typeof v === 'string') : undefined + const outArr = Array.isArray(rmods.output) ? rmods.output.filter((v) => typeof v === 'string') : undefined + if (inp || outArr) modalities = { input: inp, output: outArr } + } + sanitizedModels.push({ + id: mid, + name: typeof m.name === 'string' ? m.name : undefined, + display_name: typeof m.display_name === 'string' ? m.display_name : undefined, + modalities, + limit, + temperature: typeof m.temperature === 'boolean' ? m.temperature : undefined, + tool_call: typeof m.tool_call === 'boolean' ? m.tool_call : undefined, + reasoning: typeof m.reasoning === 'boolean' ? m.reasoning : undefined, + attachment: typeof m.attachment === 'boolean' ? m.attachment : undefined, + open_weights: typeof m.open_weights === 'boolean' ? m.open_weights : undefined, + knowledge: typeof m.knowledge === 'string' ? m.knowledge : undefined, + release_date: typeof m.release_date === 'string' ? m.release_date : undefined, + last_updated: typeof m.last_updated === 'string' ? m.last_updated : undefined, + cost: typeof m.cost === 'object' ? m.cost : undefined + }) + } + if (!sanitizedModels.length) continue + const envArr = Array.isArray(p.env) ? p.env.filter((v) => typeof v === 'string') : undefined + out.providers[pid] = { + id: pid, + name: typeof p.name === 'string' ? p.name : undefined, + display_name: typeof p.display_name === 'string' ? p.display_name : undefined, + api: typeof p.api === 'string' ? p.api : undefined, + doc: typeof p.doc === 'string' ? p.doc : undefined, + env: envArr, + models: sanitizedModels + } + } + if (Object.keys(out.providers).length === 0) return null + return out +} + +async function main() { + const url = process.env.PROVIDER_DB_URL || DEFAULT_URL + const outDir = path.resolve(process.cwd(), 'resources', 'model-db') + const outFile = path.join(outDir, 'providers.json') + const tmpFile = outFile + '.tmp' + + await ensureDir(outDir) + + let text + try { + log('Fetching', url) + const controller = new AbortController() + const timeout = setTimeout(() => controller.abort(), 20000) + const res = await fetch(url, { signal: controller.signal }) + clearTimeout(timeout) + if (!res.ok) throw new Error(`HTTP ${res.status}`) + text = await res.text() + } catch (e) { + warn('Fetch failed:', e?.message || e) + if (fs.existsSync(outFile)) { + warn('Using existing providers.json snapshot') + return + } + error('No existing snapshot found. Failing the build step.') + process.exit(1) + } + + if (text.length > 5 * 1024 * 1024) { + error('Downloaded file too large (>5MB). Aborting.') + if (!fs.existsSync(outFile)) process.exit(1) + return + } + + let json + try { + json = JSON.parse(text) + } catch (e) { + error('Invalid JSON:', e?.message || e) + if (!fs.existsSync(outFile)) process.exit(1) + return + } + + const sanitized = sanitizeAggregateJson(json) + if (!sanitized) { + error('No valid providers after sanitization.') + if (!fs.existsSync(outFile)) process.exit(1) + return + } + + try { + await fsp.writeFile(tmpFile, JSON.stringify(sanitized, null, 2)) + try { + await fsp.rename(tmpFile, outFile) + } catch (e) { + // Cross-platform replace fallback + await fsp.rm(outFile, { force: true }) + await fsp.rename(tmpFile, outFile) + } + log('Saved to', outFile) + } catch (e) { + error('Write failed:', e?.message || e) + if (!fs.existsSync(outFile)) process.exit(1) + } +} + +main().catch((e) => { + error('Unexpected error:', e) + process.exit(1) +}) diff --git a/src/main/events.ts b/src/main/events.ts index 2c7421418..7e072d1bd 100644 --- a/src/main/events.ts +++ b/src/main/events.ts @@ -37,6 +37,12 @@ export const CONFIG_EVENTS = { FONT_SIZE_CHANGED: 'config:font-size-changed' // 字体大小变更事件 } +// Provider DB(聚合 JSON)相关事件 +export const PROVIDER_DB_EVENTS = { + LOADED: 'provider-db:loaded', // 首次装载完毕(内置或缓存) + UPDATED: 'provider-db:updated' // 远端刷新成功 +} + // 会话相关事件 export const CONVERSATION_EVENTS = { LIST_UPDATED: 'conversation:list-updated', // 用于推送完整的会话列表 diff --git a/src/main/presenter/configPresenter/index.ts b/src/main/presenter/configPresenter/index.ts index 423fe9a81..6de0e3de1 100644 --- a/src/main/presenter/configPresenter/index.ts +++ b/src/main/presenter/configPresenter/index.ts @@ -31,6 +31,8 @@ import { compare } from 'compare-versions' import { defaultShortcutKey, ShortcutKeySetting } from './shortcutKeySettings' import { ModelConfigHelper } from './modelConfig' import { KnowledgeConfHelper } from './knowledgeConfHelper' +import { providerDbLoader } from './providerDbLoader' +import { ProviderAggregate } from '@shared/types/model-db' // Default system prompt constant const DEFAULT_SYSTEM_PROMPT = `You are DeepChat, a highly capable AI assistant. Your goal is to fully complete the user’s requested task before handing the conversation back to them. Keep working autonomously until the task is fully resolved. @@ -171,6 +173,9 @@ export class ConfigPresenter implements IConfigPresenter { // Initialize provider models directory this.initProviderModelsDir() + // 初始化 Provider DB(外部聚合 JSON,本地内置为兜底) + providerDbLoader.initialize().catch(() => {}) + // If application version is updated, update appVersion if (this.store.get('appVersion') !== this.currentAppVersion) { const oldVersion = this.store.get('appVersion') @@ -198,6 +203,11 @@ export class ConfigPresenter implements IConfigPresenter { } } + // 提供聚合 Provider DB(只读)给渲染层/其他模块 + getProviderDb(): ProviderAggregate | null { + return providerDbLoader.getDb() + } + private getProviderModelStore(providerId: string): ElectronStore { if (!this.providersModelStores.has(providerId)) { const store = new ElectronStore({ @@ -626,6 +636,28 @@ export class ConfigPresenter implements IConfigPresenter { return models } + // 基于聚合 Provider DB 的标准模型(只读映射,不落库) + getDbProviderModels(providerId: string): RENDERER_MODEL_META[] { + const db = providerDbLoader.getDb() + const provider = db?.providers?.[providerId.toLowerCase()] + if (!provider || !Array.isArray(provider.models)) return [] + return provider.models.map((m) => ({ + id: m.id, + name: (m as any).display_name || m.name || m.id, + contextLength: m.limit?.context ?? 8192, + maxTokens: m.limit?.output ?? 4096, + provider: providerId, + providerId, + group: 'default', + enabled: false, + isCustom: false, + vision: Array.isArray(m?.modalities?.input) ? m.modalities!.input!.includes('image') : false, + functionCall: Boolean((m as any).tool_call), + reasoning: Boolean((m as any).reasoning), + type: ModelType.Chat + })) + } + getModelDefaultConfig(modelId: string, providerId?: string): ModelConfig { const model = this.getModelConfig(modelId, providerId) if (model) { @@ -633,8 +665,8 @@ export class ConfigPresenter implements IConfigPresenter { } return { maxTokens: 4096, - contextLength: 4096, - temperature: 0.7, + contextLength: 8192, + temperature: 0.6, vision: false, functionCall: false, reasoning: false, diff --git a/src/main/presenter/configPresenter/modelConfig.ts b/src/main/presenter/configPresenter/modelConfig.ts index afa7a596e..6d44150c0 100644 --- a/src/main/presenter/configPresenter/modelConfig.ts +++ b/src/main/presenter/configPresenter/modelConfig.ts @@ -1,8 +1,8 @@ import { ModelType } from '@shared/model' import { IModelConfig, ModelConfig, ModelConfigSource } from '@shared/presenter' import ElectronStore from 'electron-store' -import { defaultModelsSettings } from './modelDefaultSettings' -import { getProviderSpecificModelConfig } from './providerModelSettings' +import { providerDbLoader } from './providerDbLoader' +import { isImageInputSupported } from '@shared/types/model-db' const SPECIAL_CONCAT_CHAR = '-_-' @@ -219,10 +219,8 @@ export class ModelConfigHelper { } /** - * Get model configuration with priority: user config > provider config > default config - * @param modelId - The model ID - * @param providerId - Optional provider ID - * @returns ModelConfig with isUserDefined flag + * 获取模型配置(优先级:用户自定义 > 远端缓存/本地内置 Provider DB 严格匹配 > 默认兜底) + * 严格匹配要求 providerId 与 modelId 全等;不再做模糊匹配。 */ getModelConfig(modelId: string, providerId?: string): ModelConfig { this.initializeCache() @@ -230,6 +228,10 @@ export class ModelConfigHelper { let storedConfig: ModelConfig | null = null let storedSource: ModelConfigSource | undefined + // 统一小写用于 DB 严格匹配;用户配置读取先原样,再尝试小写键 + const normModelId = modelId ? modelId.toLowerCase() : modelId + const normProviderId = providerId ? providerId.toLowerCase() : providerId + if (providerId) { const cacheKey = this.generateCacheKey(providerId, modelId) let cachedEntry = this.memoryCache.get(cacheKey) @@ -245,6 +247,21 @@ export class ModelConfigHelper { if (cachedEntry?.config) { storedConfig = cachedEntry.config storedSource = cachedEntry.source ?? (cachedEntry.config.isUserDefined ? 'user' : undefined) + } else if (normProviderId && normModelId) { + // 二次尝试:小写键(兼容历史大小写不一致的存储键) + const normKey = this.generateCacheKey(normProviderId, normModelId) + let normCached = this.memoryCache.get(normKey) + if (!normCached) { + const fromStore = this.modelConfigStore.get(normKey) as IModelConfig | undefined + if (fromStore) { + normCached = fromStore + this.memoryCache.set(normKey, fromStore) + } + } + if (normCached?.config) { + storedConfig = normCached.config + storedSource = normCached.source ?? (normCached.config.isUserDefined ? 'user' : undefined) + } } } @@ -264,35 +281,27 @@ export class ModelConfigHelper { let finalConfig: ModelConfig | null = null - if (providerId) { - const providerConfig = getProviderSpecificModelConfig(providerId, modelId) - if (providerConfig) { - finalConfig = { ...providerConfig } - } - } - - if (!finalConfig) { - const lowerModelId = modelId.toLowerCase() - - for (const config of defaultModelsSettings) { - if (config.match.some((matchStr) => lowerModelId.includes(matchStr.toLowerCase()))) { - finalConfig = { - maxTokens: config.maxTokens, - contextLength: config.contextLength, - temperature: config.temperature, - vision: config.vision, - functionCall: config.functionCall || false, - reasoning: config.reasoning || false, - type: config.type || ModelType.Chat, - thinkingBudget: config.thinkingBudget, - enableSearch: config.enableSearch || false, - forcedSearch: config.forcedSearch || false, - searchStrategy: config.searchStrategy || 'turbo', - reasoningEffort: config.reasoningEffort, - verbosity: config.verbosity, - maxCompletionTokens: config.maxCompletionTokens - } - break + // 严格匹配:仅当提供 providerId 时从 Provider DB 查找 + if (normProviderId) { + const db = providerDbLoader.getDb() + const provider = db?.providers?.[normProviderId] + const model = provider?.models.find((m) => m.id === normModelId) + if (model) { + finalConfig = { + maxTokens: model.limit?.output ?? 4096, + contextLength: model.limit?.context ?? 8192, + temperature: 0.6, + vision: isImageInputSupported(model), + functionCall: model.tool_call ?? false, + reasoning: model.reasoning ?? false, + type: ModelType.Chat, + thinkingBudget: undefined, + enableSearch: false, + forcedSearch: false, + searchStrategy: 'turbo', + reasoningEffort: undefined, + verbosity: undefined, + maxCompletionTokens: undefined } } } diff --git a/src/main/presenter/configPresenter/modelDefaultSettings.ts b/src/main/presenter/configPresenter/modelDefaultSettings.ts deleted file mode 100644 index c608b12ac..000000000 --- a/src/main/presenter/configPresenter/modelDefaultSettings.ts +++ /dev/null @@ -1,1966 +0,0 @@ -import { DefaultModelSetting } from '@shared/presenter' -import { ModelType } from '@shared/model' -export const defaultModelsSettings: DefaultModelSetting[] = [ - // Tencent Hunyuan - { - id: 'hunyuan-t1-latest', - name: 'Hunyuan T1 Latest', - temperature: 1.0, - contextLength: 26000, - maxTokens: 62000, - match: ['hunyuan-t1-latest'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'hunyuan-t1-20250403', - name: 'Hunyuan T1 20250403', - temperature: 0.7, - contextLength: 26000, - maxTokens: 62000, - match: ['hunyuan-t1-20250403'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'hunyuan-t1-20250321', - name: 'Hunyuan T1 20250321', - temperature: 0.7, - contextLength: 26000, - maxTokens: 62000, - match: ['hunyuan-t1-20250321'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'hunyuan-turbos-latest', - name: 'Hunyuan TurboS Latest', - temperature: 0.7, - contextLength: 22000, - maxTokens: 8000, - match: ['hunyuan-turbos-latest'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'hunyuan-turbos-20250313', - name: 'Hunyuan TurboS 20250313', - temperature: 0.7, - contextLength: 22000, - maxTokens: 8000, - match: ['hunyuan-turbos-20250313'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'hunyuan-turbos-20250226', - name: 'Hunyuan TurboS 20250226', - temperature: 0.7, - contextLength: 22000, - maxTokens: 8000, - match: ['hunyuan-turbos-20250226'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'hunyuan-turbos-longtext-128k-20250325', - name: 'Hunyuan TurboS Longtext 128K 20250325', - temperature: 0.7, - contextLength: 120000, - maxTokens: 6000, - match: ['hunyuan-turbos-longtext-128k-20250325'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'hunyuan-turbo-latest', - name: 'Hunyuan Turbo Latest', - temperature: 0.7, - contextLength: 26000, - maxTokens: 4000, - match: ['hunyuan-turbo-latest'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'hunyuan-turbo', - name: 'Hunyuan Turbo', - temperature: 0.7, - contextLength: 26000, - maxTokens: 4000, - match: ['hunyuan-turbo'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'hunyuan-turbo-20241223', - name: 'Hunyuan Turbo 20241223', - temperature: 0.7, - contextLength: 26000, - maxTokens: 4000, - match: ['hunyuan-turbo-20241223'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'hunyuan-large', - name: 'Hunyuan Large', - temperature: 0.7, - contextLength: 26000, - maxTokens: 4000, - match: ['hunyuan-large'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'hunyuan-standard-256k', - name: 'Hunyuan Standard 256K', - temperature: 0.7, - contextLength: 250000, - maxTokens: 6000, - match: ['hunyuan-standard-256k'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'hunyuan-standard', - name: 'Hunyuan Standard', - temperature: 0.7, - contextLength: 26000, - maxTokens: 2000, - match: ['hunyuan-standard'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'hunyuan-lite', - name: 'Hunyuan Lite', - temperature: 0.7, - contextLength: 250000, - maxTokens: 6000, - match: ['hunyuan-lite'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'hunyuan-translation', - name: 'Hunyuan Translation', - temperature: 0.7, - contextLength: 4000, - maxTokens: 4000, - match: ['hunyuan-translation'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'hunyuan-translation-lite', - name: 'Hunyuan Translation Lite', - temperature: 0.7, - contextLength: 4000, - maxTokens: 4000, - match: ['hunyuan-translation-lite'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'hunyuan-role', - name: 'Hunyuan Role', - temperature: 0.7, - contextLength: 28000, - maxTokens: 4000, - match: ['hunyuan-role'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'hunyuan-functioncall', - name: 'Hunyuan FunctionCall', - temperature: 0.7, - contextLength: 26000, - maxTokens: 4000, - match: ['hunyuan-functioncall'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'hunyuan-code', - name: 'Hunyuan Code', - temperature: 0.7, - contextLength: 4000, - maxTokens: 4000, - match: ['hunyuan-code'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'hunyuan-turbos-vision', - name: 'Hunyuan TurboS Vision', - temperature: 0.7, - contextLength: 6000, - maxTokens: 2000, - match: ['hunyuan-turbos-vision'], - vision: true, - functionCall: false, - reasoning: false - }, - { - id: 'hunyuan-standard-vision', - name: 'Hunyuan Standard Vision', - temperature: 0.7, - contextLength: 6000, - maxTokens: 2000, - match: ['hunyuan-standard-vision'], - vision: true, - functionCall: false, - reasoning: false - }, - { - id: 'hunyuan-lite-vision', - name: 'Hunyuan Lite Vision', - temperature: 0.7, - contextLength: 32000, - maxTokens: 4000, - match: ['hunyuan-lite-vision'], - vision: true, - functionCall: false, - reasoning: false - }, - { - id: 'hunyuan-vision', - name: 'Hunyuan Vision', - temperature: 0.7, - contextLength: 16000, - maxTokens: 16000, - match: ['hunyuan-vision'], - vision: true, - functionCall: false, - reasoning: false - }, - - // Grok, - { - id: 'grok-3-mini-fast-beta', - name: 'Grok 3 Mini Fast Beta', - temperature: 1, - contextLength: 120000, - maxTokens: 100_000, - match: ['grok-3-mini-fast', 'grok-3-mini-fast-latest', 'grok-3-mini-fast-beta'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'grok-3-mini-beta', - name: 'Grok 3 Mini Beta', - temperature: 1, - contextLength: 120000, - maxTokens: 100_000, - match: ['grok-3-mini', 'grok-3-mini-latest', 'grok-3-mini-beta'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'grok-3-fast-beta', - name: 'Grok 3 Fast Beta', - temperature: 0.7, - contextLength: 120000, - maxTokens: 100_000, - match: ['grok-3-fast', 'grok-3-fast-latest', 'grok-3-fast-beta'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'grok-2-vision-1212', - name: 'Grok 2 Vision 1212', - temperature: 0.7, - contextLength: 32000, - maxTokens: 32000, - match: ['grok-2-vision', 'grok-2-vision-latest', 'grok-2-vision-1212'], - vision: true, - functionCall: false, - reasoning: false - }, - { - id: 'grok-2-image-1212', - name: 'Grok 2 Image 1212', - temperature: 0.7, - contextLength: 130_000, - maxTokens: 100_000, - match: ['grok-2-image', 'grok-2-image-latest', 'grok-2-image-1212'], - vision: true, - functionCall: false, - reasoning: false - }, - { - id: 'grok-3-beta', - name: 'Grok 3 Beta', - temperature: 0.7, - contextLength: 120000, - maxTokens: 100_000, - match: ['grok-3', 'grok-3-latest', 'grok-3-beta'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'grok-2-1212', - name: 'Grok 2 1212', - contextLength: 120000, - temperature: 0.7, - maxTokens: 100_000, - match: ['grok-2', 'grok-2-latest', 'grok-2-1212'], - vision: false, - functionCall: true, - reasoning: false - }, - - // Gemini series models - // ref: https://ai.google.dev/gemini-api/docs/models - { - id: 'gemini-2.5-pro', - name: 'Gemini 2.5 Pro', - temperature: 0.7, - maxTokens: 65535, - contextLength: 1048576, - match: ['gemini-2.5-pro'], - vision: true, - functionCall: true, - reasoning: true, - thinkingBudget: -1 // Dynamic thinking - }, - { - id: 'google/gemini-2.5-flash-image-preview', - name: 'Gemini 2.5 Flash Image Preview', - temperature: 0.7, - maxTokens: 32768, - contextLength: 32768, - match: ['google/gemini-2.5-flash-image-preview', 'gemini-2.5-flash-image-preview'], - vision: true, - functionCall: false, - reasoning: false, - type: ModelType.ImageGeneration - }, - { - id: 'models/gemini-2.5-flash-lite-preview-06-17', - name: 'Gemini 2.5 Flash-Lite Preview', - temperature: 0.7, - maxTokens: 65535, - contextLength: 1048576, - match: ['models/gemini-2.5-flash-lite-preview-06-17', 'gemini-2.5-flash-lite-preview'], - vision: true, - functionCall: true, - reasoning: true, - thinkingBudget: -1 // Dynamic thinking - }, - { - id: 'models/gemini-2.5-flash-lite', - name: 'Gemini 2.5 Flash-Lite', - temperature: 0.7, - maxTokens: 65535, - contextLength: 1048576, - match: ['models/gemini-2.5-flash-lite', 'gemini-2.5-flash-lite'], - vision: true, - functionCall: true, - reasoning: true, - thinkingBudget: -1 // Dynamic thinking - }, - { - id: 'models/gemini-2.5-flash', - name: 'Gemini 2.5 Flash', - temperature: 0.7, - maxTokens: 65535, - contextLength: 1048576, - match: ['models/gemini-2.5-flash', 'gemini-2.5-flash'], - vision: true, - functionCall: true, - reasoning: true, - thinkingBudget: -1 // Dynamic thinking - }, - { - id: 'models/gemini-2.0-flash-preview-image-generation', - name: 'Gemini 2.0 Flash Preview Image Generation', - temperature: 0.7, - maxTokens: 8192, - contextLength: 32000, - match: [ - 'models/gemini-2.0-flash-preview-image-generation', - 'gemini-2.0-flash-preview-image-generation' - ], - vision: true, - functionCall: false, - reasoning: false, - type: ModelType.ImageGeneration - }, - { - id: 'models/gemini-2.0-flash-lite', - name: 'Gemini 2.0 Flash Lite', - temperature: 0.7, - maxTokens: 8191, - contextLength: 1048576, - match: ['models/gemini-2.0-flash-lite', 'gemini-2.0-flash-lite'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'models/gemini-2.0-flash', - name: 'Gemini 2.0 Flash', - temperature: 0.7, - maxTokens: 8191, - contextLength: 1048576, - match: ['models/gemini-2.0-flash', 'gemini-2.0-flash'], - vision: true, - functionCall: true, - reasoning: true //Experimental - }, - { - id: 'models/gemini-1.5-flash', - name: 'Gemini 1.5 Flash', - temperature: 0.7, - maxTokens: 8191, - contextLength: 1048576, - match: ['models/gemini-1.5-flash', 'gemini-1.5-flash'], - vision: true, - functionCall: true, - reasoning: false - }, - // DeepSeek系列模型配置 - { - id: 'deepseek-prover-v2-671b', - name: 'Deepseek Prover V2 671B', - temperature: 0.3, - maxTokens: 10000, - contextLength: 150000, - match: ['deepseek-prover-v2-671b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-vl2', - name: 'DeepSeek VL2', - temperature: 0.7, - maxTokens: 4000, - contextLength: 4096, - match: ['deepseek-vl2'], - vision: true, - functionCall: false, - reasoning: false - }, - { - id: 'deepseek-r1-distill-qwen-32b', - name: 'DeepSeek R1 Distill Qwen 32B', - temperature: 0.7, - maxTokens: 4000, - contextLength: 32768, - match: ['deepseek-r1-distill-qwen-32b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-r1-distill-qwen-14b', - name: 'DeepSeek R1 Distill Qwen 14B', - temperature: 0.7, - maxTokens: 4000, - contextLength: 32768, - match: ['deepseek-r1-distill-qwen-14b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-r1-distill-qwen-7b', - name: 'DeepSeek R1 Distill Qwen 7B', - temperature: 0.7, - maxTokens: 4000, - contextLength: 32768, - match: ['deepseek-r1-distill-qwen-7b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-r1-distill-qwen-1.5b', - name: 'DeepSeek R1 Distill Qwen 1.5B', - temperature: 0.6, - maxTokens: 4000, - contextLength: 65536, - match: ['deepseek-r1-distill-qwen-1.5b', 'deepseek-r1-distill-qwen-1-5b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-r1-distill-llama-8b', - name: 'DeepSeek R1 Distill Llama 8B', - temperature: 0.6, - maxTokens: 4000, - contextLength: 65536, - match: ['deepseek-r1-distill-llama-8b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-r1-distill-llama-70b', - name: 'DeepSeek R1 Distill Llama 70B', - temperature: 0.6, - maxTokens: 4000, - contextLength: 65536, - match: ['deepseek-r1-distill-llama-70b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-r1', - name: 'DeepSeek R1', - temperature: 0.6, - maxTokens: 4000, - contextLength: 65536, - match: ['deepseek-r1', 'deepseek-r1-zero'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-reasoner', - name: 'DeepSeek Reasoner', - temperature: 0.6, - maxTokens: 64000, - contextLength: 128000, - match: ['deepseek-reasoner'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-chat-v3-0324', - name: 'DeepSeek Chat v3 0324', - temperature: 0.6, - maxTokens: 16000, - contextLength: 65536, - match: ['deepseek-chat-v3-0324'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'deepseek-v3-0324', - name: 'DeepSeek v3 0324', - temperature: 0.6, - maxTokens: 16000, - contextLength: 65536, - match: ['deepseek-v3-0324'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'deepseek-chat', - name: 'DeepSeek chat', - temperature: 1, - maxTokens: 8192, - contextLength: 128000, - match: ['deepseek-chat'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'deepseek-v3', - name: 'DeepSeek V3', - temperature: 0.6, - maxTokens: 4000, - contextLength: 65536, - match: ['deepseek-v3'], - vision: false, - // https://github.com/deepseek-ai/DeepSeek-V3/issues/15 use mock function call - functionCall: false, - reasoning: false - }, - { - id: 'deepseek-v2.5', - name: 'DeepSeek V2.5', - temperature: 0.6, - maxTokens: 4000, - contextLength: 32768, - match: ['deepseek-v2.5', 'deepseek-v2-5'], - vision: false, - functionCall: true, - reasoning: false - }, - - // Claude系列模型配置 - { - id: 'claude-opus-4-1', - name: 'Claude Opus 4.1', - temperature: 0.7, - maxTokens: 32000, - contextLength: 204800, - match: ['claude-opus-4-1', 'claude-opus-4-1-20250805'], - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'claude-opus-4', - name: 'Claude Opus 4', - temperature: 0.7, - maxTokens: 32000, - contextLength: 204800, - match: ['claude-opus-4', 'claude-opus-4-20250514'], - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'claude-sonnet-4', - name: 'Claude Sonnet 4', - temperature: 0.7, - maxTokens: 64000, - contextLength: 204800, - match: ['claude-sonnet-4', 'claude-sonnet-4-20250514'], - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'claude-3-7-sonnet', - name: 'Claude 3.7 Sonnet', - temperature: 1, - maxTokens: 64000, - contextLength: 204800, - match: ['claude-3-7-sonnet', 'claude-3.7-sonnet'], - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'claude-3-5-sonnet', - name: 'Claude 3.5 Sonnet', - temperature: 0.7, - maxTokens: 8192, - contextLength: 204800, - match: ['claude-3-5-sonnet', 'claude-3.5-sonnet'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'claude-3-opus', - name: 'Claude 3 Opus', - temperature: 0.7, - maxTokens: 4096, - contextLength: 204800, - match: ['claude-3-opus', 'claude-3.opus'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'claude-3-haiku', - name: 'Claude 3 Haiku', - temperature: 0.7, - maxTokens: 4096, - contextLength: 204800, - match: ['claude-3-haiku', 'claude-3.haiku', 'claude-3-5-haiku', 'claude-3.5-haiku'], - vision: true, - functionCall: true, - reasoning: false - }, - - // OpenAI GPT系列模型配置 - { - id: 'gpt-oss-120b', - name: 'GPT OSS 120B', - temperature: 0.6, - maxTokens: 32000, - contextLength: 128000, - match: ['gpt-oss-120b'], - vision: false, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium' - }, - { - id: 'gpt-oss-20b', - name: 'GPT OSS 20B', - temperature: 0.6, - maxTokens: 16000, - contextLength: 128000, - match: ['gpt-oss-20b'], - vision: false, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium' - }, - { - id: 'o4-mini-high', - name: 'OpenAI o4 Mini High', - temperature: 0.7, - maxTokens: 100_000, - contextLength: 100_000, - match: ['o4-mini-high'], - vision: false, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium' - }, - { - id: 'o3', - name: 'OpenAI o3', - temperature: 0.7, - maxTokens: 100_000, - contextLength: 100_000, - match: ['o3'], - vision: false, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium' - }, - { - id: 'o3-pro', - name: 'OpenAI o3 Pro', - temperature: 0.7, - maxTokens: 100_000, - contextLength: 200_000, - match: ['o3-pro'], - vision: true, - functionCall: true, - reasoning: true, - reasoningEffort: 'high' - }, - { - id: 'o3-mini', - name: 'OpenAI o3 Mini', - temperature: 0.7, - maxTokens: 65536, - contextLength: 200_000, - match: ['o3-mini'], - vision: false, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium' - }, - { - id: 'o3-preview', - name: 'OpenAI o3 Preview', - temperature: 0.7, - maxTokens: 100_000, - contextLength: 200_000, - match: ['o3-preview'], - vision: true, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium' - }, - { - id: 'o4-mini', - name: 'OpenAI o4 Mini', - temperature: 0.7, - maxTokens: 100_000, - contextLength: 100_000, - match: ['o4-mini'], - vision: false, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium' - }, - { - id: 'gpt-4.1-nano', - name: 'GPT-4.1-Nano', - temperature: 0.7, - maxTokens: 32_000, - contextLength: 1_000_000, - match: ['gpt-4.1-nano'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'gpt-4.1-mini', - name: 'GPT-4.1-Mini', - temperature: 0.7, - maxTokens: 32_000, - contextLength: 1_000_000, - match: ['gpt-4.1-mini'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'gpt-4.1', - name: 'GPT-4.1', - temperature: 0.7, - maxTokens: 32_000, - contextLength: 1_000_000, - match: ['gpt-4.1'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'gpt-4o', - name: 'GPT-4o', - temperature: 0.7, - maxTokens: 4096, - contextLength: 128000, - match: ['gpt-4o'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'gpt-4-turbo', - name: 'GPT-4 Turbo', - temperature: 0.7, - maxTokens: 4096, - contextLength: 128000, - match: ['gpt-4-turbo', 'gpt-4-1106'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'gpt-4-32k', - name: 'GPT-4 32K', - temperature: 0.7, - maxTokens: 4096, - contextLength: 32768, - match: ['gpt-4-32k'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'gpt-4', - name: 'GPT-4', - temperature: 0.7, - maxTokens: 4096, - contextLength: 8192, - match: ['gpt-4-0'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'gpt-3.5-turbo-16k', - name: 'GPT-3.5 Turbo 16K', - temperature: 0.7, - maxTokens: 4096, - contextLength: 16384, - match: ['gpt-3.5-turbo-16k', 'gpt-3-5-turbo-16k'], - vision: false, - functionCall: true - }, - { - id: 'gpt-3.5-turbo', - name: 'GPT-3.5 Turbo', - temperature: 0.7, - maxTokens: 4096, - contextLength: 4096, - match: ['gpt-3.5-turbo', 'gpt-3-5-turbo'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'o1-preview', - name: 'OpenAI o1 Preview', - temperature: 0.7, - maxTokens: 32768, - contextLength: 128000, - match: ['o1-preview'], - vision: true, - functionCall: false, - reasoning: true, - reasoningEffort: 'medium' - }, - { - id: 'o1-mini', - name: 'OpenAI o1 Mini', - temperature: 0.7, - maxTokens: 65536, - contextLength: 128000, - match: ['o1-mini'], - vision: true, - functionCall: false, - reasoning: true, - reasoningEffort: 'medium' - }, - { - id: 'o1-pro', - name: 'OpenAI o1 Pro', - temperature: 0.7, - maxTokens: 32768, - contextLength: 128000, - match: ['o1-pro'], - vision: true, - functionCall: false, - reasoning: true, - reasoningEffort: 'high' - }, - { - id: 'o1', - name: 'OpenAI o1', - temperature: 0.7, - maxTokens: 32768, - contextLength: 128000, - match: ['o1'], - vision: true, - functionCall: false, - reasoning: true, - reasoningEffort: 'medium' - }, - { - id: 'gpt-5-chat', - name: 'GPT-5 Chat', - maxTokens: 16384, - contextLength: 272000, - match: ['gpt-5-chat', 'gpt-5-chat-latest'], - vision: true, - functionCall: false, - reasoning: true, - reasoningEffort: 'medium', - verbosity: 'medium', - maxCompletionTokens: 16384 - }, - { - id: 'gpt-5-mini', - name: 'GPT-5 Mini', - maxTokens: 128000, - contextLength: 272000, - match: ['gpt-5-mini', 'gpt-5-mini-2025-08-07'], - vision: true, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium', - verbosity: 'medium', - maxCompletionTokens: 128000 - }, - { - id: 'gpt-5-nano', - name: 'GPT-5 Nano', - maxTokens: 128000, - contextLength: 272000, - match: ['gpt-5-nano', 'gpt-5-nano-2025-08-07'], - vision: true, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium', - verbosity: 'medium', - maxCompletionTokens: 128000 - }, - { - id: 'gpt-5', - name: 'GPT-5', - maxTokens: 128000, - contextLength: 272000, - match: ['gpt-5', 'gpt-5-2025-08-07'], - vision: true, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium', - verbosity: 'medium', - maxCompletionTokens: 128000 - }, - { - id: 'gpt-4.5-preview', - name: 'GPT-4.5 Preview', - temperature: 0.7, - maxTokens: 16_384, - contextLength: 128000, - match: ['gpt-4.5-preview'], - vision: true, - functionCall: true, - reasoning: false - }, - // Llama系列 - { - id: 'llama-4-maverick', - name: 'Llama 4 Maverick', - temperature: 1, - maxTokens: 200_000, - contextLength: 200_000, - match: ['llama-4-maverick'], - vision: true, - functionCall: false, - reasoning: false - }, - { - id: 'llama-4-scout', - name: 'Llama 4 Scout', - temperature: 1, - maxTokens: 480_000, - contextLength: 480_000, - match: ['llama-4-scout'], - vision: true, - functionCall: false, - reasoning: false - }, - { - id: 'llama-3.1-405b', - name: 'Llama 3.1 405B', - temperature: 0.7, - maxTokens: 32768, - contextLength: 128000, - match: ['llama-3.1-405b', 'llama-3.1-405-b', 'llama-3.1-405'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'llama-3.1-70b', - name: 'Llama 3.1 70B', - temperature: 0.7, - maxTokens: 16384, - contextLength: 128000, - match: ['llama-3.1-70b', 'llama-3.1-70-b', 'llama-3.1-70'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'llama-3-70b', - name: 'Llama 3 70B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 32768, - match: ['llama-3-70b', 'llama-3-70-b', 'llama-3-70'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'llama-3.1-8b', - name: 'Llama 3.1 8B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 8192, - match: ['llama-3.1-8b', 'llama-3.1-8-b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'llama-3-8b', - name: 'Llama 3 8B', - temperature: 0.7, - maxTokens: 2048, - contextLength: 8192, - match: ['llama-3-8b', 'llama-3-8-b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'llama-2-70b', - name: 'Llama 2 70B', - temperature: 0.7, - maxTokens: 2048, - contextLength: 4096, - match: ['llama-2-70b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'llama-2', - name: 'Llama 2', - temperature: 0.7, - maxTokens: 2048, - contextLength: 4096, - match: ['llama-2-'], - vision: false, - functionCall: false, - reasoning: false - }, - - // Mistral系列 - { - id: 'mistral-large-2', - name: 'Mistral Large 2', - temperature: 0.7, - maxTokens: 8192, - contextLength: 32768, - match: ['mistral-large-2'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'mistral-large', - name: 'Mistral Large', - temperature: 0.7, - maxTokens: 8192, - contextLength: 32768, - match: ['mistral-large'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'mistral-8x7b', - name: 'Mistral 8x7B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 32768, - match: ['mistral-8x7b', 'mixtral-8x7b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'mistral-7b', - name: 'Mistral 7B', - temperature: 0.7, - maxTokens: 4096, - contextLength: 8192, - match: ['mistral-7b'], - vision: false, - functionCall: true, - reasoning: false - }, - - // Qwen系列 - { - id: 'qwq-32b', - name: 'Qwen 32B', - temperature: 0.7, - maxTokens: 4096, - contextLength: 32768, - match: ['qwq-32b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'QVQ-72B-Preview', - name: 'QVQ-72B-Preview', - temperature: 0.7, - maxTokens: 4096, - contextLength: 32768, - match: ['QVQ-72B-Preview'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'Qwen2-VL-72B-Instruct', - name: 'Qwen2-VL-72B-Instruct', - temperature: 0.7, - maxTokens: 4096, - contextLength: 32768, - match: ['Qwen2-VL-72B-Instruct'], - vision: true, - functionCall: false, - reasoning: false - }, - - { - id: 'qwen2.5-72b', - name: 'Qwen 2.5 72B', - temperature: 0.7, - maxTokens: 4096, - contextLength: 131072, - match: ['qwen2.5-72b', 'qwen-2.5-72b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'qwen2.5-32b', - name: 'Qwen 2.5 32B', - temperature: 0.7, - maxTokens: 4096, - contextLength: 131072, - match: ['qwen2.5-32b', 'qwen-2.5-32b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'qwen2.5-14b', - name: 'Qwen 2.5 14B', - temperature: 0.7, - maxTokens: 4096, - contextLength: 131072, - match: ['qwen2.5-14b', 'qwen-2.5-14b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'qwen2.5-7b', - name: 'Qwen 2.5 7B', - temperature: 0.7, - maxTokens: 4096, - contextLength: 131072, - match: ['qwen2.5-7b', 'qwen-2.5-7b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'qwen2.5', - name: 'Qwen 2.5', - temperature: 0.7, - maxTokens: 4096, - contextLength: 128000, - match: ['qwen2.5-', 'qwen-2.5-'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'qwen', - name: 'Qwen', - temperature: 0.7, - maxTokens: 2048, - contextLength: 32768, - match: ['qwen-'], - vision: false, - functionCall: false, - reasoning: false - }, - - // Qwen3系列模型 - { - id: 'qwen3-235b-a22b-thinking-2507', - name: 'Qwen3 235B A22B Thinking 2507', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-235b-a22b-thinking-2507', 'qwen/qwen3-235b-a22b-thinking-2507'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 81920 - }, - { - id: 'qwen3-235b-a22b', - name: 'Qwen3 235B A22B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-235b-a22b', 'qwen/qwen3-235b-a22b'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 81920 - }, - { - id: 'qwen3-30b-a3b-thinking-2507', - name: 'Qwen3 30B A3B Thinking 2507', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-30b-a3b-thinking-2507', 'qwen/qwen3-30b-a3b-thinking-2507'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 81920 - }, - { - id: 'qwen3-32b', - name: 'Qwen3 32B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-32b', 'qwen/qwen3-32b'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 38912 - }, - { - id: 'qwen3-30b-a3b', - name: 'Qwen3 30B A3B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-30b-a3b', 'qwen/qwen3-30b-a3b'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 38912 - }, - { - id: 'qwen3-14b', - name: 'Qwen3 14B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-14b', 'qwen/qwen3-14b'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 38912 - }, - { - id: 'qwen3-8b', - name: 'Qwen3 8B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-8b', 'qwen/qwen3-8b'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 38912 - }, - { - id: 'qwen3-4b', - name: 'Qwen3 4B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-4b', 'qwen/qwen3-4b'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 38912 - }, - { - id: 'qwen3-1.7b', - name: 'Qwen3 1.7B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-1.7b', 'qwen/qwen3-1.7b'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 20000 - }, - { - id: 'qwen3-0.6b', - name: 'Qwen3 0.6B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-0.6b', 'qwen/qwen3-0.6b'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 20000 - }, - - // Yi系列 - { - id: 'yi-34b', - name: 'Yi 34B', - temperature: 0.7, - maxTokens: 4096, - contextLength: 32768, - match: ['yi-34b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'yi', - name: 'Yi', - temperature: 0.7, - maxTokens: 4096, - contextLength: 16384, - match: ['yi-'], - vision: false, - functionCall: false, - reasoning: false - }, - - // Gemma系列 - { - id: 'gemma-3', - name: 'Gemma 3', - temperature: 0.7, - maxTokens: 40000, - contextLength: 120_000, - match: ['gemma-3', 'gemma3'], - vision: true, - functionCall: false, - reasoning: false - }, - { - id: 'gemma-2-27b', - name: 'Gemma 2 27B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 8192, - match: ['gemma-2-27b', 'gemma2'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'gemma-2-9b', - name: 'Gemma 2 9B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 8192, - match: ['gemma-2-9b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'gemma-2-2b', - name: 'Gemma 2 2B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 8192, - match: ['gemma-2-2b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'gemma-7b', - name: 'Gemma 7B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 8192, - match: ['gemma-7b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'gemma-2b', - name: 'Gemma 2B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 8192, - match: ['gemma-2b'], - vision: false, - functionCall: false, - reasoning: false - }, - - // Phi系列 - { - id: 'phi-4', - name: 'Phi-4', - temperature: 0.7, - maxTokens: 4096, - contextLength: 128000, - match: ['phi-4-', 'phi4-', 'phi4'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'phi-3', - name: 'Phi-3', - temperature: 0.7, - maxTokens: 4096, - contextLength: 32768, - match: ['phi-3-', 'phi3-', 'phi3'], - vision: false, - functionCall: false, - reasoning: false - }, - - // Doubao (字节跳动)模型配置 - { - id: 'doubao-1.5-pro-256k', - name: 'Doubao 1.5 Pro 256K', - temperature: 0.7, - maxTokens: 8192, - contextLength: 262144, - match: ['doubao-1.5-pro-256k'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'doubao-1.5-vision-pro-32k', - name: 'Doubao 1.5 Vision Pro 32K', - temperature: 0.7, - maxTokens: 4096, - contextLength: 32768, - match: ['doubao-1.5-vision-pro-32k'], - vision: true, - functionCall: false, - reasoning: false - }, - { - id: 'doubao-1.5-pro-32k', - name: 'Doubao 1.5 Pro 32K', - temperature: 0.7, - maxTokens: 4096, - contextLength: 32768, - match: ['doubao-1.5-pro-32k'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'doubao', - name: 'Doubao', - temperature: 0.7, - maxTokens: 4096, - contextLength: 16384, - match: ['doubao'], - vision: false, - functionCall: false, - reasoning: false - }, - - // MiniMax模型配置 - { - id: 'minimax-m1-80k', - name: 'MiniMax M1 80K', - temperature: 0.7, - maxTokens: 40_000, - contextLength: 128_000, - match: ['minimax-m1-80k'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'minimax-01', - name: 'MiniMax 01', - temperature: 0.7, - maxTokens: 8192, - contextLength: 1048576, - match: ['minimax-01', 'minimax/minimax-01', 'minimax-text-01'], - vision: false, - functionCall: true, - reasoning: false - }, - - // Zhipu - { - id: 'glm-4.5', - name: 'GLM-4.5', - temperature: 0.7, - maxTokens: 8192, - contextLength: 128000, - match: ['glm-4.5'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'glm-4.5-air', - name: 'GLM-4.5-Air', - temperature: 0.7, - maxTokens: 8192, - contextLength: 128000, - match: ['glm-4.5-air'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'glm-4.5-x', - name: 'GLM-4.5-X', - temperature: 0.7, - maxTokens: 8192, - contextLength: 128000, - match: ['glm-4.5-x'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'glm-4.5-airx', - name: 'GLM-4.5-AirX', - temperature: 0.7, - maxTokens: 8192, - contextLength: 128000, - match: ['glm-4.5-airx'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'glm-4.5-flash', - name: 'GLM-4.5-Flash', - temperature: 0.7, - maxTokens: 8192, - contextLength: 128000, - match: ['glm-4.5-flash'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'glm-4-plus', - name: 'GLM-4-Plus', - temperature: 0.7, - maxTokens: 4096, - contextLength: 128000, - match: ['glm-4-plus'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'glm-4-air-250414', - name: 'GLM-4-Air-250414', - temperature: 0.7, - maxTokens: 16000, - contextLength: 128000, - match: ['glm-4-air-250414'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'glm-4-long', - name: 'GLM-4-Long', - temperature: 0.7, - maxTokens: 4096, - contextLength: 1000000, - match: ['glm-4-long'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'glm-4-airx', - name: 'GLM-4-AirX', - temperature: 0.7, - maxTokens: 4096, - contextLength: 8000, - match: ['glm-4-airx'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'glm-4-flashx', - name: 'GLM-4-FlashX', - temperature: 0.7, - maxTokens: 4096, - contextLength: 128000, - match: ['glm-4-flashx'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'glm-4-flash-250414', - name: 'GLM-4-Flash-250414', - temperature: 0.7, - maxTokens: 16000, - contextLength: 128000, - match: ['glm-4-flash-250414'], - vision: false, - functionCall: true, - reasoning: false - }, - // 智谱AI 推理模型 - { - id: 'glm-z1-air', - name: 'GLM-Z1-Air', - temperature: 0.7, - maxTokens: 32000, - contextLength: 32000, - match: ['glm-z1-air'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'glm-z1-airx', - name: 'GLM-Z1-AirX', - temperature: 0.7, - maxTokens: 30000, - contextLength: 32000, - match: ['glm-z1-airx'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'glm-z1-flash', - name: 'GLM-Z1-Flash', - temperature: 0.7, - maxTokens: 32000, - contextLength: 32000, - match: ['glm-z1-flash'], - vision: false, - functionCall: false, - reasoning: true - }, - // 智谱AI 多模态模型 - { - id: 'glm-4v-plus-0111', - name: 'GLM-4V-Plus-0111', - temperature: 0.7, - maxTokens: 4096, - contextLength: 16000, - match: ['glm-4v-plus-0111'], - vision: true, - functionCall: false, - reasoning: false - }, - { - id: 'glm-4v', - name: 'GLM-4V', - temperature: 0.7, - maxTokens: 4096, - contextLength: 4000, - match: ['glm-4v'], - vision: true, - functionCall: false, - reasoning: false - }, - { - id: 'glm-4v-flash', - name: 'GLM-4V-Flash', - temperature: 0.7, - maxTokens: 4096, - contextLength: 4000, - match: ['glm-4v-flash'], - vision: true, - functionCall: false, - reasoning: false - }, - { - id: 'glm-4.5v', - name: 'GLM-4.5V', - temperature: 0.7, - maxTokens: 8192, - contextLength: 65536, - match: ['glm-4.5v'], - vision: true, - functionCall: true, - reasoning: true - }, - - // Fireworks AI模型配置 - { - id: 'fireworks-llama-3.1-405b', - name: 'Fireworks Llama 3.1 405B', - temperature: 0.7, - maxTokens: 32768, - contextLength: 128000, - match: ['fireworks', 'llama-3.1-405b', 'llama-3.1-405-b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'fireworks-llama-3.1-70b', - name: 'Fireworks Llama 3.1 70B', - temperature: 0.7, - maxTokens: 16384, - contextLength: 128000, - match: ['fireworks', 'llama-3.1-70b', 'llama-3.1-70-b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'fireworks-llama-3.1-8b', - name: 'Fireworks Llama 3.1 8B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 8192, - match: ['fireworks', 'llama-3.1-8b', 'llama-3.1-8-b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'fireworks', - name: 'Fireworks', - temperature: 0.7, - maxTokens: 4096, - contextLength: 16384, - match: ['fireworks', 'accounts/fireworks/'], - vision: false, - functionCall: false, - reasoning: false - }, - - // Moonshot (月之暗面)模型配置 - { - id: 'moonshot-v1-8k', - name: 'Moonshot V1 8K', - temperature: 0.7, - maxTokens: 4096, - contextLength: 8192, - match: ['moonshot-v1-8k', 'moonshot/moonshot-v1-8k'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'moonshot-v1-32k', - name: 'Moonshot V1 32K', - temperature: 0.7, - maxTokens: 8192, - contextLength: 32768, - match: ['moonshot-v1-32k', 'moonshot/moonshot-v1-32k'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'moonshot-v1-128k', - name: 'Moonshot V1 128K', - temperature: 0.7, - maxTokens: 8192, - contextLength: 131072, - match: ['moonshot-v1-128k', 'moonshot/moonshot-v1-128k'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'moonshot', - name: 'Moonshot', - temperature: 0.7, - maxTokens: 4096, - contextLength: 32768, - match: ['moonshot'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'kimi-k2-0711-preview', - name: 'Kimi K2 Preview', - temperature: 0.7, - maxTokens: 12800, - contextLength: 131072, - match: ['kimi-k2-0711-preview', 'kimi-k2-preview', 'kimi-k2', 'kimi/k2'], - vision: false, - functionCall: true, - reasoning: false - }, - - // Azure OpenAI配置 - { - id: 'azure-openai-gpt-4o', - name: 'Azure OpenAI GPT-4o', - temperature: 0.7, - maxTokens: 4096, - contextLength: 128000, - match: ['azure-openai', 'azure/openai', 'gpt-4o'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'azure-openai-gpt-4-turbo', - name: 'Azure OpenAI GPT-4 Turbo', - temperature: 0.7, - maxTokens: 4096, - contextLength: 128000, - match: ['azure-openai', 'azure/openai', 'gpt-4-turbo', 'gpt-4-1106'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'azure-openai-gpt-4-32k', - name: 'Azure OpenAI GPT-4 32K', - temperature: 0.7, - maxTokens: 4096, - contextLength: 32768, - match: ['azure-openai', 'azure/openai', 'gpt-4-32k'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'azure-openai-gpt-4', - name: 'Azure OpenAI GPT-4', - temperature: 0.7, - maxTokens: 4096, - contextLength: 8192, - match: ['azure-openai', 'azure/openai', 'gpt-4'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'azure-openai-gpt-3.5-turbo-16k', - name: 'Azure OpenAI GPT-3.5 Turbo 16K', - temperature: 0.7, - maxTokens: 4096, - contextLength: 16384, - match: ['azure-openai', 'azure/openai', 'gpt-3.5-turbo-16k'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'azure-openai-gpt-3.5-turbo', - name: 'Azure OpenAI GPT-3.5 Turbo', - temperature: 0.7, - maxTokens: 4096, - contextLength: 4096, - match: ['azure-openai', 'azure/openai', 'gpt-3.5-turbo'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'text-embedding-nomic-embed-text', - name: 'Nomic Embed Text', - temperature: 0.0, - maxTokens: 2048, - contextLength: 2048, - match: ['text-embedding-nomic-embed-text', 'nomic/embed-text', 'nomic-embed-text'], - vision: false, - functionCall: false, - reasoning: false, - type: ModelType.Embedding - }, - { - id: 'all-minilm', - name: 'all-minilm', - temperature: 0.0, - maxTokens: 512, - contextLength: 512, - match: ['all-minilm'], - vision: false, - functionCall: false, - reasoning: false, - type: ModelType.Embedding - }, - { - id: 'embedding', - name: 'embedding', - temperature: 0.0, - maxTokens: 1024, - contextLength: 1024, - match: ['embedding', 'embed'], - vision: false, - functionCall: false, - reasoning: false, - type: ModelType.Embedding - } -] diff --git a/src/main/presenter/configPresenter/providerDbLoader.ts b/src/main/presenter/configPresenter/providerDbLoader.ts new file mode 100644 index 000000000..1d7d148f5 --- /dev/null +++ b/src/main/presenter/configPresenter/providerDbLoader.ts @@ -0,0 +1,225 @@ +import fs from 'fs' +import path from 'path' +import { app } from 'electron' +import { + ProviderAggregate, + ProviderEntry, + ProviderModel, + sanitizeAggregate +} from '@shared/types/model-db' +import { eventBus, SendTarget } from '@/eventbus' +import { PROVIDER_DB_EVENTS } from '@/events' + +const DEFAULT_PROVIDER_DB_URL = + 'https://raw.githubusercontent.com/ThinkInAIXYZ/PublicProviderConf/refs/heads/dev/dist/all.json' + +type MetaFile = { + sourceUrl: string + etag?: string + lastUpdated: number + ttlHours: number + lastAttemptedAt?: number +} + +export class ProviderDbLoader { + private cache: ProviderAggregate | null = null + private userDataDir: string + private cacheDir: string + private cacheFilePath: string + private metaFilePath: string + + constructor() { + this.userDataDir = app.getPath('userData') + this.cacheDir = path.join(this.userDataDir, 'provider-db') + this.cacheFilePath = path.join(this.cacheDir, 'providers.json') + this.metaFilePath = path.join(this.cacheDir, 'meta.json') + + try { + if (!fs.existsSync(this.cacheDir)) fs.mkdirSync(this.cacheDir, { recursive: true }) + } catch {} + } + + // Public: initialize on app start (non-blocking refresh) + async initialize(): Promise { + // Load from cache or built-in + this.cache = this.loadFromCache() ?? this.loadFromBuiltIn() + if (this.cache) { + try { + const providersCount = Object.keys(this.cache.providers || {}).length + eventBus.send(PROVIDER_DB_EVENTS.LOADED, SendTarget.ALL_WINDOWS, { + providersCount + }) + } catch {} + } + + // Background refresh if needed (npm 缓存风格) + this.refreshIfNeeded().catch(() => {}) + } + + getDb(): ProviderAggregate | null { + if (this.cache) return this.cache + // Lazy try again if not initialized yet + this.cache = this.loadFromCache() ?? this.loadFromBuiltIn() + return this.cache + } + + getProvider(providerId: string): ProviderEntry | undefined { + const db = this.getDb() + if (!db) return undefined + return db.providers?.[providerId] + } + + getModel(providerId: string, modelId: string): ProviderModel | undefined { + const provider = this.getProvider(providerId) + if (!provider) return undefined + return provider.models.find((m) => m.id === modelId) + } + + private loadFromCache(): ProviderAggregate | null { + try { + if (!fs.existsSync(this.cacheFilePath)) return null + const raw = fs.readFileSync(this.cacheFilePath, 'utf-8') + const parsed = JSON.parse(raw) + const sanitized = sanitizeAggregate(parsed) + if (!sanitized) return null + return sanitized + } catch { + return null + } + } + + private loadFromBuiltIn(): ProviderAggregate | null { + try { + const helperPath = path.join(app.getAppPath(), 'resources', 'model-db', 'providers.json') + if (!fs.existsSync(helperPath)) return null + const raw = fs.readFileSync(helperPath, 'utf-8') + const parsed = JSON.parse(raw) + const sanitized = sanitizeAggregate(parsed) + return sanitized ?? null + } catch { + return null + } + } + + private readMeta(): MetaFile | null { + try { + if (!fs.existsSync(this.metaFilePath)) return null + const raw = fs.readFileSync(this.metaFilePath, 'utf-8') + return JSON.parse(raw) + } catch { + return null + } + } + + private writeMeta(meta: MetaFile): void { + try { + fs.writeFileSync(this.metaFilePath, JSON.stringify(meta, null, 2), 'utf-8') + } catch {} + } + + private writeCacheAtomically(db: ProviderAggregate): void { + const tmp = this.cacheFilePath + '.tmp' + fs.writeFileSync(tmp, JSON.stringify(db, null, 2)) + fs.renameSync(tmp, this.cacheFilePath) + } + + private now(): number { + return Date.now() + } + + private getTtlHours(): number { + const env = process.env.PROVIDER_DB_TTL_HOURS + const v = env ? Number(env) : 24 + return Number.isFinite(v) && v > 0 ? v : 24 + } + + async refreshIfNeeded(force = false): Promise { + const meta = this.readMeta() + const ttlHours = this.getTtlHours() + const url = process.env.PROVIDER_DB_URL || DEFAULT_PROVIDER_DB_URL + + const needFirstFetch = !meta || !fs.existsSync(this.cacheFilePath) + const expired = meta ? this.now() - meta.lastUpdated > ttlHours * 3600 * 1000 : true + + if (!force && !needFirstFetch && !expired) return + + await this.fetchAndUpdate(url, meta || undefined) + } + + private async fetchAndUpdate(url: string, prevMeta?: MetaFile): Promise { + const controller = new AbortController() + const timeout = setTimeout(() => controller.abort(), 15000) + try { + const headers: Record = {} + if (prevMeta?.etag) headers['If-None-Match'] = prevMeta.etag + + const res = await fetch(url, { headers, signal: controller.signal }) + const now = this.now() + + if (res.status === 304 && prevMeta) { + // Not modified; update attempted time only + this.writeMeta({ ...prevMeta, lastAttemptedAt: now }) + return + } + + if (!res.ok) { + // Keep old cache + const meta = prevMeta ? { ...prevMeta, lastAttemptedAt: now } : undefined + if (meta) this.writeMeta(meta) + return + } + + const text = await res.text() + // Size guard (≈ 5MB) + if (text.length > 5 * 1024 * 1024) { + const meta = prevMeta ? { ...prevMeta, lastAttemptedAt: now } : undefined + if (meta) this.writeMeta(meta) + return + } + + let parsed: unknown + try { + parsed = JSON.parse(text) + } catch { + const meta = prevMeta ? { ...prevMeta, lastAttemptedAt: now } : undefined + if (meta) this.writeMeta(meta) + return + } + + const sanitized = sanitizeAggregate(parsed) + if (!sanitized) { + const meta = prevMeta ? { ...prevMeta, lastAttemptedAt: now } : undefined + if (meta) this.writeMeta(meta) + return + } + + const etag = res.headers.get('etag') || undefined + const meta: MetaFile = { + sourceUrl: url, + etag, + lastUpdated: now, + ttlHours: this.getTtlHours(), + lastAttemptedAt: now + } + + // Write cache atomically and update in-memory + this.writeCacheAtomically(sanitized) + this.writeMeta(meta) + this.cache = sanitized + try { + const providersCount = Object.keys(sanitized.providers || {}).length + eventBus.send(PROVIDER_DB_EVENTS.UPDATED, SendTarget.ALL_WINDOWS, { + providersCount, + lastUpdated: meta.lastUpdated + }) + } catch {} + } catch { + // ignore + } finally { + clearTimeout(timeout) + } + } +} + +// Shared singleton +export const providerDbLoader = new ProviderDbLoader() diff --git a/src/main/presenter/configPresenter/providerModelSettings.ts b/src/main/presenter/configPresenter/providerModelSettings.ts deleted file mode 100644 index c18c4978d..000000000 --- a/src/main/presenter/configPresenter/providerModelSettings.ts +++ /dev/null @@ -1,3345 +0,0 @@ -import { ModelType } from '@shared/model' -import { ModelConfig } from '@shared/presenter' - -// Define the model matching rules and configuration interface for each provider, maintaining consistency with modelDefaultSettings -export interface ProviderModelSetting { - id: string // Model ID - name: string // Model name - match: string[] // String array used to match model IDs - maxTokens: number // Maximum generation token count - contextLength: number // Context length - temperature?: number // Temperature parameter - vision?: boolean // Whether vision is supported - functionCall?: boolean // Whether function calling is supported - reasoning?: boolean // Whether reasoning capability is supported - type?: ModelType // Model type, defaults to Chat - // GPT-5 series new parameters - reasoningEffort?: 'minimal' | 'low' | 'medium' | 'high' - verbosity?: 'low' | 'medium' | 'high' - maxCompletionTokens?: number // GPT-5 series uses this parameter instead of maxTokens - thinkingBudget?: number // Thinking budget parameter - enableSearch?: boolean // Whether internet search is supported - forcedSearch?: boolean // Whether forced internet search is enabled - searchStrategy?: 'turbo' | 'max' // Search strategy -} - -// Create mapping objects for each provider, wrapping model configurations with models array -export const providerModelSettings: Record = { - // OpenAI provider-specific model configurations - openai: { - models: [ - { - id: 'gpt-5-chat', - name: 'GPT-5 Chat', - maxTokens: 16384, - contextLength: 272000, - match: ['gpt-5-chat', 'gpt-5-chat-latest'], - vision: true, - functionCall: false, - reasoning: true, - reasoningEffort: 'medium', - verbosity: 'medium', - maxCompletionTokens: 16384 - }, - { - id: 'gpt-5-mini', - name: 'GPT-5 Mini', - maxTokens: 128000, - contextLength: 272000, - match: ['gpt-5-mini', 'gpt-5-mini-2025-08-07'], - vision: true, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium', - verbosity: 'medium', - maxCompletionTokens: 128000 - }, - { - id: 'gpt-5-nano', - name: 'GPT-5 Nano', - maxTokens: 128000, - contextLength: 272000, - match: ['gpt-5-nano', 'gpt-5-nano-2025-08-07'], - vision: true, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium', - verbosity: 'medium', - maxCompletionTokens: 128000 - }, - { - id: 'gpt-5', - name: 'GPT-5', - maxTokens: 128000, - contextLength: 272000, - match: ['gpt-5', 'gpt-5-2025-08-07'], - vision: true, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium', - verbosity: 'medium', - maxCompletionTokens: 128000 - } - ] - }, - - // Volcengine (Doubao) provider-specific model configurations - doubao: { - models: [ - // DeepSeek models - { - id: 'deepseek-v3-1-250821', - name: 'DeepSeek V3.1', - temperature: 0.7, - maxTokens: 32000, - contextLength: 128000, - match: ['deepseek-v3-1-250821', 'deepseek-v3.1'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'deepseek-r1-250120', - name: 'DeepSeek R1', - temperature: 0.7, - maxTokens: 4096, - contextLength: 64000, - match: ['deepseek-r1-250120', 'deepseek-r1'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-r1-distill-qwen-32b-250120', - name: 'DeepSeek R1 Distill Qwen 32B', - temperature: 0.7, - maxTokens: 4096, - contextLength: 32000, - match: ['deepseek-r1-distill-qwen-32b-250120', 'deepseek-r1-distill-qwen-32b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-r1-distill-qwen-7b-250120', - name: 'DeepSeek R1 Distill Qwen 7B', - temperature: 0.7, - maxTokens: 4096, - contextLength: 32000, - match: ['deepseek-r1-distill-qwen-7b-250120', 'deepseek-r1-distill-qwen-7b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-v3-250324', - name: 'DeepSeek V3', - temperature: 0.7, - maxTokens: 4096, - contextLength: 64000, - match: ['deepseek-v3-250324', 'deepseek-v3'], - vision: false, - functionCall: true, - reasoning: false - }, - // Doubao native models - { - id: 'doubao-seed-1-6-vision-250815', - name: 'Doubao Seed 1.6 Vision', - temperature: 0.7, - maxTokens: 32000, - contextLength: 256000, - match: ['doubao-seed-1-6-vision-250815', 'doubao-seed-1.6-vision'], - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'doubao-seed-1-6-250615', - name: 'Doubao Seed 1.6', - temperature: 0.7, - maxTokens: 32000, - contextLength: 256000, - match: ['doubao-seed-1-6-250615', 'doubao-seed-1.6'], - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'doubao-seed-1-6-flash-250715', - name: 'Doubao Seed 1.6 Flash', - temperature: 0.7, - maxTokens: 32000, - contextLength: 256000, - match: ['doubao-seed-1-6-flash-250715', 'doubao-seed-1.6-flash'], - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'doubao-seed-1-6-flash-250615', - name: 'Doubao Seed 1.6 Flash (250615)', - temperature: 0.7, - maxTokens: 32000, - contextLength: 256000, - match: ['doubao-seed-1-6-flash-250615'], - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'doubao-seed-1-6-thinking-250715', - name: 'Doubao Seed 1.6 Thinking', - temperature: 0.7, - maxTokens: 32000, - contextLength: 256000, - match: ['doubao-seed-1-6-thinking-250715', 'doubao-seed-1.6-thinking'], - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'doubao-seed-1-6-thinking-250615', - name: 'Doubao Seed 1.6 Thinking (250615)', - temperature: 0.7, - maxTokens: 32000, - contextLength: 256000, - match: ['doubao-seed-1-6-thinking-250615'], - vision: true, - functionCall: true, - reasoning: true - } - ] - }, - - // Anthropic provider-specific model configurations - anthropic: { - models: [ - { - id: 'claude-sonnet-4-5-20250929', - name: 'Claude Sonnet 4.5', - temperature: 0.7, - maxTokens: 64000, - contextLength: 204800, - match: ['claude-sonnet-4-5', 'claude-sonnet-4-5-20250929'], - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'claude-opus-4-1', - name: 'Claude Opus 4.1', - temperature: 0.7, - maxTokens: 32000, - contextLength: 204800, - match: ['claude-opus-4-1', 'claude-opus-4-1-20250805'], - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'claude-opus-4', - name: 'Claude Opus 4', - temperature: 0.7, - maxTokens: 32000, - contextLength: 204800, - match: ['claude-opus-4', 'claude-opus-4-20250514'], - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'claude-sonnet-4', - name: 'Claude Sonnet 4', - temperature: 0.7, - maxTokens: 64000, - contextLength: 204800, - match: ['claude-sonnet-4', 'claude-sonnet-4-20250514'], - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'claude-3-7-sonnet', - name: 'Claude 3.7 Sonnet', - temperature: 1, - maxTokens: 64000, - contextLength: 204800, - match: ['claude-3-7-sonnet', 'claude-3.7-sonnet'], - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'claude-3-5-sonnet', - name: 'Claude 3.5 Sonnet', - temperature: 0.7, - maxTokens: 8192, - contextLength: 204800, - match: ['claude-3-5-sonnet', 'claude-3.5-sonnet'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'claude-3-opus', - name: 'Claude 3 Opus', - temperature: 0.7, - maxTokens: 4096, - contextLength: 204800, - match: ['claude-3-opus', 'claude-3.opus'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'claude-3-haiku', - name: 'Claude 3 Haiku', - temperature: 0.7, - maxTokens: 4096, - contextLength: 204800, - match: ['claude-3-haiku', 'claude-3.haiku', 'claude-3-5-haiku', 'claude-3.5-haiku'], - vision: true, - functionCall: true, - reasoning: false - } - ] - }, - - // Gemini provider-specific model configurations - gemini: { - models: [ - { - id: 'gemini-2.5-pro', - name: 'Gemini 2.5 Pro', - temperature: 0.7, - maxTokens: 65535, - contextLength: 1048576, - match: ['gemini-2.5-pro'], - vision: true, - functionCall: true, - reasoning: true, - enableSearch: false - }, - { - id: 'google/gemini-2.5-flash-image-preview', - name: 'Gemini 2.5 Flash Image Preview', - temperature: 0.7, - maxTokens: 32768, - contextLength: 32768, - match: ['google/gemini-2.5-flash-image-preview', 'gemini-2.5-flash-image-preview'], - vision: true, - functionCall: false, - reasoning: false, - type: ModelType.ImageGeneration - }, - { - id: 'models/gemini-2.5-flash-lite-preview-06-17', - name: 'Gemini 2.5 Flash-Lite Preview', - temperature: 0.7, - maxTokens: 65535, - contextLength: 1048576, - match: ['models/gemini-2.5-flash-lite-preview-06-17', 'gemini-2.5-flash-lite-preview'], - vision: true, - functionCall: true, - reasoning: true, - enableSearch: false - }, - { - id: 'models/gemini-2.5-flash-lite', - name: 'Gemini 2.5 Flash Lite', - temperature: 0.7, - maxTokens: 65535, - contextLength: 1048576, - match: ['models/gemini-2.5-flash-lite', 'gemini-2.5-flash-lite'], - vision: true, - functionCall: true, - reasoning: true, - enableSearch: false - }, - { - id: 'models/gemini-2.5-flash', - name: 'Gemini 2.5 Flash', - temperature: 0.7, - maxTokens: 65535, - contextLength: 1048576, - match: ['models/gemini-2.5-flash', 'gemini-2.5-flash'], - vision: true, - functionCall: true, - reasoning: true, - enableSearch: false - }, - { - id: 'models/gemini-2.0-flash-preview-image-generation', - name: 'Gemini 2.0 Flash Preview Image Generation', - temperature: 0.7, - maxTokens: 8192, - contextLength: 32000, - match: [ - 'models/gemini-2.0-flash-preview-image-generation', - 'gemini-2.0-flash-preview-image-generation' - ], - vision: true, - functionCall: false, - reasoning: false, - type: ModelType.ImageGeneration - }, - { - id: 'models/gemini-2.0-flash-lite', - name: 'Gemini 2.0 Flash Lite', - temperature: 0.7, - maxTokens: 8191, - contextLength: 1048576, - match: ['models/gemini-2.0-flash-lite', 'gemini-2.0-flash-lite'], - vision: true, - functionCall: true, - reasoning: false, - enableSearch: false - }, - { - id: 'models/gemini-2.0-flash', - name: 'Gemini 2.0 Flash', - temperature: 0.7, - maxTokens: 8191, - contextLength: 1048576, - match: ['models/gemini-2.0-flash', 'gemini-2.0-flash'], - vision: true, - functionCall: true, - reasoning: true, - enableSearch: false - }, - { - id: 'models/gemini-1.5-flash', - name: 'Gemini 1.5 Flash', - temperature: 0.7, - maxTokens: 8191, - contextLength: 1048576, - match: ['models/gemini-1.5-flash', 'gemini-1.5-flash'], - vision: true, - functionCall: true, - reasoning: false, - enableSearch: false - }, - { - id: 'models/gemini-1.5-pro', - name: 'Gemini 1.5 Pro', - temperature: 0.7, - maxTokens: 8191, - contextLength: 2097152, - match: ['models/gemini-1.5-pro', 'gemini-1.5-pro'], - vision: true, - functionCall: true, - reasoning: false, - enableSearch: false - } - ] - }, - - // Huawei Cloud Hunyuan provider-specific model configurations - hunyuan: { - models: [] - }, - - // DeepSeek provider-specific model configurations - deepseek: { - models: [ - { - id: 'deepseek-chat', - name: 'DeepSeek chat', - temperature: 1, - maxTokens: 8192, - contextLength: 128000, - match: ['deepseek-chat'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'deepseek-reasoner', - name: 'DeepSeek Reasoner', - temperature: 1, - maxTokens: 64000, - contextLength: 128000, - match: ['deepseek-reasoner'], - vision: false, - functionCall: false, // Must be disabled, otherwise it will automatically call 3.1's non-thinking mode - reasoning: true - } - ] - }, - - // MiniMax provider-specific model configurations - minimax: { - models: [] - }, - - // Zhipu AI provider-specific model configurations - zhipu: { - models: [ - // GLM 4.5 series models - { - id: 'glm-4.5v', - name: 'GLM-4.5V', - temperature: 0.7, - maxTokens: 8192, - contextLength: 65536, - match: ['glm-4.5v'], - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'glm-4.5', - name: 'GLM-4.5', - temperature: 0.7, - maxTokens: 8192, - contextLength: 128000, - match: ['glm-4.5'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'glm-4.5-air', - name: 'GLM-4.5-Air', - temperature: 0.7, - maxTokens: 8192, - contextLength: 128000, - match: ['glm-4.5-air'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'glm-4.5-x', - name: 'GLM-4.5-X', - temperature: 0.7, - maxTokens: 8192, - contextLength: 128000, - match: ['glm-4.5-x'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'glm-4.5-airx', - name: 'GLM-4.5-AirX', - temperature: 0.7, - maxTokens: 8192, - contextLength: 128000, - match: ['glm-4.5-airx'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'glm-4.5-flash', - name: 'GLM-4.5-Flash', - temperature: 0.7, - maxTokens: 8192, - contextLength: 128000, - match: ['glm-4.5-flash'], - vision: false, - functionCall: true, - reasoning: true - } - ] - }, - - // Moonshot provider-specific model configurations - moonshot: { - models: [ - { - id: 'kimi-k2-0905-preview', - name: 'Kimi K2 0905 Preview', - temperature: 0.7, - maxTokens: 65536, - contextLength: 262144, - match: ['kimi-k2-0905-preview'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'kimi-k2-0711-preview', - name: 'Kimi K2 0711 Preview', - temperature: 0.7, - maxTokens: 65536, - contextLength: 131072, - match: ['kimi-k2-0711-preview'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'kimi-k2-turbo-preview', - name: 'Kimi K2 Turbo Preview', - temperature: 0.7, - maxTokens: 65536, - contextLength: 262144, - match: ['kimi-k2-turbo-preview'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'kimi-latest', - name: 'Kimi Latest', - temperature: 0.7, - maxTokens: 65536, - contextLength: 131072, - match: ['kimi-latest'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'kimi-latest-8k', - name: 'Kimi Latest 8K', - temperature: 0.7, - maxTokens: 4096, - contextLength: 8192, - match: ['kimi-latest-8k'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'kimi-latest-32k', - name: 'Kimi Latest 32K', - temperature: 0.7, - maxTokens: 16384, - contextLength: 32768, - match: ['kimi-latest-32k'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'kimi-latest-128k', - name: 'Kimi Latest 128K', - temperature: 0.7, - maxTokens: 65536, - contextLength: 131072, - match: ['kimi-latest-128k'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'moonshot-v1-8k', - name: 'Moonshot V1 8K', - temperature: 0.7, - maxTokens: 4096, - contextLength: 8192, - match: ['moonshot-v1-8k'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'moonshot-v1-32k', - name: 'Moonshot V1 32K', - temperature: 0.7, - maxTokens: 16384, - contextLength: 32768, - match: ['moonshot-v1-32k'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'moonshot-v1-128k', - name: 'Moonshot V1 128K', - temperature: 0.7, - maxTokens: 65536, - contextLength: 131072, - match: ['moonshot-v1-128k'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'moonshot-v1-8k-vision-preview', - name: 'Moonshot V1 8K Vision Preview', - temperature: 0.7, - maxTokens: 4096, - contextLength: 8192, - match: ['moonshot-v1-8k-vision-preview'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'moonshot-v1-32k-vision-preview', - name: 'Moonshot V1 32K Vision Preview', - temperature: 0.7, - maxTokens: 16384, - contextLength: 32768, - match: ['moonshot-v1-32k-vision-preview'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'moonshot-v1-128k-vision-preview', - name: 'Moonshot V1 128K Vision Preview', - temperature: 0.7, - maxTokens: 65536, - contextLength: 131072, - match: ['moonshot-v1-128k-vision-preview'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'kimi-thinking-preview', - name: 'Kimi Thinking Preview', - temperature: 0.7, - maxTokens: 65536, - contextLength: 131072, - match: ['kimi-thinking-preview'], - vision: true, - functionCall: false, - reasoning: true - } - ] - }, - - // Ollama provider-specific model configurations - ollama: { - models: [ - // OpenAI open-source models - { - id: 'gpt-oss:20b', - name: 'GPT-OSS 20B', - temperature: 0.6, - maxTokens: 16000, - contextLength: 128000, - match: ['gpt-oss:20b'], - vision: false, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium' - }, - { - id: 'gpt-oss:120b', - name: 'GPT-OSS 120B', - temperature: 0.6, - maxTokens: 32000, - contextLength: 128000, - match: ['gpt-oss:120b'], - vision: false, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium' - }, - // DeepSeek reasoning model series - { - id: 'deepseek-r1:1.5b', - name: 'DeepSeek R1 1.5B', - temperature: 0.7, - maxTokens: 32768, - contextLength: 65536, - match: ['deepseek-r1:1.5b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-r1:7b', - name: 'DeepSeek R1 7B', - temperature: 0.7, - maxTokens: 32768, - contextLength: 65536, - match: ['deepseek-r1:7b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-r1:8b', - name: 'DeepSeek R1 8B', - temperature: 0.7, - maxTokens: 32768, - contextLength: 65536, - match: ['deepseek-r1:8b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-r1:14b', - name: 'DeepSeek R1 14B', - temperature: 0.7, - maxTokens: 32768, - contextLength: 65536, - match: ['deepseek-r1:14b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-r1:32b', - name: 'DeepSeek R1 32B', - temperature: 0.7, - maxTokens: 32768, - contextLength: 65536, - match: ['deepseek-r1:32b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-r1:70b', - name: 'DeepSeek R1 70B', - temperature: 0.7, - maxTokens: 32768, - contextLength: 131072, - match: ['deepseek-r1:70b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-r1:671b', - name: 'DeepSeek R1 671B', - temperature: 0.7, - maxTokens: 65536, - contextLength: 131072, - match: ['deepseek-r1:671b'], - vision: false, - functionCall: false, - reasoning: true - }, - // DeepSeek V3/V2.5 series - { - id: 'deepseek-v3:671b', - name: 'DeepSeek V3 671B', - temperature: 0.7, - maxTokens: 32768, - contextLength: 131072, - match: ['deepseek-v3:671b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'deepseek-v2.5:236b', - name: 'DeepSeek V2.5 236B', - temperature: 0.7, - maxTokens: 32768, - contextLength: 131072, - match: ['deepseek-v2.5:236b'], - vision: false, - functionCall: true, - reasoning: false - }, - // Gemma3 series - { - id: 'gemma3:1b', - name: 'Gemma3 1B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 32768, - match: ['gemma3:1b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'gemma3:4b', - name: 'Gemma3 4B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 32768, - match: ['gemma3:4b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'gemma3:12b', - name: 'Gemma3 12B', - temperature: 0.7, - maxTokens: 16384, - contextLength: 65536, - match: ['gemma3:12b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'gemma3:27b', - name: 'Gemma3 27B', - temperature: 0.7, - maxTokens: 16384, - contextLength: 65536, - match: ['gemma3:27b'], - vision: false, - functionCall: true, - reasoning: false - }, - // Gemma2 series - { - id: 'gemma2:2b', - name: 'Gemma2 2B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 32768, - match: ['gemma2:2b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'gemma2:9b', - name: 'Gemma2 9B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 32768, - match: ['gemma2:9b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'gemma2:27b', - name: 'Gemma2 27B', - temperature: 0.7, - maxTokens: 16384, - contextLength: 65536, - match: ['gemma2:27b'], - vision: false, - functionCall: true, - reasoning: false - }, - // Gemma series - { - id: 'gemma:2b', - name: 'Gemma 2B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 32768, - match: ['gemma:2b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'gemma:7b', - name: 'Gemma 7B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 32768, - match: ['gemma:7b'], - vision: false, - functionCall: true, - reasoning: false - }, - // Qwen3 series - { - id: 'qwen3:0.6b', - name: 'Qwen3 0.6B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3:0.6b'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'qwen3:1.7b', - name: 'Qwen3 1.7B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3:1.7b'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'qwen3:4b', - name: 'Qwen3 4B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3:4b'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'qwen3:8b', - name: 'Qwen3 8B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3:8b'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'qwen3:14b', - name: 'Qwen3 14B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3:14b'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'qwen3:30b', - name: 'Qwen3 30B', - temperature: 0.6, - maxTokens: 16384, - contextLength: 40960, - match: ['qwen3:30b'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'qwen3:32b', - name: 'Qwen3 32B', - temperature: 0.6, - maxTokens: 16384, - contextLength: 40960, - match: ['qwen3:32b'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'qwen3:235b', - name: 'Qwen3 235B', - temperature: 0.6, - maxTokens: 32768, - contextLength: 40960, - match: ['qwen3:235b'], - vision: false, - functionCall: true, - reasoning: true - }, - // Qwen3 programming models - { - id: 'qwen3-coder:30b', - name: 'Qwen3 Coder 30B', - temperature: 0.6, - maxTokens: 16384, - contextLength: 40960, - match: ['qwen3-coder:30b'], - vision: false, - functionCall: true, - reasoning: true - }, - // Qwen2.5 series - { - id: 'qwen2.5:0.5b', - name: 'Qwen2.5 0.5B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 131072, - match: ['qwen2.5:0.5b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen2.5:1.5b', - name: 'Qwen2.5 1.5B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 131072, - match: ['qwen2.5:1.5b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen2.5:3b', - name: 'Qwen2.5 3B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 131072, - match: ['qwen2.5:3b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen2.5:7b', - name: 'Qwen2.5 7B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 131072, - match: ['qwen2.5:7b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen2.5:14b', - name: 'Qwen2.5 14B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 131072, - match: ['qwen2.5:14b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen2.5:32b', - name: 'Qwen2.5 32B', - temperature: 0.6, - maxTokens: 16384, - contextLength: 131072, - match: ['qwen2.5:32b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen2.5:72b', - name: 'Qwen2.5 72B', - temperature: 0.6, - maxTokens: 32768, - contextLength: 131072, - match: ['qwen2.5:72b'], - vision: false, - functionCall: true, - reasoning: false - }, - // Qwen2.5 programming model series - { - id: 'qwen2.5-coder:0.5b', - name: 'Qwen2.5 Coder 0.5B', - temperature: 0.3, - maxTokens: 8192, - contextLength: 131072, - match: ['qwen2.5-coder:0.5b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen2.5-coder:1.5b', - name: 'Qwen2.5 Coder 1.5B', - temperature: 0.3, - maxTokens: 8192, - contextLength: 131072, - match: ['qwen2.5-coder:1.5b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen2.5-coder:3b', - name: 'Qwen2.5 Coder 3B', - temperature: 0.3, - maxTokens: 8192, - contextLength: 131072, - match: ['qwen2.5-coder:3b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen2.5-coder:7b', - name: 'Qwen2.5 Coder 7B', - temperature: 0.3, - maxTokens: 8192, - contextLength: 131072, - match: ['qwen2.5-coder:7b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen2.5-coder:14b', - name: 'Qwen2.5 Coder 14B', - temperature: 0.3, - maxTokens: 8192, - contextLength: 131072, - match: ['qwen2.5-coder:14b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen2.5-coder:32b', - name: 'Qwen2.5 Coder 32B', - temperature: 0.3, - maxTokens: 16384, - contextLength: 131072, - match: ['qwen2.5-coder:32b'], - vision: false, - functionCall: true, - reasoning: false - }, - // Qwen2 series - { - id: 'qwen2:0.5b', - name: 'Qwen2 0.5B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 32768, - match: ['qwen2:0.5b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen2:1.5b', - name: 'Qwen2 1.5B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 32768, - match: ['qwen2:1.5b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen2:7b', - name: 'Qwen2 7B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 32768, - match: ['qwen2:7b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen2:72b', - name: 'Qwen2 72B', - temperature: 0.6, - maxTokens: 32768, - contextLength: 32768, - match: ['qwen2:72b'], - vision: false, - functionCall: true, - reasoning: false - }, - // Qwen first generation series - { - id: 'qwen:0.5b', - name: 'Qwen 0.5B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 8192, - match: ['qwen:0.5b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'qwen:1.8b', - name: 'Qwen 1.8B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 8192, - match: ['qwen:1.8b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'qwen:4b', - name: 'Qwen 4B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 8192, - match: ['qwen:4b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'qwen:7b', - name: 'Qwen 7B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 8192, - match: ['qwen:7b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'qwen:14b', - name: 'Qwen 14B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 8192, - match: ['qwen:14b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'qwen:32b', - name: 'Qwen 32B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 8192, - match: ['qwen:32b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'qwen:72b', - name: 'Qwen 72B', - temperature: 0.6, - maxTokens: 16384, - contextLength: 32768, - match: ['qwen:72b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'qwen:110b', - name: 'Qwen 110B', - temperature: 0.6, - maxTokens: 16384, - contextLength: 32768, - match: ['qwen:110b'], - vision: false, - functionCall: false, - reasoning: false - }, - // QwQ reasoning models - { - id: 'qwq:32b', - name: 'QwQ 32B', - temperature: 0.7, - maxTokens: 32768, - contextLength: 32768, - match: ['qwq:32b'], - vision: false, - functionCall: false, - reasoning: true - }, - // Llama3.3 series - { - id: 'llama3.3:70b', - name: 'Llama 3.3 70B', - temperature: 0.7, - maxTokens: 16384, - contextLength: 131072, - match: ['llama3.3:70b'], - vision: false, - functionCall: true, - reasoning: false - }, - // Llama3.2 series - { - id: 'llama3.2:1b', - name: 'Llama 3.2 1B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 131072, - match: ['llama3.2:1b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'llama3.2:3b', - name: 'Llama 3.2 3B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 131072, - match: ['llama3.2:3b'], - vision: false, - functionCall: true, - reasoning: false - }, - // Llama3.2 vision models - { - id: 'llama3.2-vision:11b', - name: 'Llama 3.2 Vision 11B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 131072, - match: ['llama3.2-vision:11b'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'llama3.2-vision:90b', - name: 'Llama 3.2 Vision 90B', - temperature: 0.7, - maxTokens: 16384, - contextLength: 131072, - match: ['llama3.2-vision:90b'], - vision: true, - functionCall: true, - reasoning: false - }, - // Llama3.1 series - { - id: 'llama3.1:8b', - name: 'Llama 3.1 8B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 131072, - match: ['llama3.1:8b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'llama3.1:70b', - name: 'Llama 3.1 70B', - temperature: 0.7, - maxTokens: 16384, - contextLength: 131072, - match: ['llama3.1:70b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'llama3.1:405b', - name: 'Llama 3.1 405B', - temperature: 0.7, - maxTokens: 32768, - contextLength: 131072, - match: ['llama3.1:405b'], - vision: false, - functionCall: true, - reasoning: false - }, - // Llama3 series - { - id: 'llama3:8b', - name: 'Llama 3 8B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 8192, - match: ['llama3:8b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'llama3:70b', - name: 'Llama 3 70B', - temperature: 0.7, - maxTokens: 16384, - contextLength: 8192, - match: ['llama3:70b'], - vision: false, - functionCall: false, - reasoning: false - }, - // Llama2 series - { - id: 'llama2:7b', - name: 'Llama 2 7B', - temperature: 0.7, - maxTokens: 4096, - contextLength: 4096, - match: ['llama2:7b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'llama2:13b', - name: 'Llama 2 13B', - temperature: 0.7, - maxTokens: 4096, - contextLength: 4096, - match: ['llama2:13b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'llama2:70b', - name: 'Llama 2 70B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 4096, - match: ['llama2:70b'], - vision: false, - functionCall: false, - reasoning: false - }, - // LLaVA vision model series - { - id: 'llava:7b', - name: 'LLaVA 7B', - temperature: 0.7, - maxTokens: 4096, - contextLength: 4096, - match: ['llava:7b'], - vision: true, - functionCall: false, - reasoning: false - }, - { - id: 'llava:13b', - name: 'LLaVA 13B', - temperature: 0.7, - maxTokens: 4096, - contextLength: 4096, - match: ['llava:13b'], - vision: true, - functionCall: false, - reasoning: false - }, - { - id: 'llava:34b', - name: 'LLaVA 34B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 4096, - match: ['llava:34b'], - vision: true, - functionCall: false, - reasoning: false - }, - // LLaVA-Llama3 models - { - id: 'llava-llama3:8b', - name: 'LLaVA Llama3 8B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 8192, - match: ['llava-llama3:8b'], - vision: true, - functionCall: false, - reasoning: false - }, - // Mistral series - { - id: 'mistral:7b', - name: 'Mistral 7B', - temperature: 0.7, - maxTokens: 32768, - contextLength: 32768, - match: ['mistral:7b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'mistral-nemo:12b', - name: 'Mistral Nemo 12B', - temperature: 0.7, - maxTokens: 32768, - contextLength: 131072, - match: ['mistral-nemo:12b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'mistral-small:22b', - name: 'Mistral Small 22B', - temperature: 0.7, - maxTokens: 32768, - contextLength: 32768, - match: ['mistral-small:22b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'mistral-small:24b', - name: 'Mistral Small 24B', - temperature: 0.7, - maxTokens: 32768, - contextLength: 32768, - match: ['mistral-small:24b'], - vision: false, - functionCall: true, - reasoning: false - }, - // Phi series - { - id: 'phi3:3.8b', - name: 'Phi-3 3.8B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 131072, - match: ['phi3:3.8b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'phi3:14b', - name: 'Phi-3 14B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 131072, - match: ['phi3:14b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'phi4:14b', - name: 'Phi-4 14B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 16384, - match: ['phi4:14b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'phi4-mini-reasoning:3.8b', - name: 'Phi-4 Mini Reasoning 3.8B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 16384, - match: ['phi4-mini-reasoning:3.8b'], - vision: false, - functionCall: false, - reasoning: true - }, - // CodeLlama programming model series - { - id: 'codellama:7b', - name: 'Code Llama 7B', - temperature: 0.1, - maxTokens: 8192, - contextLength: 16384, - match: ['codellama:7b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'codellama:13b', - name: 'Code Llama 13B', - temperature: 0.1, - maxTokens: 8192, - contextLength: 16384, - match: ['codellama:13b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'codellama:34b', - name: 'Code Llama 34B', - temperature: 0.1, - maxTokens: 8192, - contextLength: 16384, - match: ['codellama:34b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'codellama:70b', - name: 'Code Llama 70B', - temperature: 0.1, - maxTokens: 16384, - contextLength: 16384, - match: ['codellama:70b'], - vision: false, - functionCall: false, - reasoning: false - }, - // MiniCPM vision models - { - id: 'minicpm-v:8b', - name: 'MiniCPM-V 8B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 8192, - match: ['minicpm-v:8b'], - vision: true, - functionCall: false, - reasoning: false - }, - // TinyLlama lightweight models - { - id: 'tinyllama:1.1b', - name: 'TinyLlama 1.1B', - temperature: 0.7, - maxTokens: 2048, - contextLength: 2048, - match: ['tinyllama:1.1b'], - vision: false, - functionCall: false, - reasoning: false - }, - // SmolLM2 lightweight model series - { - id: 'smollm2:135m', - name: 'SmolLM2 135M', - temperature: 0.7, - maxTokens: 2048, - contextLength: 8192, - match: ['smollm2:135m'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'smollm2:360m', - name: 'SmolLM2 360M', - temperature: 0.7, - maxTokens: 2048, - contextLength: 8192, - match: ['smollm2:360m'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'smollm2:1.7b', - name: 'SmolLM2 1.7B', - temperature: 0.7, - maxTokens: 4096, - contextLength: 8192, - match: ['smollm2:1.7b'], - vision: false, - functionCall: true, - reasoning: false - }, - // Tulu3 instruction models - { - id: 'tulu3:8b', - name: 'Tulu3 8B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 8192, - match: ['tulu3:8b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'tulu3:70b', - name: 'Tulu3 70B', - temperature: 0.7, - maxTokens: 16384, - contextLength: 8192, - match: ['tulu3:70b'], - vision: false, - functionCall: true, - reasoning: false - }, - // OLMo2 open-source models - { - id: 'olmo2:7b', - name: 'OLMo2 7B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 8192, - match: ['olmo2:7b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'olmo2:13b', - name: 'OLMo2 13B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 8192, - match: ['olmo2:13b'], - vision: false, - functionCall: false, - reasoning: false - }, - // Solar Pro models - { - id: 'solar-pro:22b', - name: 'Solar Pro 22B', - temperature: 0.7, - maxTokens: 16384, - contextLength: 16384, - match: ['solar-pro:22b', 'solar-pro'], - vision: false, - functionCall: true, - reasoning: false - }, - // Dolphin instruction models - { - id: 'dolphin3:8b', - name: 'Dolphin3 8B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 8192, - match: ['dolphin3:8b'], - vision: false, - functionCall: true, - reasoning: false - }, - // Command R model series - { - id: 'command-r7b:7b', - name: 'Command R7B 7B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 131072, - match: ['command-r7b:7b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'command-r7b-arabic:7b', - name: 'Command R7B Arabic 7B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 131072, - match: ['command-r7b-arabic:7b'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'command-a:111b', - name: 'Command A 111B', - temperature: 0.7, - maxTokens: 32768, - contextLength: 131072, - match: ['command-a:111b'], - vision: false, - functionCall: true, - reasoning: false - }, - // Magicoder programming models - { - id: 'magicoder:7b', - name: 'Magicoder 7B', - temperature: 0.1, - maxTokens: 8192, - contextLength: 16384, - match: ['magicoder:7b'], - vision: false, - functionCall: false, - reasoning: false - }, - // Mathstral math models - { - id: 'mathstral:7b', - name: 'Mathstral 7B', - temperature: 0.3, - maxTokens: 8192, - contextLength: 32768, - match: ['mathstral:7b'], - vision: false, - functionCall: false, - reasoning: true - }, - // Falcon2 models - { - id: 'falcon2:11b', - name: 'Falcon2 11B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 8192, - match: ['falcon2:11b'], - vision: false, - functionCall: false, - reasoning: false - }, - // StableLM models - { - id: 'stablelm-zephyr:3b', - name: 'StableLM Zephyr 3B', - temperature: 0.7, - maxTokens: 4096, - contextLength: 4096, - match: ['stablelm-zephyr:3b'], - vision: false, - functionCall: false, - reasoning: false - }, - // Granite Guardian safety models - { - id: 'granite3-guardian:2b', - name: 'Granite3 Guardian 2B', - temperature: 0.7, - maxTokens: 4096, - contextLength: 8192, - match: ['granite3-guardian:2b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'granite3-guardian:8b', - name: 'Granite3 Guardian 8B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 8192, - match: ['granite3-guardian:8b'], - vision: false, - functionCall: false, - reasoning: false - }, - // ShieldGemma safety models - { - id: 'shieldgemma:2b', - name: 'ShieldGemma 2B', - temperature: 0.7, - maxTokens: 4096, - contextLength: 8192, - match: ['shieldgemma:2b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'shieldgemma:9b', - name: 'ShieldGemma 9B', - temperature: 0.7, - maxTokens: 8192, - contextLength: 8192, - match: ['shieldgemma:9b'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'shieldgemma:27b', - name: 'ShieldGemma 27B', - temperature: 0.7, - maxTokens: 16384, - contextLength: 8192, - match: ['shieldgemma:27b'], - vision: false, - functionCall: false, - reasoning: false - }, - // Embedding models - { - id: 'nomic-embed-text:335m', - name: 'Nomic Embed Text 335M', - temperature: 0.0, - maxTokens: 512, - contextLength: 8192, - match: ['nomic-embed-text:335m', 'nomic-embed-text'], - vision: false, - functionCall: false, - reasoning: false, - type: ModelType.Embedding - }, - { - id: 'mxbai-embed-large:335m', - name: 'MxBai Embed Large 335M', - temperature: 0.0, - maxTokens: 512, - contextLength: 8192, - match: ['mxbai-embed-large:335m', 'mxbai-embed-large'], - vision: false, - functionCall: false, - reasoning: false, - type: ModelType.Embedding - }, - { - id: 'bge-m3:567m', - name: 'BGE-M3 567M', - temperature: 0.0, - maxTokens: 512, - contextLength: 8192, - match: ['bge-m3:567m', 'bge-m3'], - vision: false, - functionCall: false, - reasoning: false, - type: ModelType.Embedding - } - ] - }, - - // Qiniu Cloud provider-specific model configurations - qiniu: { - models: [] - }, - - // SiliconFlow provider-specific model configurations - silicon: { - models: [ - { - id: 'Qwen/Qwen3-235B-A22B', - name: 'Qwen/Qwen3-235B-A22B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 100_000, - match: ['qwen3-235b-a22b'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'Qwen/Qwen3-30B-A3B', - name: 'Qwen/Qwen3-30B-A3B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 100_000, - match: ['qwen3-30b-a3b'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'Qwen/Qwen3-32B', - name: 'Qwen/Qwen3-32B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 100_000, - match: ['qwen3-32b'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'Qwen/Qwen3-14B', - name: 'Qwen/Qwen3-14B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 100_000, - match: ['qwen3-14b'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'Qwen/Qwen3-8B', - name: 'Qwen/Qwen3-8B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 100_000, - match: ['qwen3-8b'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'tencent/Hunyuan-A13B-Instruct', - name: 'tencent/Hunyuan-A13B-Instruct', - temperature: 0.6, - maxTokens: 8192, - contextLength: 100_000, - match: ['tencent/hunyuan-a13b-instruct', 'hunyuan-a13b-instruct'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'zai-org/GLM-4.5V', - name: 'zai-org/GLM-4.5V', - temperature: 0.6, - maxTokens: 8192, - contextLength: 100_000, - match: ['zai-org/glm-4.5v', 'glm-4.5v'], - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'deepseek-ai/DeepSeek-V3.1', - name: 'deepseek-ai/DeepSeek-V3.1', - temperature: 0.6, - maxTokens: 7000, - contextLength: 62000, - match: ['deepseek-ai/deepseek-v3.1', 'deepseek-v3.1'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'Pro/deepseek-ai/DeepSeek-V3.1', - name: 'DeepSeek V3.1 Pro', - temperature: 0.6, - maxTokens: 7000, - contextLength: 62000, - match: ['pro/deepseek-ai/deepseek-v3.1'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'Pro/deepseek-ai/DeepSeek-V3', - name: 'DeepSeek V3 Pro', - temperature: 0.6, - maxTokens: 7000, - contextLength: 62000, - match: ['pro/deepseek-ai/deepseek-v3'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'Pro/deepseek-ai/DeepSeek-R1', - name: 'DeepSeek R1 Pro', - temperature: 0.6, - maxTokens: 7000, - contextLength: 62000, - match: ['pro/deepseek-ai/deepseek-r1'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek-ai/DeepSeek-V3', - name: 'DeepSeek V3', - temperature: 0.6, - maxTokens: 7000, - contextLength: 62000, - match: ['deepseek-ai/deepseek-v3'], - vision: false, - functionCall: false, - reasoning: false - }, - { - id: 'deepseek-ai/DeepSeek-R1', - name: 'DeepSeek R1', - temperature: 0.6, - maxTokens: 7000, - contextLength: 62000, - match: ['deepseek-ai/deepseek-r1'], - vision: false, - functionCall: false, - reasoning: true - } - ] - }, - - // Fireworks provider-specific model configurations - fireworks: { - models: [] - }, - - // PPIO provider-specific model configurations - ppio: { - models: [ - { - id: 'minimaxai/minimax-m1-80k', - name: 'Minimax M1 80K', - temperature: 0.6, - maxTokens: 40_000, - contextLength: 128000, - match: ['minimaxai/minimax-m1-80k'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'deepseek/deepseek-r1-0528', - name: 'DeepSeek R1 0528', - temperature: 1, - maxTokens: 16000, - contextLength: 128000, - match: ['deepseek-r1-0528'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'deepseek/deepseek-v3-0324', - name: 'DeepSeek Chat v3 0324', - temperature: 0.6, - maxTokens: 16000, - contextLength: 128000, - match: ['deepseek-chat-v3-0324'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'deepseek/deepseek-r1-distill-qwen-32b', - name: 'DeepSeek R1 Distill Qwen 32B', - temperature: 0.7, - maxTokens: 8000, - contextLength: 64000, - match: ['deepseek-r1-distill-qwen-32b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek/deepseek-r1-distill-llama-70b', - name: 'DeepSeek R1 Distill Llama 70B', - temperature: 0.6, - maxTokens: 8000, - contextLength: 32000, - match: ['deepseek-r1-distill-llama-70b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek/deepseek-r1-distill-qwen-14b', - name: 'DeepSeek R1 Distill Qwen 14B', - temperature: 0.7, - maxTokens: 8000, - contextLength: 64000, - match: ['deepseek-r1-distill-qwen-14b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek/deepseek-r1-0528-qwen3-8b', - name: 'DeepSeek R1 0528', - temperature: 1, - maxTokens: 32000, - contextLength: 128000, - match: ['deepseek-r1-0528-qwen3-8b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek/deepseek-r1-distill-llama-8b', - name: 'DeepSeek R1 Distill Llama 8B', - temperature: 0.6, - maxTokens: 8000, - contextLength: 32000, - match: ['deepseek-r1-distill-llama-8b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek/deepseek-prover-v2-671b', - name: 'Deepseek Prover V2 671B', - temperature: 0.3, - maxTokens: 160000, - contextLength: 160000, - match: ['deepseek-prover-v2-671b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'deepseek/deepseek-r1-turbo', - name: 'DeepSeek R1 Turbo', - temperature: 0.6, - maxTokens: 16000, - contextLength: 64000, - match: ['deepseek-r1-turbo'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'deepseek/deepseek-v3-turbo', - name: 'DeepSeek V3 Turbo', - temperature: 0.6, - maxTokens: 16000, - contextLength: 64000, - match: ['deepseek-v3-turbo'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'deepseek/deepseek-v3/community', - name: 'DeepSeek V3 Community', - temperature: 0.6, - maxTokens: 4000, - contextLength: 64000, - match: ['deepseek-v3/community'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'deepseek/deepseek-r1/community', - name: 'DeepSeek R1 Community', - temperature: 0.6, - maxTokens: 4000, - contextLength: 64000, - match: ['deepseek-r1/community'], - vision: false, - functionCall: true, - reasoning: true - }, - { - id: 'qwen/qwen3-235b-a22b-fp8', - name: 'Qwen/Qwen3-235B-A22B', - temperature: 0.6, - maxTokens: 20000, - contextLength: 40960, - match: ['qwen3-235b-a22b-fp8', 'qwen3-235b-a22b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'qwen/qwen3-30b-a3b-fp8', - name: 'Qwen/Qwen3-30B-A3B', - temperature: 0.6, - maxTokens: 20000, - contextLength: 128000, - match: ['qwen3-30b-a3b-fp8', 'qwen3-30b-a3b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'qwen/qwen3-32b-fp8', - name: 'Qwen/Qwen3-32B', - temperature: 0.6, - maxTokens: 20000, - contextLength: 128000, - match: ['qwen3-32b-fp8', 'qwen3-32b'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'meta-llama/llama-3.3-70b-instruct', - name: 'Llama 3.3 70B Instruct', - temperature: 0.6, - maxTokens: 8000, - contextLength: 131072, - match: ['llama-3.3-70b-instruct'], - vision: false, - functionCall: false, - reasoning: true - } - ] - }, - - // GitHub provider-specific model configurations - github: { - models: [] - }, - - // GitHub Copilot provider-specific model configurations - 'github-copilot': { - models: [ - { - id: 'gpt-4o', - name: 'GPT-4o', - temperature: 0.7, - maxTokens: 4096, - contextLength: 128000, - match: ['gpt-4o'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'gpt-4o-mini', - name: 'GPT-4o Mini', - temperature: 0.7, - maxTokens: 16384, - contextLength: 128000, - match: ['gpt-4o-mini'], - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'o1-preview', - name: 'o1 Preview', - temperature: 1.0, - maxTokens: 32768, - contextLength: 128000, - match: ['o1-preview'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'o1-mini', - name: 'o1 Mini', - temperature: 1.0, - maxTokens: 65536, - contextLength: 128000, - match: ['o1-mini'], - vision: false, - functionCall: false, - reasoning: true - }, - { - id: 'claude-3-5-sonnet', - name: 'Claude 3.5 Sonnet', - temperature: 0.7, - maxTokens: 8192, - contextLength: 200000, - match: ['claude-3-5-sonnet'], - vision: true, - functionCall: true, - reasoning: false - } - ] - }, - - // Alibaba Cloud provider-specific model configurations, note matching order: only max/plus/turbo - dashscope: { - models: [ - { - id: 'qwen-turbo-latest', - name: 'Qwen Turbo Latest', - temperature: 0.7, - contextLength: 1000000, - maxTokens: 16384, - match: ['qwen-turbo-latest'], - vision: false, - functionCall: true, - reasoning: false, - enableSearch: false, - forcedSearch: false, - searchStrategy: 'turbo' - }, - { - id: 'qwen-turbo-2024-11-01', - name: 'Qwen Turbo 2024 11 01', - temperature: 0.7, - contextLength: 1000000, - maxTokens: 8192, - match: ['qwen-turbo-1101'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen-turbo-2024-09-19', - name: 'Qwen Turbo 2024 09 19', - temperature: 0.7, - contextLength: 131072, - maxTokens: 8192, - match: ['qwen-turbo-0919'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen-turbo-2024-06-24', - name: 'Qwen Turbo 2024 06 24', - temperature: 0.7, - contextLength: 8000, - maxTokens: 2000, - match: ['qwen-turbo-0624'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen-turbo-2025-04-28', - name: 'Qwen Turbo 2025 04 28', - temperature: 0.7, - contextLength: 1000000, - maxTokens: 16384, - match: ['qwen-turbo-0428'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen-turbo-2025-02-11', - name: 'Qwen Turbo 2025 02 11', - temperature: 0.7, - contextLength: 1000000, - maxTokens: 8192, - match: ['qwen-turbo-0211'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen-turbo-2025-07-15', - name: 'Qwen Turbo 2025 07 15', - temperature: 0.7, - contextLength: 131072, - maxTokens: 16384, - match: ['qwen-turbo-2025-07-15'], - vision: false, - functionCall: true, - reasoning: false, - enableSearch: false, - forcedSearch: false, - searchStrategy: 'turbo' - }, - { - id: 'qwen-turbo', - name: 'Qwen Turbo', - temperature: 0.7, - contextLength: 131072, - maxTokens: 16384, - match: ['qwen-turbo'], - vision: false, - functionCall: true, - reasoning: false, - enableSearch: false, - forcedSearch: false, - searchStrategy: 'turbo' - }, - { - id: 'qwen-flash', - name: 'Qwen Flash', - temperature: 0.7, - contextLength: 1000000, - maxTokens: 32768, - match: ['qwen-flash'], - vision: false, - functionCall: true, - reasoning: false, - enableSearch: false, - forcedSearch: false, - searchStrategy: 'turbo' - }, - { - id: 'qwen-flash-2025-07-28', - name: 'Qwen Flash 2025 07 28', - temperature: 0.7, - contextLength: 1000000, - maxTokens: 32768, - match: ['qwen-flash-2025-07-28'], - vision: false, - functionCall: true, - reasoning: false, - enableSearch: false, - forcedSearch: false, - searchStrategy: 'turbo' - }, - { - id: 'qwen-plus-latest', - name: 'Qwen Plus Latest', - temperature: 0.7, - contextLength: 1000000, - maxTokens: 32768, - match: ['qwen-plus-latest'], - vision: false, - functionCall: true, - reasoning: false, - enableSearch: false, - forcedSearch: false, - searchStrategy: 'turbo' - }, - { - id: 'qwen-plus-2024-12-20', - name: 'Qwen Plus 2024 12 20', - temperature: 0.7, - contextLength: 131072, - maxTokens: 8192, - match: ['qwen-plus-1220'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen-plus-2024-11-27', - name: 'Qwen Plus 2024 11 27', - temperature: 0.7, - contextLength: 131072, - maxTokens: 8192, - match: ['qwen-plus-1127'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen-plus-2024-11-25', - name: 'Qwen Plus 2024 11 25', - temperature: 0.7, - contextLength: 131072, - maxTokens: 8192, - match: ['qwen-plus-1125'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen-plus-2024-09-19', - name: 'Qwen Plus 2024 09 19', - temperature: 0.7, - contextLength: 131072, - maxTokens: 8192, - match: ['qwen-plus-0919'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen-plus-2024-08-06', - name: 'Qwen Plus 2024 08 06', - temperature: 0.7, - contextLength: 131072, - maxTokens: 8192, - match: ['qwen-plus-0806'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen-plus-2024-07-23', - name: 'Qwen Plus 2024 07 23', - temperature: 0.7, - contextLength: 32000, - maxTokens: 8000, - match: ['qwen-plus-0723'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen-plus-2025-04-28', - name: 'Qwen Plus 2025 04 28', - temperature: 0.7, - contextLength: 131072, - maxTokens: 16384, - match: ['qwen-plus-0428'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen-plus-2025-01-25', - name: 'Qwen Plus 2025 01 25', - temperature: 0.7, - contextLength: 131072, - maxTokens: 8192, - match: ['qwen-plus-0125'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen-plus-2025-01-12', - name: 'Qwen Plus 2025 01 12', - temperature: 0.7, - contextLength: 131072, - maxTokens: 8192, - match: ['qwen-plus-0112'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen-plus-2025-07-14', - name: 'Qwen Plus 2025 07 14', - temperature: 0.7, - contextLength: 131072, - maxTokens: 8192, - match: ['qwen-plus-2025-07-14'], - vision: false, - functionCall: true, - reasoning: false, - enableSearch: false, - forcedSearch: false, - searchStrategy: 'turbo' - }, - { - id: 'qwen-plus-2025-07-28', - name: 'Qwen Plus 2025 07 28', - temperature: 0.7, - contextLength: 1000000, - maxTokens: 32768, - match: ['qwen-plus-2025-07-28'], - vision: false, - functionCall: true, - reasoning: false, - enableSearch: false, - forcedSearch: false, - searchStrategy: 'turbo' - }, - { - id: 'qwen-plus', - name: 'Qwen Plus', - temperature: 0.7, - contextLength: 131072, - maxTokens: 16384, - match: ['qwen-plus'], - vision: false, - functionCall: true, - reasoning: false, - enableSearch: false, - forcedSearch: false, - searchStrategy: 'turbo' - }, - { - id: 'qwen-max-latest', - name: 'Qwen Max Latest', - temperature: 0.7, - contextLength: 131072, - maxTokens: 8192, - match: ['qwen-max-latest'], - vision: false, - functionCall: true, - reasoning: false, - enableSearch: false, - forcedSearch: false, - searchStrategy: 'turbo' - }, - { - id: 'qwen-max-2024-09-19', - name: 'Qwen Max 2024 09 19', - temperature: 0.7, - contextLength: 32768, - maxTokens: 8192, - match: ['qwen-max-0919'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen-max-2024-04-28', - name: 'Qwen Max 2024 04 28', - temperature: 0.7, - contextLength: 8000, - maxTokens: 2000, - match: ['qwen-max-0428'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen-max-2024-04-03', - name: 'Qwen Max 2024 04 03', - temperature: 0.7, - contextLength: 8000, - maxTokens: 2000, - match: ['qwen-max-0403'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen-max-2025-01-25', - name: 'Qwen Max 2025 01 25', - temperature: 0.7, - contextLength: 131072, - maxTokens: 8192, - match: ['qwen-max-0125'], - vision: false, - functionCall: true, - reasoning: false - }, - { - id: 'qwen-max', - name: 'Qwen Max', - temperature: 0.7, - contextLength: 32768, - maxTokens: 8192, - match: ['qwen-max'], - vision: false, - functionCall: true, - reasoning: false, - enableSearch: false, - forcedSearch: false, - searchStrategy: 'turbo' - }, - // Qwen3 series models - { - id: 'qwen3-max-2025-09-23', - name: 'Qwen3 Max 20250923', - temperature: 0.7, - maxTokens: 65536, - contextLength: 262144, - match: ['qwen3-max-2025-09-23'], - vision: false, - functionCall: true, - reasoning: false, - enableSearch: true, - forcedSearch: false, - searchStrategy: 'turbo' - }, - { - id: 'qwen3-max-preview', - name: 'Qwen3 Max Preview', - temperature: 0.7, - maxTokens: 65536, - contextLength: 262144, - match: ['qwen3-max-preview'], - vision: false, - functionCall: true, - reasoning: false, - enableSearch: true, - forcedSearch: false, - searchStrategy: 'turbo' - }, - { - id: 'qwen3-235b-a22b-thinking-2507', - name: 'Qwen3 235B A22B Thinking 2507', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-235b-a22b-thinking-2507'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 81920 - }, - { - id: 'qwen3-235b-a22b', - name: 'Qwen3 235B A22B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-235b-a22b'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 81920 - }, - { - id: 'qwen3-30b-a3b-thinking-2507', - name: 'Qwen3 30B A3B Thinking 2507', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-30b-a3b-thinking-2507'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 81920 - }, - { - id: 'qwen3-32b', - name: 'Qwen3 32B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-32b'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 38912 - }, - { - id: 'qwen3-30b-a3b', - name: 'Qwen3 30B A3B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-30b-a3b'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 38912 - }, - { - id: 'qwen3-14b', - name: 'Qwen3 14B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-14b'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 38912 - }, - { - id: 'qwen3-8b', - name: 'Qwen3 8B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-8b'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 38912 - }, - { - id: 'qwen3-4b', - name: 'Qwen3 4B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-4b'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 38912 - }, - { - id: 'qwen3-1.7b', - name: 'Qwen3 1.7B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-1.7b'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 20000 - }, - { - id: 'qwen3-0.6b', - name: 'Qwen3 0.6B', - temperature: 0.6, - maxTokens: 8192, - contextLength: 40960, - match: ['qwen3-0.6b'], - vision: false, - functionCall: true, - reasoning: true, - thinkingBudget: 20000 - }, - { - id: 'qwen3-vl-plus', - name: 'Qwen3 VL Plus', - temperature: 0.6, - maxTokens: 32768, - contextLength: 262144, - match: ['qwen3-vl-plus', 'qwen3-vl-plus-2025-09-23'], - vision: true, - functionCall: false, - reasoning: true, - thinkingBudget: 81920 - }, - // QwQ series models - { - id: 'qwq-plus', - name: 'QwQ Plus', - temperature: 0.7, - maxTokens: 8192, - contextLength: 131072, - match: ['qwq-plus'], - vision: false, - functionCall: false, - reasoning: true, - enableSearch: false, - forcedSearch: false, - searchStrategy: 'turbo' - }, - { - id: 'qwq-plus-latest', - name: 'QwQ Plus Latest', - temperature: 0.7, - maxTokens: 8192, - contextLength: 131072, - match: ['qwq-plus-latest'], - vision: false, - functionCall: false, - reasoning: true, - enableSearch: false - }, - // Qwen3 Next 80B series models - { - id: 'qwen3-next-80b-a3b-thinking', - name: 'Qwen3 Next 80B A3B Thinking', - temperature: 0.7, - maxTokens: 32768, - contextLength: 131072, - match: ['qwen3-next-80b-a3b-thinking'], - vision: false, - functionCall: false, - reasoning: true, - thinkingBudget: 81920 - }, - { - id: 'qwen3-next-80b-a3b-instruct', - name: 'Qwen3 Next 80B A3B Instruct', - temperature: 0.7, - maxTokens: 32768, - contextLength: 131072, - match: ['qwen3-next-80b-a3b-instruct'], - vision: false, - functionCall: true, - reasoning: false - } - ] - }, - aihubmix: { - models: [ - { - id: 'deepseek-ai/DeepSeek-R1-0528', - name: 'DeepSeek R1-0528', - temperature: 0.6, - maxTokens: 65536, - contextLength: 131072, - match: ['deepseek-ai/DeepSeek-R1-0528'], - vision: false, - functionCall: false, - reasoning: true - }, - - { - id: 'deepseek-ai/DeepSeek-V3-0324', - name: 'DeepSeek v3-0324', - temperature: 0.6, - maxTokens: 65536, - contextLength: 131072, - match: ['deepseek-ai/DeepSeek-V3-0324'], - vision: false, - functionCall: false, - reasoning: false - } - ] - }, - // OpenRouter provider-specific model configurations - openrouter: { - models: [ - { - id: 'google/gemini-2.5-flash-image-preview', - name: 'Gemini 2.5 Flash Image Preview', - temperature: 0.7, - maxTokens: 32768, - contextLength: 32768, - match: ['google/gemini-2.5-flash-image-preview', 'gemini-2.5-flash-image-preview'], - vision: true, - functionCall: false, - reasoning: false, - type: ModelType.ImageGeneration - }, - { - id: 'deepseek-r1-0528:free', - name: 'DeepSeek R1-0528:free', - temperature: 0.6, - maxTokens: 65536, - contextLength: 131072, - match: ['deepseek/deepseek-r1-0528:free', 'deepseek/deepseek-r1-0528-qwen3-8b:free'], - vision: false, - functionCall: false, - reasoning: true - }, - { - // Has issues with fc support, avoid using - id: 'deepseek-chat-v3-0324:free', - name: 'DeepSeek v3-0324:free', - temperature: 0.6, - maxTokens: 65536, - contextLength: 131072, - match: ['deepseek/deepseek-chat-v3-0324:free', 'deepseek/deepseek-chat:free'], - vision: false, - functionCall: false, - reasoning: false - }, - // GPT-5 series model configurations - { - id: 'gpt-5-chat', - name: 'OpenAI: GPT-5 Chat', - temperature: 0.7, - maxTokens: 128000, - contextLength: 400000, - match: ['openai/gpt-5-chat'], - vision: true, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium', - verbosity: 'medium', - maxCompletionTokens: 128000, - type: ModelType.Chat - }, - { - id: 'gpt-5', - name: 'OpenAI: GPT-5', - temperature: 0.7, - maxTokens: 128000, - contextLength: 400000, - match: ['openai/gpt-5', 'openai/gpt-5-2025-08-07'], - vision: true, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium', - verbosity: 'medium', - maxCompletionTokens: 128000, - type: ModelType.Chat - }, - { - id: 'gpt-5-mini', - name: 'OpenAI: GPT-5 Mini', - temperature: 0.7, - maxTokens: 128000, - contextLength: 400000, - match: ['openai/gpt-5-mini', 'openai/gpt-5-mini-2025-08-07'], - vision: true, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium', - verbosity: 'medium', - maxCompletionTokens: 128000, - type: ModelType.Chat - }, - { - id: 'gpt-5-nano', - name: 'OpenAI: GPT-5 Nano', - temperature: 0.7, - maxTokens: 128000, - contextLength: 400000, - match: ['openai/gpt-5-nano', 'openai/gpt-5-nano-2025-08-07'], - vision: true, - functionCall: true, - reasoning: true, - reasoningEffort: 'medium', - verbosity: 'medium', - maxCompletionTokens: 128000, - type: ModelType.Chat - }, - // O1 series model configurations - { - id: 'o1-mini', - name: 'OpenAI: o1-mini', - temperature: 1, - maxTokens: 65536, - contextLength: 128000, - match: ['openai/o1-mini', 'openai/o1-mini-2024-09-12'], - vision: false, - functionCall: false, - reasoning: true, - reasoningEffort: 'medium', - maxCompletionTokens: 65536, - type: ModelType.Chat - }, - { - id: 'o1', - name: 'OpenAI: o1', - temperature: 1, - maxTokens: 100000, - contextLength: 200000, - match: ['openai/o1'], - vision: false, - functionCall: false, - reasoning: true, - reasoningEffort: 'medium', - maxCompletionTokens: 100000, - type: ModelType.Chat - }, - { - id: 'o1-pro', - name: 'OpenAI: o1-pro', - temperature: 1, - maxTokens: 100000, - contextLength: 200000, - match: ['openai/o1-pro'], - vision: false, - functionCall: false, - reasoning: true, - reasoningEffort: 'medium', - maxCompletionTokens: 100000, - type: ModelType.Chat - }, - { - id: 'o1-preview', - name: 'OpenAI: o1-preview', - temperature: 1, - maxTokens: 32768, - contextLength: 128000, - match: ['openai/o1-preview', 'openai/o1-preview-2024-09-12'], - vision: false, - functionCall: false, - reasoning: true, - reasoningEffort: 'medium', - maxCompletionTokens: 32768, - type: ModelType.Chat - }, - // O3 series model configurations - { - id: 'o3', - name: 'OpenAI: o3', - temperature: 1, - maxTokens: 100000, - contextLength: 200000, - match: ['openai/o3'], - vision: false, - functionCall: false, - reasoning: true, - reasoningEffort: 'medium', - maxCompletionTokens: 100000, - type: ModelType.Chat - }, - { - id: 'o3-mini', - name: 'OpenAI: o3-mini', - temperature: 1, - maxTokens: 65536, - contextLength: 128000, - match: ['openai/o3-mini'], - vision: false, - functionCall: false, - reasoning: true, - reasoningEffort: 'medium', - maxCompletionTokens: 65536, - type: ModelType.Chat - }, - { - id: 'o3-mini-high', - name: 'OpenAI: o3-mini-high', - temperature: 1, - maxTokens: 65536, - contextLength: 128000, - match: ['openai/o3-mini-high'], - vision: false, - functionCall: false, - reasoning: true, - reasoningEffort: 'high', - maxCompletionTokens: 65536, - type: ModelType.Chat - }, - { - id: 'o3-pro', - name: 'OpenAI: o3-pro', - temperature: 1, - maxTokens: 100000, - contextLength: 200000, - match: ['openai/o3-pro'], - vision: false, - functionCall: false, - reasoning: true, - reasoningEffort: 'medium', - maxCompletionTokens: 100000, - type: ModelType.Chat - } - ] - }, - - // Grok provider-specific model configurations - grok: { - models: [ - { - id: 'grok-3-mini-fast-beta', - name: 'Grok 3 Mini Fast Beta', - temperature: 1, - contextLength: 120000, - maxTokens: 100_000, - match: ['grok-3-mini-fast', 'grok-3-mini-fast-latest', 'grok-3-mini-fast-beta'], - vision: false, - functionCall: true, - reasoning: true, - reasoningEffort: 'low', - enableSearch: false - }, - { - id: 'grok-3-mini-beta', - name: 'Grok 3 Mini Beta', - temperature: 1, - contextLength: 120000, - maxTokens: 100_000, - match: ['grok-3-mini', 'grok-3-mini-latest', 'grok-3-mini-beta'], - vision: false, - functionCall: true, - reasoning: true, - reasoningEffort: 'low', - enableSearch: false - }, - { - id: 'grok-3-fast-beta', - name: 'Grok 3 Fast Beta', - temperature: 0.7, - contextLength: 120000, - maxTokens: 100_000, - match: ['grok-3-fast', 'grok-3-fast-latest', 'grok-3-fast-beta'], - vision: false, - functionCall: true, - reasoning: false, - enableSearch: false - }, - { - id: 'grok-2-vision-1212', - name: 'Grok 2 Vision 1212', - temperature: 0.7, - contextLength: 32000, - maxTokens: 32000, - match: ['grok-2-vision', 'grok-2-vision-latest', 'grok-2-vision-1212'], - vision: true, - functionCall: false, - reasoning: false, - enableSearch: false - }, - { - id: 'grok-2-image-1212', - name: 'Grok 2 Image 1212', - temperature: 0.7, - contextLength: 130_000, - maxTokens: 100_000, - match: ['grok-2-image', 'grok-2-image-latest', 'grok-2-image-1212'], - vision: true, - functionCall: false, - reasoning: false, - enableSearch: false - }, - { - id: 'grok-3-beta', - name: 'Grok 3 Beta', - temperature: 0.7, - contextLength: 120000, - maxTokens: 100_000, - match: ['grok-3', 'grok-3-latest', 'grok-3-beta'], - vision: false, - functionCall: true, - reasoning: false, - enableSearch: false - }, - { - id: 'grok-2-1212', - name: 'Grok 2 1212', - contextLength: 120000, - temperature: 0.7, - maxTokens: 100_000, - match: ['grok-2', 'grok-2-latest', 'grok-2-1212'], - vision: false, - functionCall: true, - reasoning: false, - enableSearch: false - } - ] - }, - - // Azure OpenAI provider-specific model configurations - 'azure-openai': { - models: [] - }, - - // LM Studio provider-specific model configurations - lmstudio: { - models: [] - } -} - -/** - * 根据提供商ID和模型ID获取特定提供商的模型配置 - * @param providerId 提供商ID - * @param modelId 模型ID - * @returns ModelConfig | undefined 如果找到配置则返回,否则返回undefined - */ -export function getProviderSpecificModelConfig( - providerId: string, - modelId: string -): ModelConfig | undefined { - // Convert modelId to lowercase for case-insensitive matching - const lowerModelId = modelId.toLowerCase() - - // Check if the provider has specific configurations - const providerSetting = providerModelSettings[providerId] - if (!providerSetting || !providerSetting.models) { - return undefined - } - - // Iterate through the provider's model array to find matching model configurations - for (const config of providerSetting.models) { - // Check if any matching conditions are met - if (config.match.some((matchStr) => lowerModelId.includes(matchStr.toLowerCase()))) { - return { - maxTokens: config.maxTokens, - contextLength: config.contextLength, - temperature: config.temperature, // Keep optional, some models don't support it - vision: config.vision || false, - functionCall: config.functionCall || false, - reasoning: config.reasoning || false, - type: config.type || ModelType.Chat, - reasoningEffort: config.reasoningEffort, - verbosity: config.verbosity, - maxCompletionTokens: config.maxCompletionTokens, - thinkingBudget: config.thinkingBudget, - enableSearch: config.enableSearch ?? false, - forcedSearch: config.forcedSearch ?? false, - searchStrategy: config.searchStrategy || 'turbo' - } - } - } - - return undefined -} diff --git a/src/main/presenter/llmProviderPresenter/providers/anthropicProvider.ts b/src/main/presenter/llmProviderPresenter/providers/anthropicProvider.ts index a10d1a7d9..7e08ba9a8 100644 --- a/src/main/presenter/llmProviderPresenter/providers/anthropicProvider.ts +++ b/src/main/presenter/llmProviderPresenter/providers/anthropicProvider.ts @@ -161,135 +161,26 @@ export class AnthropicProvider extends BaseLLMProvider { } } - // 如果API请求失败或返回数据解析失败,返回默认模型列表 - console.log('从API获取模型列表失败,使用默认模型配置') + // 如果API请求失败或返回数据解析失败,优先使用聚合 Provider DB 的模型列表 + console.log('从API获取模型列表失败,使用 Provider DB 作为兜底') } catch (error) { console.error('获取Anthropic模型列表出错:', error) } - - // 默认的模型列表(如API调用失败或数据格式不正确) - return [ - { - id: 'claude-sonnet-4-5-20250929', - name: 'Claude Sonnet 4.5', - providerId: this.provider.id, - maxTokens: 64000, - group: 'Claude 4.5', - isCustom: false, - contextLength: 204800, - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'claude-opus-4-1-20250805', - name: 'Claude Opus 4.1', - providerId: this.provider.id, - maxTokens: 32000, - group: 'Claude 4.1', - isCustom: false, - contextLength: 204800, - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'claude-opus-4-20250514', - name: 'Claude Opus 4', - providerId: this.provider.id, - maxTokens: 32000, - group: 'Claude 4', - isCustom: false, - contextLength: 204800, - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'claude-sonnet-4-20250514', - name: 'Claude Sonnet 4', - providerId: this.provider.id, - maxTokens: 64000, - group: 'Claude 4', - isCustom: false, - contextLength: 204800, - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'claude-3-7-sonnet-20250219', - name: 'Claude 3.7 Sonnet', - providerId: this.provider.id, - maxTokens: 64000, - group: 'Claude 3.7', - isCustom: false, - contextLength: 204800, - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'claude-3-5-sonnet-20241022', - name: 'Claude 3.5 Sonnet', - providerId: this.provider.id, - maxTokens: 8192, - group: 'Claude 3.5', - isCustom: false, - contextLength: 200000, - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'claude-3-5-haiku-20241022', - name: 'Claude 3.5 Haiku', - providerId: this.provider.id, - maxTokens: 8192, - group: 'Claude 3.5', - isCustom: false, - contextLength: 204800, - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'claude-3-5-sonnet-20240620', - name: 'Claude 3.5 Sonnet (Legacy)', - providerId: this.provider.id, - maxTokens: 8192, - group: 'Claude 3.5', - isCustom: false, - contextLength: 200000, - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'claude-3-opus-20240229', - name: 'Claude 3 Opus', - providerId: this.provider.id, - maxTokens: 4096, - group: 'Claude 3', - isCustom: false, - contextLength: 200000, - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'claude-3-haiku-20240307', - name: 'Claude 3 Haiku', - providerId: this.provider.id, - maxTokens: 8192, - group: 'Claude 3', - isCustom: false, - contextLength: 200000, - vision: true, - functionCall: true, - reasoning: false - } - ] + const dbModels = this.configPresenter.getDbProviderModels(this.provider.id).map((m) => ({ + id: m.id, + name: m.name, + providerId: this.provider.id, + maxTokens: m.maxTokens, + group: m.group || 'default', + isCustom: false, + contextLength: m.contextLength, + vision: m.vision || false, + functionCall: m.functionCall || false, + reasoning: m.reasoning || false, + ...(m.type ? { type: m.type } : {}) + })) + + return dbModels } /** diff --git a/src/main/presenter/llmProviderPresenter/providers/awsBedrockProvider.ts b/src/main/presenter/llmProviderPresenter/providers/awsBedrockProvider.ts index 0ee052b26..57e67ffcc 100644 --- a/src/main/presenter/llmProviderPresenter/providers/awsBedrockProvider.ts +++ b/src/main/presenter/llmProviderPresenter/providers/awsBedrockProvider.ts @@ -94,70 +94,26 @@ export class AwsBedrockProvider extends BaseLLMProvider { console.error('获取AWS Bedrock Anthropic模型列表出错:', error) } - // 如果API请求失败或返回数据解析失败,返回默认模型列表 - console.log('从API获取模型列表失败,使用默认模型配置') - return [ - { - id: 'anthropic.claude-sonnet-4-20250514-v1:0', - name: 'AWS Bedrock Claude Sonnet 4', + // 如果API请求失败或返回数据解析失败,优先使用聚合 Provider DB 的模型列表(仅筛选 Bedrock 上的 Anthropic 模型) + console.log('从API获取模型列表失败,使用 Provider DB 作为兜底(筛选 anthropic.*)') + const dbModels = this.configPresenter + .getDbProviderModels('amazon-bedrock') + .filter((m) => m.id.startsWith('anthropic.')) + .map((m) => ({ + id: m.id, + name: m.name, providerId: this.provider.id, - maxTokens: 64_000, - group: 'Bedrock Claude 4', + maxTokens: m.maxTokens, + group: m.group || 'Bedrock Claude', isCustom: false, - contextLength: 200000, - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'anthropic.claude-3-7-sonnet-20250219-v1:0', - name: 'AWS Bedrock Claude 3.7 Sonnet', - providerId: this.provider.id, - maxTokens: 64_000, - group: 'Bedrock Claude 3.7', - isCustom: false, - contextLength: 200000, - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'anthropic.claude-3-5-sonnet-20241022-v2:0', - name: 'AWS Bedrock Claude 3.5 Sonnet', - providerId: this.provider.id, - maxTokens: 8192, - group: 'Bedrock Claude 3.5', - isCustom: false, - contextLength: 200000, - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'anthropic.claude-3-5-sonnet-20240620-v1:0', - name: 'AWS Bedrock Claude 3.5 Sonnet (Legacy)', - providerId: this.provider.id, - maxTokens: 8192, - group: 'Bedrock Claude 3.5', - isCustom: false, - contextLength: 200000, - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'anthropic.claude-3-haiku-20240307-v1:0', - name: 'AWS Bedrock Claude 3 Haiku', - providerId: this.provider.id, - maxTokens: 8192, - group: 'Bedrock Claude 3', - isCustom: false, - contextLength: 200000, - vision: true, - functionCall: true, - reasoning: false - } - ] + contextLength: m.contextLength, + vision: m.vision || false, + functionCall: m.functionCall || false, + reasoning: m.reasoning || false, + ...(m.type ? { type: m.type } : {}) + })) + + return dbModels } public async check(): Promise<{ isOk: boolean; errorMsg: string | null }> { diff --git a/src/main/presenter/llmProviderPresenter/providers/geminiProvider.ts b/src/main/presenter/llmProviderPresenter/providers/geminiProvider.ts index 5eb6df409..777564c77 100644 --- a/src/main/presenter/llmProviderPresenter/providers/geminiProvider.ts +++ b/src/main/presenter/llmProviderPresenter/providers/geminiProvider.ts @@ -249,11 +249,21 @@ export class GeminiProvider extends BaseLLMProvider { return apiModels } catch (error) { console.warn('Failed to fetch models from Gemini API:', error) - // If API call fails, fallback to static model list - return GeminiProvider.GEMINI_MODELS.map((model) => ({ - ...model, - providerId: this.provider.id + // If API call fails, fallback to Provider DB mapping + const dbModels = this.configPresenter.getDbProviderModels(this.provider.id).map((m) => ({ + id: m.id, + name: m.name, + group: m.group || 'default', + providerId: this.provider.id, + isCustom: false, + contextLength: m.contextLength, + maxTokens: m.maxTokens, + vision: m.vision || false, + functionCall: m.functionCall || false, + reasoning: m.reasoning || false, + ...(m.type ? { type: m.type } : {}) })) + return dbModels } } diff --git a/src/main/presenter/llmProviderPresenter/providers/githubCopilotProvider.ts b/src/main/presenter/llmProviderPresenter/providers/githubCopilotProvider.ts index a96899413..2c3b2d636 100644 --- a/src/main/presenter/llmProviderPresenter/providers/githubCopilotProvider.ts +++ b/src/main/presenter/llmProviderPresenter/providers/githubCopilotProvider.ts @@ -221,107 +221,22 @@ export class GithubCopilotProvider extends BaseLLMProvider { } protected async fetchProviderModels(): Promise { - // GitHub Copilot 支持的模型列表 - const models: MODEL_META[] = [ - { - id: 'gpt-4o', - name: 'GPT-4o', - group: 'GitHub Copilot', - providerId: this.provider.id, - isCustom: false, - contextLength: 128000, - maxTokens: 4096, - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'gpt-4o-mini', - name: 'GPT-4o Mini', - group: 'GitHub Copilot', - providerId: this.provider.id, - isCustom: false, - contextLength: 128000, - maxTokens: 16384, - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'gpt-4.1', - name: 'GPT-4.1', - group: 'GitHub Copilot', - providerId: this.provider.id, - isCustom: false, - contextLength: 200000, - maxTokens: 8192, - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'claude-3.7-sonnet', - name: 'Claude 3.7 sonnet', - group: 'GitHub Copilot', - providerId: this.provider.id, - isCustom: false, - contextLength: 200000, - maxTokens: 8192, - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'claude-sonnet-4', - name: 'Claude Sonnet 4', - group: 'GitHub Copilot', - providerId: this.provider.id, - isCustom: false, - contextLength: 200000, - maxTokens: 8192, - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'gemini-2.5-pro', - name: 'Gemini 2.5 Pro', - group: 'GitHub Copilot', - providerId: this.provider.id, - isCustom: false, - contextLength: 200000, - maxTokens: 8192, - vision: true, - functionCall: true, - reasoning: false - }, - { - id: 'o3-mini', - name: 'O3 Mini', - group: 'GitHub Copilot', - providerId: this.provider.id, - isCustom: false, - contextLength: 128000, - maxTokens: 4096, - vision: true, - functionCall: true, - reasoning: true - }, - { - id: 'o3', - name: 'O3', - group: 'GitHub Copilot', - providerId: this.provider.id, - isCustom: false, - contextLength: 128000, - maxTokens: 4096, - vision: true, - functionCall: true, - reasoning: true - } - ] + // Use aggregated Provider DB as authoritative source for model list + const dbModels = this.configPresenter.getDbProviderModels(this.provider.id).map((m) => ({ + id: m.id, + name: m.name, + group: m.group || 'GitHub Copilot', + providerId: this.provider.id, + isCustom: false, + contextLength: m.contextLength, + maxTokens: m.maxTokens, + vision: m.vision || false, + functionCall: m.functionCall || false, + reasoning: m.reasoning || false, + ...(m.type ? { type: m.type } : {}) + })) - return models + return dbModels } private formatMessages(messages: ChatMessage[]): Array<{ role: string; content: string }> { diff --git a/src/main/presenter/llmProviderPresenter/providers/ollamaProvider.ts b/src/main/presenter/llmProviderPresenter/providers/ollamaProvider.ts index a9e5e1733..aba551c73 100644 --- a/src/main/presenter/llmProviderPresenter/providers/ollamaProvider.ts +++ b/src/main/presenter/llmProviderPresenter/providers/ollamaProvider.ts @@ -74,7 +74,22 @@ export class OllamaProvider extends BaseLLMProvider { })) } catch (error) { console.error('Failed to fetch Ollama models:', error) - return [] + // Fallback to aggregated Provider DB curated list for Ollama + const dbModels = this.configPresenter.getDbProviderModels(this.provider.id).map((m) => ({ + id: m.id, + name: m.name, + providerId: this.provider.id, + contextLength: m.contextLength, + maxTokens: m.maxTokens, + isCustom: false, + group: m.group || 'default', + description: undefined, + vision: m.vision || false, + functionCall: m.functionCall || false, + reasoning: m.reasoning || false, + ...(m.type ? { type: m.type } : {}) + })) + return dbModels } } diff --git a/src/renderer/src/events.ts b/src/renderer/src/events.ts index 126f6e6fb..59a93eae6 100644 --- a/src/renderer/src/events.ts +++ b/src/renderer/src/events.ts @@ -109,6 +109,11 @@ export const NOTIFICATION_EVENTS = { SYS_NOTIFY_CLICKED: 'notification:sys-notify-clicked', // 系统通知点击事件 DATA_RESET_COMPLETE_DEV: 'notification:data-reset-complete-dev' // 开发环境数据重置完成通知 } + +export const PROVIDER_DB_EVENTS = { + LOADED: 'provider-db:loaded', + UPDATED: 'provider-db:updated' +} export const SHORTCUT_EVENTS = { ZOOM_IN: 'shortcut:zoom-in', ZOOM_OUT: 'shortcut:zoom-out', diff --git a/src/renderer/src/stores/settings.ts b/src/renderer/src/stores/settings.ts index 015659f51..8beac3473 100644 --- a/src/renderer/src/stores/settings.ts +++ b/src/renderer/src/stores/settings.ts @@ -5,7 +5,7 @@ import type { ProviderChange, ProviderBatchUpdate } from '@shared/provider-opera import { ModelType } from '@shared/model' import { usePresenter } from '@/composables/usePresenter' import { SearchEngineTemplate } from '@shared/chat' -import { CONFIG_EVENTS, OLLAMA_EVENTS, DEEPLINK_EVENTS } from '@/events' +import { CONFIG_EVENTS, OLLAMA_EVENTS, DEEPLINK_EVENTS, PROVIDER_DB_EVENTS } from '@/events' import type { AWS_BEDROCK_PROVIDER, AwsBedrockCredential, OllamaModel } from '@shared/presenter' import { useRouter } from 'vue-router' import { useMcpStore } from '@/stores/mcp' @@ -455,8 +455,10 @@ export const useSettingsStore = defineStore('settings', () => { // 刷新单个提供商的标准模型 const refreshStandardModels = async (providerId: string): Promise => { try { - // 获取在线模型 - let models = await configP.getProviderModels(providerId) + // 优先使用聚合 Provider DB(统一由主进程映射) + let models: RENDERER_MODEL_META[] = await configP.getDbProviderModels(providerId) + + // 若聚合 DB 为空,回退到 LLMProviderPresenter 的模型列表 if (!models || models.length === 0) { try { const modelMetas = await llmP.getModelList(providerId) @@ -467,7 +469,7 @@ export const useSettingsStore = defineStore('settings', () => { contextLength: meta.contextLength || 4096, maxTokens: meta.maxTokens || 2048, provider: providerId, - group: meta.group, + group: meta.group || 'default', enabled: false, isCustom: meta.isCustom || false, providerId, @@ -479,18 +481,7 @@ export const useSettingsStore = defineStore('settings', () => { } } catch (error) { console.error(`Failed to fetch models for provider ${providerId}:`, error) - // 如果获取失败,使用空数组继续 models = [] - // 如果是 OpenAI provider,可能需要检查配置 - if (providerId === 'openai') { - const provider = providers.value.find((p) => p.id === 'openai') - if (provider) { - // 禁用 provider - await updateProviderStatus('openai', false) - console.warn('Disabled OpenAI provider due to API error') - } - } - return } } @@ -743,6 +734,14 @@ export const useSettingsStore = defineStore('settings', () => { // 设置字体大小事件监听器 setupFontSizeListener() + + // 监听 Provider DB 事件,更新模型列表 + window.electron.ipcRenderer.on(PROVIDER_DB_EVENTS.UPDATED, async () => { + await refreshAllModels() + }) + window.electron.ipcRenderer.on(PROVIDER_DB_EVENTS.LOADED, async () => { + await refreshAllModels() + }) } // 更新本地模型状态,不触发后端请求 diff --git a/src/shared/types/model-db.ts b/src/shared/types/model-db.ts new file mode 100644 index 000000000..6d66172e8 --- /dev/null +++ b/src/shared/types/model-db.ts @@ -0,0 +1,190 @@ +import { z } from 'zod' + +// ---------- Zod Schemas ---------- + +export const ModelSchema = z.object({ + id: z.string().min(1), + name: z.string().optional(), + display_name: z.string().optional(), + modalities: z + .object({ + input: z.array(z.string()).optional(), + output: z.array(z.string()).optional() + }) + .optional(), + limit: z + .object({ + context: z.number().int().nonnegative().optional(), + output: z.number().int().nonnegative().optional() + }) + .optional(), + temperature: z.boolean().optional(), + tool_call: z.boolean().optional(), + reasoning: z.boolean().optional(), + attachment: z.boolean().optional(), + open_weights: z.boolean().optional(), + knowledge: z.string().optional(), + release_date: z.string().optional(), + last_updated: z.string().optional(), + cost: z.record(z.union([z.string(), z.number()])).optional() +}) + +export type ProviderModel = z.infer + +export const ProviderSchema = z.object({ + id: z.string().min(1), + name: z.string().optional(), + display_name: z.string().optional(), + api: z.string().optional(), + doc: z.string().optional(), + env: z.array(z.string()).optional(), + models: z.array(ModelSchema) +}) + +export type ProviderEntry = z.infer + +export const ProviderAggregateSchema = z.object({ + providers: z.record(ProviderSchema) +}) + +export type ProviderAggregate = z.infer + +// ---------- Helpers ---------- + +export function isImageInputSupported(model: ProviderModel | undefined): boolean { + if (!model || !model.modalities || !model.modalities.input) return false + return model.modalities.input.includes('image') +} + +// strengthened id check: lowercase and allowed chars +const PROVIDER_ID_REGEX = /^[a-z0-9][a-z0-9-_]*$/ +const MODEL_ID_REGEX = /^[a-z0-9][a-z0-9\-_.:/]*$/ +export function isValidLowercaseProviderId(id: unknown): id is string { + return ( + typeof id === 'string' && id.length > 0 && id === id.toLowerCase() && PROVIDER_ID_REGEX.test(id) + ) +} +export function isValidLowercaseModelId(id: unknown): id is string { + return ( + typeof id === 'string' && id.length > 0 && id === id.toLowerCase() && MODEL_ID_REGEX.test(id) + ) +} + +// Sanitize an unknown aggregate object: filter out invalid providers/models +function isRecord(v: unknown): v is Record { + return !!v && typeof v === 'object' && !Array.isArray(v) +} +function getString(obj: Record, key: string): string | undefined { + const v = obj[key] + return typeof v === 'string' ? v : undefined +} +function getBoolean(obj: Record, key: string): boolean | undefined { + const v = obj[key] + return typeof v === 'boolean' ? v : undefined +} +function getNumber(obj: Record, key: string): number | undefined { + const v = obj[key] + return typeof v === 'number' && Number.isFinite(v) ? v : undefined +} +function getStringArray(obj: Record, key: string): string[] | undefined { + const v = obj[key] + if (!Array.isArray(v)) return undefined + const arr = v.filter((x) => typeof x === 'string') as string[] + return arr.length ? arr : [] +} +function getStringNumberRecord(obj: unknown): Record | undefined { + if (!isRecord(obj)) return undefined + const out: Record = {} + for (const [k, v] of Object.entries(obj)) { + if (typeof v === 'string' || typeof v === 'number') out[k] = v + } + return Object.keys(out).length ? out : undefined +} + +export function sanitizeAggregate(input: unknown): ProviderAggregate | null { + if (!isRecord(input)) return null + const providersRaw = (input as Record)['providers'] + if (!isRecord(providersRaw)) return null + + const sanitizedProviders: Record = {} + + for (const [key, rawProviderVal] of Object.entries(providersRaw)) { + if (!isRecord(rawProviderVal)) continue + const rawProvider = rawProviderVal as Record + + const pid = getString(rawProvider, 'id') ?? key + if (!isValidLowercaseProviderId(pid)) continue + if (pid !== key) continue + + const modelsVal = rawProvider['models'] + if (!Array.isArray(modelsVal)) continue + + const sanitizedModels: ProviderModel[] = [] + for (const rmVal of modelsVal) { + if (!isRecord(rmVal)) continue + const rm = rmVal as Record + const mid = getString(rm, 'id') + if (!isValidLowercaseModelId(mid)) continue + + // limit + let limit: ProviderModel['limit'] | undefined + const rlimit = rm['limit'] + if (isRecord(rlimit)) { + const ctx = getNumber(rlimit, 'context') + const out = getNumber(rlimit, 'output') + const lim: { context?: number; output?: number } = {} + if (typeof ctx === 'number' && ctx >= 0) lim.context = ctx + if (typeof out === 'number' && out >= 0) lim.output = out + if (lim.context !== undefined || lim.output !== undefined) limit = lim + } + + // modalities + let modalities: ProviderModel['modalities'] | undefined + const rmods = rm['modalities'] + if (isRecord(rmods)) { + const inp = getStringArray(rmods, 'input') + const out = getStringArray(rmods, 'output') + if (inp || out) modalities = { input: inp, output: out } + } + + const model: ProviderModel = { + id: mid!, + name: getString(rm, 'name'), + display_name: getString(rm, 'display_name'), + modalities, + limit, + temperature: getBoolean(rm, 'temperature'), + tool_call: getBoolean(rm, 'tool_call'), + reasoning: getBoolean(rm, 'reasoning'), + attachment: getBoolean(rm, 'attachment'), + open_weights: getBoolean(rm, 'open_weights'), + knowledge: getString(rm, 'knowledge'), + release_date: getString(rm, 'release_date'), + last_updated: getString(rm, 'last_updated'), + cost: getStringNumberRecord(rm['cost']) + } + + sanitizedModels.push(model) + } + + if (sanitizedModels.length === 0) continue + + const envArr = getStringArray(rawProvider, 'env') + + const provider: ProviderEntry = { + id: pid, + name: getString(rawProvider, 'name'), + display_name: getString(rawProvider, 'display_name'), + api: getString(rawProvider, 'api'), + doc: getString(rawProvider, 'doc'), + env: envArr, + models: sanitizedModels + } + + sanitizedProviders[pid] = provider + } + + const keys = Object.keys(sanitizedProviders) + if (keys.length === 0) return null + return { providers: sanitizedProviders } +} diff --git a/src/shared/types/presenters/legacy.presenters.d.ts b/src/shared/types/presenters/legacy.presenters.d.ts index 74d8901bd..a2c2000c1 100644 --- a/src/shared/types/presenters/legacy.presenters.d.ts +++ b/src/shared/types/presenters/legacy.presenters.d.ts @@ -383,6 +383,7 @@ export interface IConfigPresenter { getProviderById(id: string): LLM_PROVIDER | undefined setProviderById(id: string, provider: LLM_PROVIDER): void getProviderModels(providerId: string): MODEL_META[] + getDbProviderModels(providerId: string): RENDERER_MODEL_META[] setProviderModels(providerId: string, models: MODEL_META[]): void getEnabledProviders(): LLM_PROVIDER[] getModelDefaultConfig(modelId: string, providerId?: string): ModelConfig @@ -518,6 +519,7 @@ export interface IConfigPresenter { getAutoDetectNpmRegistry?(): boolean setAutoDetectNpmRegistry?(enabled: boolean): void clearNpmRegistryCache?(): void + getProviderDb(): { providers: Record } | null // Atomic operation interfaces updateProviderAtomic(id: string, updates: Partial): boolean diff --git a/test/main/presenter/providerDbModelConfig.test.ts b/test/main/presenter/providerDbModelConfig.test.ts new file mode 100644 index 000000000..42428d7d4 --- /dev/null +++ b/test/main/presenter/providerDbModelConfig.test.ts @@ -0,0 +1,149 @@ +import { describe, it, expect, beforeEach, vi } from 'vitest' + +// Mock electron-store with in-memory storage to persist user configs across helper instances +const mockStores = new Map>() +vi.mock('electron-store', () => { + return { + default: class MockElectronStore { + private storePath: string + private data: Record + constructor(options: { name: string }) { + this.storePath = options.name + if (!mockStores.has(this.storePath)) mockStores.set(this.storePath, {}) + this.data = mockStores.get(this.storePath)! + } + get(key: string) { + return this.data[key] + } + set(key: string, value: any) { + this.data[key] = value + } + delete(key: string) { + delete this.data[key] + } + has(key: string) { + return key in this.data + } + clear() { + Object.keys(this.data).forEach((k) => delete this.data[k]) + } + get store() { + return { ...this.data } + } + get path() { + return `/mock/${this.storePath}.json` + } + } + } +}) + +// Mock providerDbLoader with a mutable in-memory aggregate +let mockDb: any = null +vi.mock('../../../src/main/presenter/configPresenter/providerDbLoader', () => { + return { + providerDbLoader: { + getDb: () => mockDb, + initialize: async () => {} + } + } +}) + +import { ModelConfigHelper } from '../../../src/main/presenter/configPresenter/modelConfig' +import { ModelType } from '../../../src/shared/model' + +describe('Provider DB strict matching + user overrides', () => { + beforeEach(() => { + // Reset stores and mock DB before each test + mockStores.clear() + mockDb = { + providers: { + 'test-provider': { + id: 'test-provider', + name: 'Test Provider', + models: [ + { + id: 'test-model', + limit: { context: 10000, output: 2000 }, + modalities: { input: ['text', 'image'] }, + tool_call: true, + reasoning: true + }, + { + id: 'partial-limit', + limit: { context: 16000 }, // output missing -> fallback 4096 + modalities: { input: ['text'] } + }, + { + id: 'no-limit' // both missing -> fallback 8192/4096 + } + ] + } + } + } + }) + + it('returns provider DB config on strict provider+model match', () => { + const helper = new ModelConfigHelper('1.0.0') + const cfg = helper.getModelConfig('test-model', 'test-provider') + expect(cfg.maxTokens).toBe(2000) + expect(cfg.contextLength).toBe(10000) + expect(cfg.vision).toBe(true) + expect(cfg.functionCall).toBe(true) + expect(cfg.reasoning).toBe(true) + expect(cfg.type).toBe(ModelType.Chat) + expect(cfg.temperature).toBe(0.6) + }) + + it('applies partial fallbacks when limit fields are missing', () => { + const helper = new ModelConfigHelper('1.0.0') + const cfg1 = helper.getModelConfig('partial-limit', 'test-provider') + expect(cfg1.contextLength).toBe(16000) + expect(cfg1.maxTokens).toBe(4096) + + const cfg2 = helper.getModelConfig('no-limit', 'test-provider') + expect(cfg2.contextLength).toBe(8192) + expect(cfg2.maxTokens).toBe(4096) + }) + + it('falls back to safe defaults when providerId is not provided', () => { + const helper = new ModelConfigHelper('1.0.0') + const cfg = helper.getModelConfig('test-model') + expect(cfg.contextLength).toBe(8192) + expect(cfg.maxTokens).toBe(4096) + expect(cfg.temperature).toBe(0.6) + }) + + it('prefers user config over provider DB and persists across restart', () => { + const helper1 = new ModelConfigHelper('1.0.0') + const userCfg = { + maxTokens: 8888, + contextLength: 7777, + temperature: 0.5, + vision: false, + functionCall: false, + reasoning: false, + type: ModelType.Chat + } + helper1.setModelConfig('test-model', 'test-provider', userCfg) + const read1 = helper1.getModelConfig('test-model', 'test-provider') + expect(read1).toMatchObject({ ...userCfg, isUserDefined: true }) + + // Simulate app restart: new helper instance, same version + const helper2 = new ModelConfigHelper('1.0.0') + const read2 = helper2.getModelConfig('test-model', 'test-provider') + expect(read2).toMatchObject({ ...userCfg, isUserDefined: true }) + + // Simulate version bump: non-user entries would be cleared, user entries remain + const helper3 = new ModelConfigHelper('2.0.0') + const read3 = helper3.getModelConfig('test-model', 'test-provider') + expect(read3).toMatchObject({ ...userCfg, isUserDefined: true }) + }) + + it('matches DB with case-insensitive provider/model IDs for provider data (strictly lowercase in DB)', () => { + const helper = new ModelConfigHelper('1.0.0') + const cfg = helper.getModelConfig('TEST-MODEL', 'TEST-PROVIDER') + // DB lookup lowercases internally + expect(cfg.contextLength).toBe(10000) + expect(cfg.maxTokens).toBe(2000) + }) +})