@@ -0,0 +1,429 @@
+// Package names provides utilities for generating human-readable model names
+// from model IDs. It uses a combination of static mappings and Levenshtein
+// distance-based fuzzy matching to provide consistent, user-friendly names.
+package names
+
+import (
+ "strings"
+ "unicode"
+)
+
+// modelNames maps model IDs to their human-readable display names.
+var modelNames = map[string]string{
+ // Anthropic
+ "claude-sonnet-4-5-20250929": "Claude Sonnet 4.5",
+ "claude-opus-4-5-20251101": "Claude Opus 4.5",
+ "claude-3-5-haiku-20241022": "Claude 3.5 Haiku",
+ "claude-3-5-sonnet-20241022": "Claude 3.5 Sonnet",
+ "claude-3-opus-20240229": "Claude 3 Opus",
+ "claude-3-haiku-20240307": "Claude 3 Haiku",
+ "claude-sonnet-4": "Claude Sonnet 4",
+ "claude-sonnet-4-5": "Claude Sonnet 4.5",
+ "claude-opus-4": "Claude Opus 4",
+ "claude-opus-4-5": "Claude Opus 4.5",
+ "claude-opus-4-5-think": "Claude Opus 4.5 Think",
+ "claude-sonnet-4-5-20250214": "Claude Sonnet 4.5",
+ "claude-haiku-4-5": "Claude Haiku 4.5",
+ "claude-3-5-haiku": "Claude 3.5 Haiku",
+ "claude-3-5-sonnet": "Claude 3.5 Sonnet",
+ "claude-sonnet-4-0": "Claude Sonnet 4",
+ "claude-opus-4-0": "Claude Opus 4",
+ "claude-sonnet-4-5-think": "Claude Sonnet 4.5 Think",
+ "claude-3-7-sonnet": "Claude 3.7 Sonnet",
+
+ // OpenAI
+ "gpt-5.2": "GPT-5.2",
+ "gpt-5.2-codex": "GPT-5.2 Codex",
+ "gpt-5.1-codex": "GPT-5.1 Codex",
+ "gpt-5.1": "GPT-5.1",
+ "gpt-4.1": "GPT-4.1",
+ "gpt-4.1-mini": "GPT-4.1 Mini",
+ "gpt-4.1-nano": "GPT-4.1 Nano",
+ "gpt-4-turbo": "GPT-4 Turbo",
+ "gpt-4-turbo-preview": "GPT-4 Turbo Preview",
+ "gpt-4-vision-preview": "GPT-4 Vision",
+ "gpt-3.5-turbo": "GPT-3.5 Turbo",
+ "gpt-3.5-turbo-16k": "GPT-3.5 Turbo 16K",
+ "o1-preview": "O1 Preview",
+ "o1-mini": "O1 Mini",
+ "o1": "O1",
+ "o3": "O3",
+ "o3-mini": "O3 Mini",
+ "o3-pro": "O3 Pro",
+ "o4-mini": "O4 Mini",
+ "gpt-5": "GPT-5",
+ "gpt-5-pro": "GPT-5 Pro",
+ "gpt-5-mini": "GPT-5 Mini",
+ "gpt-5-nano": "GPT-5 Nano",
+ "gpt-5-codex": "GPT-5 Codex",
+
+ // DeepSeek
+ "deepseek-r1": "DeepSeek R1",
+ "deepseek-v3": "DeepSeek V3",
+ "deepseek-v3-fast": "DeepSeek V3 Fast",
+ "deepseek-v3.1-fast": "DeepSeek V3.1 Fast",
+ "deepseek-v3.1-terminus": "DeepSeek V3.1 Terminus",
+ "deepseek-v3.1-think": "DeepSeek V3.1 Think",
+ "deepseek-v3.2": "DeepSeek V3.2",
+ "deepseek-v3.2-fast": "DeepSeek V3.2 Fast",
+ "deepseek-v3.2-think": "DeepSeek V3.2 Think",
+ "deepseek-v3.2-speciale": "DeepSeek V3.2 Speciale",
+ "deepseek-math-v2": "DeepSeek Math V2",
+ "deepseek-ocr": "DeepSeek OCR",
+
+ // Microsoft Phi
+ "phi-4-mini-reasoning": "Phi 4 Mini",
+ "phi-4-reasoning": "Phi 4",
+ "phi-4-mini": "Phi 4 Mini",
+ "phi-4": "Phi 4",
+ "phi-3.5-mini": "Phi 3.5 Mini",
+ "phi-3.5": "Phi 3.5",
+ "phi-3-mini": "Phi 3 Mini",
+ "phi-3": "Phi 3",
+
+ // ByteDance
+ "bytedance-seed/seed-oss-36b-instruct": "ByteDance Seed OSS 36B",
+
+ // Google/Gemini
+ "gemini-3-flash-preview": "Gemini 3.0 Flash Preview",
+ "gemini-3-flash-preview-free": "Gemini 3.0 Flash Preview (Free)",
+ "gemini-2.5-pro": "Gemini 2.5 Pro",
+ "gemini-2.5-flash": "Gemini 2.5 Flash",
+ "gemini-2.5-flash-lite": "Gemini 2.5 Flash Lite",
+ "gemini-2.5-flash-lite-preview-09-2025": "Gemini 2.5 Flash Lite Preview",
+ "gemini-2.5-flash-preview-09-2025": "Gemini 2.5 Flash Preview",
+ "gemini-2.5-flash-preview-05-20-nothink": "Gemini 2.5 Flash Preview (No Think)",
+ "gemini-2.5-flash-preview-05-20-search": "Gemini 2.5 Flash Search",
+ "gemini-2.5-flash-nothink": "Gemini 2.5 Flash (No Think)",
+ "gemini-2.5-flash-search": "Gemini 2.5 Flash Search",
+ "gemini-2.5-pro-preview-05-06": "Gemini 2.5 Pro Preview",
+ "gemini-2.5-pro-preview-06-05": "Gemini 2.5 Pro Preview",
+ "gemini-2.5-pro-search": "Gemini 2.5 Pro Search",
+ "gemini-2.0-pro-exp-02-05": "Gemini 2.0 Pro",
+ "gemini-2.0-flash-exp": "Gemini 2.0 Flash",
+ "gemini-2.0-flash-free": "Gemini 2.0 Flash (Free)",
+ "gemini-1.5-pro": "Gemini 1.5 Pro",
+ "gemini-1.5-flash": "Gemini 1.5 Flash",
+ "gemini-1.5-flash-8b": "Gemini 1.5 Flash 8B",
+ "gemini-1.0-pro": "Gemini 1.0 Pro",
+
+ // Zhipu AI (GLM)
+ "glm-4.7": "GLM-4.7",
+ "glm-4.7-flash": "GLM-4.7 Flash",
+ "glm-4.6": "GLM-4.6",
+ "glm-4.6v": "GLM-4.6 Vision",
+ "glm-4.5": "GLM-4.5",
+ "glm-4-flash": "GLM-4 Flash",
+ "glm-4-plus": "GLM-4 Plus",
+ "glm-4-air": "GLM-4 Air",
+
+ // Meta (Llama)
+ "llama-4-maverick": "Llama 4 Maverick",
+ "llama-4-scout": "Llama 4 Scout",
+ "llama-3.3-70b-instruct": "Llama 3.3 70B",
+ "llama-3.2-90b-vision-preview": "Llama 3.2 90B Vision",
+ "llama-3.2-11b-vision-preview": "Llama 3.2 11B Vision",
+ "llama-3.2-3b-instruct": "Llama 3.2 3B",
+ "llama-3.2-1b-instruct": "Llama 3.2 1B",
+ "llama-3.1-405b-instruct": "Llama 3.1 405B",
+ "llama-3.1-70b-instruct": "Llama 3.1 70B",
+ "llama-3.1-8b-instruct": "Llama 3.1 8B",
+ "llama-3-70b-instruct": "Llama 3 70B",
+ "llama-3-8b-instruct": "Llama 3 8B",
+ "llama-2-70b-chat": "Llama 2 70B",
+ "llama-2-13b-chat": "Llama 2 13B",
+ "llama-2-7b-chat": "Llama 2 7B",
+
+ // Mistral
+ "mistral-large-2411": "Mistral Large",
+ "mistral-large-3": "Mistral Large 3",
+ "mistral-large-2402": "Mistral Large (2024.02)",
+ "mistral-medium-2312": "Mistral Medium",
+ "mistral-small-2402": "Mistral Small",
+ "mistral-7b-instruct-v0.3": "Mistral 7B v0.3",
+ "mixtral-8x7b-instruct-v0.1": "Mixtral 8x7B",
+ "mixtral-8x22b-instruct-v0.1": "Mixtral 8x22B",
+ "mistral-nemo": "Mistral Nemo",
+ "codestral-latest": "Codestral",
+ "codestral-2405": "Codestral",
+
+ // Cohere
+ "command-r-plus": "Command R+",
+ "command-r-08-2024": "Command R",
+ "command-r7b-12-2024": "Command R7B",
+ "command-light": "Command Light",
+ "command": "Command",
+
+ // AI21
+ "jamba-large-1.7": "Jamba Large 1.7",
+ "jamba-mini-1.7": "Jamba Mini 1.7",
+
+ // X.AI (Grok)
+ "grok-4-1-fast-non-reasoning": "Grok 4.1 Fast",
+ "grok-4-1-fast-reasoning": "Grok 4.1 Fast (Reasoning)",
+ "grok-code-fast-1": "Grok Code Fast",
+ "grok-2": "Grok 2",
+ "grok-2-1212": "Grok 2",
+ "grok-1-5": "Grok 1.5",
+ "grok-beta": "Grok Beta",
+
+ // Alibaba (Qwen)
+ "qwen-2.5-coder-32b-instruct": "Qwen 2.5 Coder 32B",
+ "qwen-2.5-72b-instruct": "Qwen 2.5 72B",
+ "qwen-2.5-14b-instruct": "Qwen 2.5 14B",
+ "qwen-2.5-7b-instruct": "Qwen 2.5 7B",
+ "qwen-2.5-3b-instruct": "Qwen 2.5 3B",
+ "qwen-2-72b-instruct": "Qwen 2 72B",
+ "qwen-2-7b-instruct": "Qwen 2 7B",
+ "qwq-32b-preview": "Qwen QwQ 32B",
+ "qwq-32b": "Qwen QwQ 32B",
+
+ // Baidu (ERNIE)
+ "ernie-5.0-thinking-exp": "ERNIE 5.0 Thinking",
+ "ernie-5.0-thinking-preview": "ERNIE 5.0 Thinking Preview",
+ "ernie-4.5": "ERNIE 4.5",
+ "ernie-4.5-turbo-latest": "ERNIE 4.5 Turbo",
+ "ernie-4.5-turbo-vl": "ERNIE 4.5 Turbo Vision",
+ "ernie-x1.1-preview": "ERNIE X1.1 Preview",
+ "ernie-x1-turbo": "ERNIE X1 Turbo",
+
+ // Kimi
+ "kimi-for-coding-free": "Kimi for Coding (Free)",
+ "kimi-k2-thinking": "Kimi K2 Thinking",
+ "kimi-k2-0905": "Kimi K2",
+ "kimi-k2-0711": "Kimi K2 (0711)",
+ "kimi-k2-turbo-preview": "Kimi K2 Turbo Preview",
+
+ // Qwen (Alibaba)
+ "qwen3-vl-235b-a22b-instruct": "Qwen3 VL 235B",
+ "qwen3-vl-235b-a22b-thinking": "Qwen3 VL 235B Thinking",
+ "qwen3-vl-30b-a3b-instruct": "Qwen3 VL 30B",
+ "qwen3-vl-30b-a3b-thinking": "Qwen3 VL 30B Thinking",
+ "qwen3-vl-plus": "Qwen3 VL Plus",
+ "qwen3-max": "Qwen3 Max",
+ "qwen3-next-80b-a3b-instruct": "Qwen3 Next 80B",
+ "qwen3-next-80b-a3b-thinking": "Qwen3 Next 80B Thinking",
+ "qwen3-235b-a22b-instruct-2507": "Qwen3 235B",
+ "qwen3-235b-a22b-thinking-2507": "Qwen3 235B Thinking",
+ "qwen3-235b-a22b": "Qwen3 235B",
+ "qwen3-coder-30b-a3b-instruct": "Qwen3 Coder 30B",
+ "qwen3-coder-480b-a35b-instruct": "Qwen3 Coder 480B",
+ "qwen3-coder-flash": "Qwen3 Coder Flash",
+ "qwen3-coder-plus": "Qwen3 Coder Plus",
+ "qwen3-coder-plus-2025-07-22": "Qwen3 Coder Plus",
+
+ // Other
+ "kat-dev": "Kat Dev",
+ "jina-deepsearch-v1": "Jina DeepSearch V1",
+ "mimo-v2-flash-free": "Mimo V2 Flash (Free)",
+ "gpt-oss-120b": "GPT OSS 120B",
+ "gpt-oss-20b": "GPT OSS 20B",
+ "gpt-4o-audio-preview": "GPT-4o Audio Preview",
+ "gpt-4o-search-preview": "GPT-4o Search",
+ "gpt-4o-mini-search-preview": "GPT-4o Mini Search",
+ "gpt-4o-2024-11-20": "GPT-4o",
+ "gpt-4o": "GPT-4o",
+ "gpt-4o-mini": "GPT-4o Mini",
+ "coding-glm-4.6-free": "Coding GLM 4.6 (Free)",
+ "coding-minimax-m2.1": "Coding MiniMax M2.1",
+ "coding-minimax-m2": "Coding MiniMax M2",
+ "coding-minimax-m2-free": "Coding MiniMax M2 (Free)",
+
+ // OpenRouter-specific mappings (provider/model format)
+ "anthropic/claude-sonnet-4": "Claude Sonnet 4",
+ "anthropic/claude-sonnet-4.5": "Claude Sonnet 4.5",
+ "anthropic/claude-3-opus": "Claude 3 Opus",
+ "anthropic/claude-3.5-haiku": "Claude 3.5 Haiku",
+ "anthropic/claude-3-haiku": "Claude 3 Haiku",
+ "openai/gpt-5.2": "GPT-5.2",
+ "openai/gpt-5.2-codex": "GPT-5.2 Codex",
+ "openai/gpt-5": "GPT-5",
+ "openai/gpt-4-turbo": "GPT-4 Turbo",
+ "openai/gpt-4-turbo-preview": "GPT-4 Turbo Preview",
+ "openai/gpt-3.5-turbo": "GPT-3.5 Turbo",
+ "google/gemini-pro-1.5": "Gemini 1.5 Pro",
+ "google/gemini-flash-1.5": "Gemini 1.5 Flash",
+ "meta-llama/llama-3.3-70b-instruct": "Llama 3.3 70B",
+ "meta-llama/llama-3.2-3b-instruct": "Llama 3.2 3B",
+ "meta-llama/llama-3.1-405b-instruct": "Llama 3.1 405B",
+ "mistralai/mistral-large": "Mistral Large",
+ "mistralai/mistral-medium": "Mistral Medium",
+ "mistralai/mistral-small": "Mistral Small",
+ "qwen/qwen-2.5-72b-instruct": "Qwen 2.5 72B",
+}
+
+// GetDisplayName returns a human-readable display name for the given model ID.
+// It first checks the static mapping, then attempts to find a close match using
+// Levenshtein distance. If no good match is found, it returns a cleaned-up
+// version of the model ID.
+func GetDisplayName(modelID string) string {
+ // Normalize to lowercase and try exact match first
+ normalized := strings.ToLower(modelID)
+ if name, ok := modelNames[normalized]; ok {
+ return name
+ }
+
+ // Try case-sensitive match
+ if name, ok := modelNames[modelID]; ok {
+ return name
+ }
+
+ // Try without provider prefix (e.g., "anthropic/claude-sonnet-4" -> "claude-sonnet-4")
+ if idx := strings.LastIndex(modelID, "/"); idx != -1 {
+ baseModel := modelID[idx+1:]
+ if name, ok := modelNames[strings.ToLower(baseModel)]; ok {
+ return name
+ }
+ if name, ok := modelNames[baseModel]; ok {
+ return name
+ }
+ }
+
+ // Try fuzzy match with known models
+ if bestMatch := findBestMatch(normalized); bestMatch != "" {
+ return bestMatch
+ }
+
+ // Fall back to formatting the model ID nicely
+ return formatModelName(modelID)
+}
+
+// formatModelName converts a technical model ID to a more readable format.
+// It replaces separators with spaces and capitalizes properly.
+func formatModelName(modelID string) string {
+ // Remove provider prefix if present
+ baseModel := modelID
+ if idx := strings.LastIndex(modelID, "/"); idx != -1 {
+ baseModel = modelID[idx+1:]
+ }
+
+ // Split by common separators
+ separators := []string{"_", "/"}
+
+ // Replace all separators (except dashes which we'll handle special) with spaces
+ result := baseModel
+ for _, sep := range separators {
+ result = strings.ReplaceAll(result, sep, " ")
+ }
+
+ // Convert version patterns like "3-5", "4-5" to "3.5", "4.5"
+ // This handles cases where version numbers use dashes as decimal separators
+ result = convertVersionDashes(result)
+
+ // Now replace remaining dashes with spaces
+ result = strings.ReplaceAll(result, "-", " ")
+
+ // Clean up extra spaces
+ result = strings.Join(strings.Fields(result), " ")
+
+ // Capitalize first letter of each word
+ result = titleCase(result)
+
+ // Handle special cases like "V3" -> "V3" (already capitalized)
+ result = preserveVersionNumbers(result)
+
+ return result
+}
+
+// convertVersionDashes converts dash-separated version numbers to dot-separated.
+// For example: "3-5" -> "3.5", "4-5-haiku" -> "4.5 Haiku"
+func convertVersionDashes(s string) string {
+ // Pattern: digit dash digit -> digit dot digit
+ // Use a simple loop to replace these patterns
+ result := s
+ for i := 0; i < len(result)-2; i++ {
+ // Check if we have "X-Y" pattern where X and Y are digits
+ if result[i] >= '0' && result[i] <= '9' &&
+ result[i+1] == '-' &&
+ result[i+2] >= '0' && result[i+2] <= '9' {
+ // Convert to "X.Y"
+ result = result[:i+1] + "." + result[i+2:]
+ }
+ }
+ return result
+}
+
+// titleCase capitalizes the first letter of each word.
+func titleCase(s string) string {
+ words := strings.Fields(s)
+ for i, word := range words {
+ if len(word) > 0 {
+ words[i] = string(unicode.ToUpper(rune(word[0]))) + word[1:]
+ }
+ }
+ return strings.Join(words, " ")
+}
+
+// preserveVersionNumbers keeps version numbers properly formatted.
+func preserveVersionNumbers(s string) string {
+ // Handle patterns like V3, V3.1, etc.
+ result := strings.ReplaceAll(s, "V ", "V")
+
+ // Fix double spaces that might have been introduced
+ result = strings.Join(strings.Fields(result), " ")
+
+ return result
+}
+
+// findBestMatch uses Levenshtein distance to find the best matching model name.
+func findBestMatch(modelID string) string {
+ const threshold = 4 // Maximum edit distance to consider
+
+ var bestMatch string
+ minDistance := threshold + 1
+
+ for knownID, name := range modelNames {
+ distance := levenshteinDistance(modelID, knownID)
+ if distance < minDistance {
+ minDistance = distance
+ bestMatch = name
+ }
+ }
+
+ if bestMatch != "" && minDistance <= threshold {
+ return bestMatch
+ }
+
+ return ""
+}
+
+// levenshteinDistance computes the edit distance between two strings.
+func levenshteinDistance(a, b string) int {
+ // Optimization: if either string is empty, return the length of the other
+ if len(a) == 0 {
+ return len(b)
+ }
+ if len(b) == 0 {
+ return len(a)
+ }
+
+ // Use a single row to save memory
+ previous := make([]int, len(b)+1)
+
+ // Initialize the first row
+ for j := 0; j <= len(b); j++ {
+ previous[j] = j
+ }
+
+ for i := 1; i <= len(a); i++ {
+ current := make([]int, len(b)+1)
+ current[0] = i
+
+ for j := 1; j <= len(b); j++ {
+ cost := 0
+ if a[i-1] != b[j-1] {
+ cost = 1
+ }
+
+ deletion := previous[j] + 1
+ insertion := current[j-1] + 1
+ substitution := previous[j-1] + cost
+
+ current[j] = min(deletion, min(insertion, substitution))
+ }
+
+ previous = current
+ }
+
+ return previous[len(b)]
+}
@@ -9,7 +9,7 @@
"models": [
{
"id": "AiHubmix-Phi-4-mini-reasoning",
- "name": "AiHubmix-Phi-4-mini-reasoning",
+ "name": "AiHubmix Phi 4 Mini Reasoning",
"cost_per_1m_in": 0.12,
"cost_per_1m_out": 0.12,
"cost_per_1m_in_cached": 0,
@@ -22,7 +22,7 @@
},
{
"id": "AiHubmix-Phi-4-reasoning",
- "name": "AiHubmix-Phi-4-reasoning",
+ "name": "AiHubmix Phi 4 Reasoning",
"cost_per_1m_in": 0.2,
"cost_per_1m_out": 0.2,
"cost_per_1m_in_cached": 0,
@@ -39,235 +39,9 @@
"supports_attachments": false,
"options": {}
},
- {
- "id": "ByteDance-Seed/Seed-OSS-36B-Instruct",
- "name": "ByteDance-Seed/Seed-OSS-36B-Instruct",
- "cost_per_1m_in": 0.2,
- "cost_per_1m_out": 0.534,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 256000,
- "default_max_tokens": 32000,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "DeepSeek-OCR",
- "name": "DeepSeek-OCR",
- "cost_per_1m_in": 0.02,
- "cost_per_1m_out": 0.02,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 8000,
- "default_max_tokens": 800,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "DeepSeek-R1",
- "name": "DeepSeek-R1",
- "cost_per_1m_in": 0.4,
- "cost_per_1m_out": 2,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 1638000,
- "default_max_tokens": 163800,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "DeepSeek-V3",
- "name": "DeepSeek-V3",
- "cost_per_1m_in": 0.272,
- "cost_per_1m_out": 1.088,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 1638000,
- "default_max_tokens": 163800,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "DeepSeek-V3-Fast",
- "name": "DeepSeek-V3-Fast",
- "cost_per_1m_in": 0.56,
- "cost_per_1m_out": 2.24,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 32000,
- "default_max_tokens": 3200,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "DeepSeek-V3.1-Fast",
- "name": "DeepSeek-V3.1-Fast",
- "cost_per_1m_in": 1.096,
- "cost_per_1m_out": 3.288,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 163000,
- "default_max_tokens": 16300,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "DeepSeek-V3.1-Terminus",
- "name": "DeepSeek-V3.1-Terminus",
- "cost_per_1m_in": 0.56,
- "cost_per_1m_out": 1.68,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 160000,
- "default_max_tokens": 32000,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "DeepSeek-V3.1-Think",
- "name": "DeepSeek-V3.1-Think",
- "cost_per_1m_in": 0.56,
- "cost_per_1m_out": 1.68,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 128000,
- "default_max_tokens": 32000,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "DeepSeek-V3.2-Exp",
- "name": "DeepSeek-V3.2-Exp",
- "cost_per_1m_in": 0.274,
- "cost_per_1m_out": 0.411,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.0274,
- "context_window": 163000,
- "default_max_tokens": 16300,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "DeepSeek-V3.2-Exp-Think",
- "name": "DeepSeek-V3.2-Exp-Think",
- "cost_per_1m_in": 0.274,
- "cost_per_1m_out": 0.411,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.0274,
- "context_window": 131000,
- "default_max_tokens": 64000,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "ERNIE-X1.1-Preview",
- "name": "ERNIE-X1.1-Preview",
- "cost_per_1m_in": 0.136,
- "cost_per_1m_out": 0.544,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 119000,
- "default_max_tokens": 11900,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "Kimi-K2-0905",
- "name": "Kimi-K2-0905",
- "cost_per_1m_in": 0.548,
- "cost_per_1m_out": 2.192,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 262144,
- "default_max_tokens": 26214,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "Qwen/Qwen2.5-VL-32B-Instruct",
- "name": "Qwen/Qwen2.5-VL-32B-Instruct",
- "cost_per_1m_in": 0.24,
- "cost_per_1m_out": 0.24,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "Qwen/Qwen2.5-VL-72B-Instruct",
- "name": "Qwen/Qwen2.5-VL-72B-Instruct",
- "cost_per_1m_in": 0.5,
- "cost_per_1m_out": 0.5,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "ahm-Phi-3-5-vision-instruct",
- "name": "ahm-Phi-3-5-vision-instruct",
- "cost_per_1m_in": 0.4,
- "cost_per_1m_out": 1.6,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "aihub-Phi-4",
- "name": "aihub-Phi-4",
- "cost_per_1m_in": 0.12,
- "cost_per_1m_out": 0.48,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 16400,
- "default_max_tokens": 1640,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
{
"id": "aihub-Phi-4-mini-instruct",
- "name": "aihub-Phi-4-mini-instruct",
+ "name": "Aihub Phi 4 Mini Instruct",
"cost_per_1m_in": 0.12,
"cost_per_1m_out": 0.48,
"cost_per_1m_in_cached": 0,
@@ -280,7 +54,7 @@
},
{
"id": "aihub-Phi-4-multimodal-instruct",
- "name": "aihub-Phi-4-multimodal-instruct",
+ "name": "Aihub Phi 4 Multimodal Instruct",
"cost_per_1m_in": 0.12,
"cost_per_1m_out": 0.48,
"cost_per_1m_in_cached": 0,
@@ -292,934 +66,117 @@
"options": {}
},
{
- "id": "aihubmix-Cohere-command-r",
- "name": "aihubmix-Cohere-command-r",
- "cost_per_1m_in": 0.64,
- "cost_per_1m_out": 1.92,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "aihubmix-command-r-08-2024",
- "name": "aihubmix-command-r-08-2024",
+ "id": "ByteDance-Seed/Seed-OSS-36B-Instruct",
+ "name": "ByteDance Seed OSS 36B",
"cost_per_1m_in": 0.2,
- "cost_per_1m_out": 0.8,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "aihubmix-command-r-plus",
- "name": "aihubmix-command-r-plus",
- "cost_per_1m_in": 3.84,
- "cost_per_1m_out": 19.2,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "aihubmix-command-r-plus-08-2024",
- "name": "aihubmix-command-r-plus-08-2024",
- "cost_per_1m_in": 2.8,
- "cost_per_1m_out": 11.2,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "aihubmix-router",
- "name": "aihubmix-router",
- "cost_per_1m_in": 0.4,
- "cost_per_1m_out": 1.6,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.1,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "baidu-deepseek-v3.2",
- "name": "baidu-deepseek-v3.2",
- "cost_per_1m_in": 0.274,
- "cost_per_1m_out": 0.411,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "baidu-deepseek-v3.2-exp",
- "name": "baidu-deepseek-v3.2-exp",
- "cost_per_1m_in": 0.274,
- "cost_per_1m_out": 0.411,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.0274,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "baidu/ERNIE-4.5-300B-A47B",
- "name": "baidu/ERNIE-4.5-300B-A47B",
- "cost_per_1m_in": 0.32,
- "cost_per_1m_out": 1.28,
+ "cost_per_1m_out": 0.534,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "cc-MiniMax-M2",
- "name": "cc-MiniMax-M2",
- "cost_per_1m_in": 0.1,
- "cost_per_1m_out": 0.1,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "cc-deepseek-v3.1",
- "name": "cc-deepseek-v3.1",
- "cost_per_1m_in": 0.56,
- "cost_per_1m_out": 1.68,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "cc-ernie-4.5-300b-a47b",
- "name": "cc-ernie-4.5-300b-a47b",
- "cost_per_1m_in": 0.32,
- "cost_per_1m_out": 1.28,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "cc-kimi-k2-instruct",
- "name": "cc-kimi-k2-instruct",
- "cost_per_1m_in": 1.1,
- "cost_per_1m_out": 3.3,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "cc-kimi-k2-instruct-0905",
- "name": "cc-kimi-k2-instruct-0905",
- "cost_per_1m_in": 1.1,
- "cost_per_1m_out": 3.3,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "cc-minimax-m2",
- "name": "cc-minimax-m2",
- "cost_per_1m_in": 0.1,
- "cost_per_1m_out": 0.1,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "cc-minimax-m2.1",
- "name": "cc-minimax-m2.1",
- "cost_per_1m_in": 0.1,
- "cost_per_1m_out": 0.1,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "chatgpt-4o-latest",
- "name": "chatgpt-4o-latest",
- "cost_per_1m_in": 5,
- "cost_per_1m_out": 15,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "claude-3-5-haiku",
- "name": "claude-3-5-haiku",
- "cost_per_1m_in": 1.1,
- "cost_per_1m_out": 5.5,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 200000,
- "default_max_tokens": 8192,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "claude-3-5-sonnet",
- "name": "claude-3-5-sonnet",
- "cost_per_1m_in": 3.3,
- "cost_per_1m_out": 16.5,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 200000,
- "default_max_tokens": 8192,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "claude-3-5-sonnet-20240620",
- "name": "claude-3-5-sonnet-20240620",
- "cost_per_1m_in": 3.3,
- "cost_per_1m_out": 16.5,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 200000,
- "default_max_tokens": 8192,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "claude-3-7-sonnet",
- "name": "claude-3-7-sonnet",
- "cost_per_1m_in": 3.3,
- "cost_per_1m_out": 16.5,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 200000,
- "default_max_tokens": 20000,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "claude-3-haiku-20240229",
- "name": "claude-3-haiku-20240229",
- "cost_per_1m_in": 0.275,
- "cost_per_1m_out": 0.275,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "claude-3-haiku-20240307",
- "name": "claude-3-haiku-20240307",
- "cost_per_1m_in": 0.275,
- "cost_per_1m_out": 1.375,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "claude-3-haiku@20240307",
- "name": "claude-3-haiku@20240307",
- "cost_per_1m_in": 0.275,
- "cost_per_1m_out": 1.375,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "claude-3-sonnet-20240229",
- "name": "claude-3-sonnet-20240229",
- "cost_per_1m_in": 3.3,
- "cost_per_1m_out": 16.5,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "claude-haiku-4-5",
- "name": "claude-haiku-4-5",
- "cost_per_1m_in": 1.1,
- "cost_per_1m_out": 5.5,
- "cost_per_1m_in_cached": 1.375,
- "cost_per_1m_out_cached": 0.11,
- "context_window": 204800,
- "default_max_tokens": 20480,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "claude-opus-4-0",
- "name": "claude-opus-4-0",
- "cost_per_1m_in": 16.5,
- "cost_per_1m_out": 82.5,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 200000,
- "default_max_tokens": 32000,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "claude-opus-4-1",
- "name": "claude-opus-4-1",
- "cost_per_1m_in": 16.5,
- "cost_per_1m_out": 82.5,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 200000,
- "default_max_tokens": 32000,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "claude-opus-4-5",
- "name": "claude-opus-4-5",
- "cost_per_1m_in": 5,
- "cost_per_1m_out": 25,
- "cost_per_1m_in_cached": 6.25,
- "cost_per_1m_out_cached": 0.5,
- "context_window": 200000,
- "default_max_tokens": 32000,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "claude-opus-4-5-think",
- "name": "claude-opus-4-5-think",
- "cost_per_1m_in": 5,
- "cost_per_1m_out": 25,
- "cost_per_1m_in_cached": 6.25,
- "cost_per_1m_out_cached": 0.5,
- "context_window": 200000,
- "default_max_tokens": 32000,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "claude-sonnet-4-0",
- "name": "claude-sonnet-4-0",
- "cost_per_1m_in": 3.3,
- "cost_per_1m_out": 16.5,
- "cost_per_1m_in_cached": 4.125,
- "cost_per_1m_out_cached": 0.33,
- "context_window": 1000000,
- "default_max_tokens": 64000,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "claude-sonnet-4-5",
- "name": "claude-sonnet-4-5",
- "cost_per_1m_in": 3.3,
- "cost_per_1m_out": 16.5,
- "cost_per_1m_in_cached": 4.125,
- "cost_per_1m_out_cached": 0.33,
- "context_window": 1000000,
- "default_max_tokens": 64000,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "claude-sonnet-4-5-think",
- "name": "claude-sonnet-4-5-think",
- "cost_per_1m_in": 3.3,
- "cost_per_1m_out": 16.5,
- "cost_per_1m_in_cached": 4.125,
- "cost_per_1m_out_cached": 0.33,
- "context_window": 1000000,
- "default_max_tokens": 64000,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "codex-mini-latest",
- "name": "codex-mini-latest",
- "cost_per_1m_in": 1.5,
- "cost_per_1m_out": 6,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.375,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "coding-glm-4.6",
- "name": "coding-glm-4.6",
- "cost_per_1m_in": 0.06,
- "cost_per_1m_out": 0.22,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.010998,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "coding-glm-4.6-free",
- "name": "coding-glm-4.6-free",
- "cost_per_1m_in": 0,
- "cost_per_1m_out": 0,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 200000,
- "default_max_tokens": 20000,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "coding-glm-4.7",
- "name": "coding-glm-4.7",
- "cost_per_1m_in": 0.06,
- "cost_per_1m_out": 0.22,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.010998,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "coding-glm-4.7-free",
- "name": "coding-glm-4.7-free",
- "cost_per_1m_in": 0,
- "cost_per_1m_out": 0,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "coding-minimax-m2",
- "name": "coding-minimax-m2",
- "cost_per_1m_in": 0.2,
- "cost_per_1m_out": 0.2,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 204800,
- "default_max_tokens": 13100,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "coding-minimax-m2-free",
- "name": "coding-minimax-m2-free",
- "cost_per_1m_in": 0,
- "cost_per_1m_out": 0,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 204800,
- "default_max_tokens": 13100,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "coding-minimax-m2.1",
- "name": "coding-minimax-m2.1",
- "cost_per_1m_in": 0.2,
- "cost_per_1m_out": 0.2,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 204800,
- "default_max_tokens": 13100,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "command",
- "name": "command",
- "cost_per_1m_in": 1,
- "cost_per_1m_out": 2,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "command-a-03-2025",
- "name": "command-a-03-2025",
- "cost_per_1m_in": 2.5,
- "cost_per_1m_out": 10,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "command-r",
- "name": "command-r",
- "cost_per_1m_in": 0.64,
- "cost_per_1m_out": 1.92,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "command-r-08-2024",
- "name": "command-r-08-2024",
- "cost_per_1m_in": 0.2,
- "cost_per_1m_out": 0.8,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "command-r-plus",
- "name": "command-r-plus",
- "cost_per_1m_in": 3.84,
- "cost_per_1m_out": 19.2,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "command-r-plus-08-2024",
- "name": "command-r-plus-08-2024",
- "cost_per_1m_in": 2.8,
- "cost_per_1m_out": 11.2,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "deepseek-math-v2",
- "name": "deepseek-math-v2",
- "cost_per_1m_in": 0.492,
- "cost_per_1m_out": 1.968,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.0984,
- "context_window": 163000,
- "default_max_tokens": 16300,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "deepseek-r1-distill-llama-70b",
- "name": "deepseek-r1-distill-llama-70b",
- "cost_per_1m_in": 0.8,
- "cost_per_1m_out": 1.6,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "deepseek-v3.2",
- "name": "deepseek-v3.2",
- "cost_per_1m_in": 0.302,
- "cost_per_1m_out": 0.453,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.0302,
- "context_window": 128000,
- "default_max_tokens": 64000,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "deepseek-v3.2-fast",
- "name": "deepseek-v3.2-fast",
- "cost_per_1m_in": 1.096,
- "cost_per_1m_out": 3.288,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 1.096,
- "context_window": 128000,
- "default_max_tokens": 12800,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "deepseek-v3.2-speciale",
- "name": "deepseek-v3.2-speciale",
- "cost_per_1m_in": 0.58,
- "cost_per_1m_out": 1.680028,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0,
- "context_window": 128000,
- "default_max_tokens": 12800,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "deepseek-v3.2-think",
- "name": "deepseek-v3.2-think",
- "cost_per_1m_in": 0.302,
- "cost_per_1m_out": 0.453,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.0302,
- "context_window": 128000,
- "default_max_tokens": 64000,
- "can_reason": false,
- "supports_attachments": false,
- "options": {}
- },
- {
- "id": "doubao-seed-1-6",
- "name": "doubao-seed-1-6",
- "cost_per_1m_in": 0.18,
- "cost_per_1m_out": 1.8,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.036,
- "context_window": 256000,
- "default_max_tokens": 32000,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "doubao-seed-1-6-flash",
- "name": "doubao-seed-1-6-flash",
- "cost_per_1m_in": 0.044,
- "cost_per_1m_out": 0.44,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.0088,
- "context_window": 256000,
- "default_max_tokens": 33000,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "doubao-seed-1-6-lite",
- "name": "doubao-seed-1-6-lite",
- "cost_per_1m_in": 0.082,
- "cost_per_1m_out": 0.656,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.0164,
- "context_window": 256000,
- "default_max_tokens": 32000,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "doubao-seed-1-6-thinking",
- "name": "doubao-seed-1-6-thinking",
- "cost_per_1m_in": 0.18,
- "cost_per_1m_out": 1.8,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.036,
- "context_window": 256000,
- "default_max_tokens": 32000,
- "can_reason": false,
- "supports_attachments": true,
- "options": {}
- },
- {
- "id": "doubao-seed-1-8",
- "name": "doubao-seed-1-8",
- "cost_per_1m_in": 0.10959,
- "cost_per_1m_out": 0.273975,
- "cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.021918,
- "context_window": 256000,
- "default_max_tokens": 64000,
- "can_reason": true,
- "reasoning_levels": [
- "low",
- "medium",
- "high"
- ],
- "default_reasoning_effort": "medium",
+ "context_window": 256000,
+ "default_max_tokens": 32000,
+ "can_reason": false,
"supports_attachments": true,
"options": {}
},
{
- "id": "ernie-4.5",
- "name": "ernie-4.5",
- "cost_per_1m_in": 0.068,
- "cost_per_1m_out": 0.272,
+ "id": "claude-3-5-haiku",
+ "name": "Claude 3.5 Haiku",
+ "cost_per_1m_in": 1.1,
+ "cost_per_1m_out": 5.5,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
- "context_window": 160000,
- "default_max_tokens": 64000,
+ "context_window": 200000,
+ "default_max_tokens": 8192,
"can_reason": false,
"supports_attachments": true,
"options": {}
},
{
- "id": "ernie-4.5-0.3b",
- "name": "ernie-4.5-0.3b",
- "cost_per_1m_in": 0.0136,
- "cost_per_1m_out": 0.0544,
+ "id": "claude-3-5-sonnet",
+ "name": "Claude 3.5 Sonnet",
+ "cost_per_1m_in": 3.3,
+ "cost_per_1m_out": 16.5,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
+ "context_window": 200000,
+ "default_max_tokens": 8192,
"can_reason": false,
"supports_attachments": true,
"options": {}
},
{
- "id": "ernie-4.5-turbo-128k-preview",
- "name": "ernie-4.5-turbo-128k-preview",
- "cost_per_1m_in": 0.108,
- "cost_per_1m_out": 0.432,
+ "id": "claude-3-5-sonnet-20240620",
+ "name": "Claude 3.5 Sonnet",
+ "cost_per_1m_in": 3.3,
+ "cost_per_1m_out": 16.5,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
- "context_window": 0,
- "default_max_tokens": 0,
+ "context_window": 200000,
+ "default_max_tokens": 8192,
"can_reason": false,
"supports_attachments": true,
"options": {}
},
{
- "id": "ernie-4.5-turbo-latest",
- "name": "ernie-4.5-turbo-latest",
- "cost_per_1m_in": 0.11,
- "cost_per_1m_out": 0.44,
+ "id": "claude-3-7-sonnet",
+ "name": "Claude 3.7 Sonnet",
+ "cost_per_1m_in": 3.3,
+ "cost_per_1m_out": 16.5,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
- "context_window": 135000,
- "default_max_tokens": 12000,
- "can_reason": false,
+ "context_window": 200000,
+ "default_max_tokens": 20000,
+ "can_reason": true,
+ "reasoning_levels": [
+ "low",
+ "medium",
+ "high"
+ ],
+ "default_reasoning_effort": "medium",
"supports_attachments": true,
"options": {}
},
{
- "id": "ernie-4.5-turbo-vl",
- "name": "ernie-4.5-turbo-vl",
- "cost_per_1m_in": 0.4,
- "cost_per_1m_out": 1.2,
+ "id": "claude-haiku-4-5",
+ "name": "Claude Haiku 4.5",
+ "cost_per_1m_in": 1.1,
+ "cost_per_1m_out": 5.5,
+ "cost_per_1m_in_cached": 1.375,
+ "cost_per_1m_out_cached": 0.11,
+ "context_window": 204800,
+ "default_max_tokens": 20480,
+ "can_reason": true,
+ "reasoning_levels": [
+ "low",
+ "medium",
+ "high"
+ ],
+ "default_reasoning_effort": "medium",
+ "supports_attachments": true,
+ "options": {}
+ },
+ {
+ "id": "claude-opus-4-0",
+ "name": "Claude Opus 4",
+ "cost_per_1m_in": 16.5,
+ "cost_per_1m_out": 82.5,
"cost_per_1m_in_cached": 0,
"cost_per_1m_out_cached": 0,
- "context_window": 139000,
- "default_max_tokens": 16000,
+ "context_window": 200000,
+ "default_max_tokens": 32000,
"can_reason": false,
"supports_attachments": true,
"options": {}
},
{
- "id": "ernie-5.0-thinking-exp",
- "name": "ernie-5.0-thinking-exp",
- "cost_per_1m_in": 0.82192,
- "cost_per_1m_out": 3.28768,
+ "id": "claude-opus-4-1",
+ "name": "Claude Opus 4",
+ "cost_per_1m_in": 16.5,
+ "cost_per_1m_out": 82.5,
"cost_per_1m_in_cached": 0,
- "cost_per_1m_out_cached": 0.82192,
- "context_window": 119000,
- "default_max_tokens": 11900,
+ "cost_per_1m_out_cached": 0,
+ "context_window": 200000,
+ "default_max_tokens": 32000,
"can_reason": true,
"reasoning_levels": [
"low",