fix(siliconflow): update baseUrl .cn -> .com + curate verified model list
Switch all siliconflow endpoints from api.siliconflow.cn to .com (chat, validate, test, models) — the .cn host rejected valid .com-issued keys. Replace the model list with 13 strong models verified live against the API. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -211,13 +211,8 @@ export const PROVIDER_MODELS = {
|
||||
// { id: "minimax-m2.5-free", name: "MiniMax M2.5", targetFormat: "claude" },
|
||||
// { id: "trinity-large-preview-free", name: "Trinity Large Preview" },
|
||||
],
|
||||
mmf: [ // MiMo Free
|
||||
mmf: [ // MiMo Free — free channel only serves mimo-auto
|
||||
{ id: "mimo-auto", name: "MiMo Auto" },
|
||||
{ id: "mimo-v2.5-pro", name: "MiMo V2.5 Pro" },
|
||||
{ id: "mimo-v2.5", name: "MiMo V2.5" },
|
||||
{ id: "mimo-v2-pro", name: "MiMo V2 Pro" },
|
||||
{ id: "mimo-v2-omni", name: "MiMo V2 Omni" },
|
||||
{ id: "mimo-v2-flash", name: "MiMo V2 Flash" },
|
||||
],
|
||||
|
||||
cl: [ // Cline
|
||||
@@ -539,16 +534,27 @@ export const PROVIDER_MODELS = {
|
||||
{ id: "voyage-multilingual-2", name: "Voyage Multilingual 2", type: "embedding" },
|
||||
],
|
||||
siliconflow: [
|
||||
// DeepSeek models
|
||||
{ id: "deepseek-ai/DeepSeek-V4-Pro", name: "DeepSeek V4 Pro" },
|
||||
{ id: "deepseek-ai/DeepSeek-V4-Flash", name: "DeepSeek V4 Flash" },
|
||||
{ id: "deepseek-ai/DeepSeek-V3.2", name: "DeepSeek V3.2" },
|
||||
{ id: "deepseek-ai/DeepSeek-V3.2-Exp", name: "DeepSeek V3.2 Exp" },
|
||||
{ id: "deepseek-ai/DeepSeek-V3.1", name: "DeepSeek V3.1" },
|
||||
{ id: "deepseek-ai/DeepSeek-V3.1-Terminus", name: "DeepSeek V3.1 Terminus" },
|
||||
{ id: "deepseek-ai/DeepSeek-R1", name: "DeepSeek R1" },
|
||||
{ id: "Qwen/Qwen3-235B-A22B-Instruct-2507", name: "Qwen3 235B" },
|
||||
{ id: "Qwen/Qwen3-Coder-480B-A35B-Instruct", name: "Qwen3 Coder 480B" },
|
||||
{ id: "Qwen/Qwen3-32B", name: "Qwen3 32B" },
|
||||
// Qwen models
|
||||
{ id: "Qwen/Qwen3.5-397B-A17B", name: "Qwen 3.5 397B A17B" },
|
||||
{ id: "Qwen/Qwen3.5-122B-A10B", name: "Qwen 3.5 122B A10B" },
|
||||
// GLM models
|
||||
{ id: "zai-org/GLM-5.1", name: "GLM 5.1" },
|
||||
{ id: "zai-org/GLM-5", name: "GLM 5" },
|
||||
// Kimi models
|
||||
{ id: "moonshotai/Kimi-K2.6", name: "Kimi K2.6" },
|
||||
{ id: "moonshotai/Kimi-K2.5", name: "Kimi K2.5" },
|
||||
{ id: "zai-org/GLM-4.7", name: "GLM 4.7" },
|
||||
// Other models
|
||||
{ id: "openai/gpt-oss-120b", name: "GPT OSS 120B" },
|
||||
{ id: "baidu/ERNIE-4.5-300B-A47B", name: "ERNIE 4.5 300B" },
|
||||
{ id: "MiniMaxAI/MiniMax-M2.5", name: "MiniMax M2.5" },
|
||||
{ id: "inclusionAI/Ling-flash-2.0", name: "Ling Flash 2.0" },
|
||||
],
|
||||
"xiaomi-mimo": [
|
||||
{ id: "mimo-v2.5-pro", name: "MiMo V2.5 Pro" },
|
||||
|
||||
@@ -323,7 +323,7 @@ export const PROVIDERS = {
|
||||
format: "openai"
|
||||
},
|
||||
siliconflow: {
|
||||
baseUrl: "https://api.siliconflow.cn/v1/chat/completions",
|
||||
baseUrl: "https://api.siliconflow.com/v1/chat/completions",
|
||||
format: "openai"
|
||||
},
|
||||
hyperbolic: {
|
||||
|
||||
@@ -232,7 +232,7 @@ const PROVIDER_MODELS_CONFIG = {
|
||||
cerebras: createOpenAIModelsConfig("https://api.cerebras.ai/v1/models"),
|
||||
cohere: createOpenAIModelsConfig("https://api.cohere.ai/v1/models"),
|
||||
nebius: createOpenAIModelsConfig("https://api.studio.nebius.ai/v1/models"),
|
||||
siliconflow: createOpenAIModelsConfig("https://api.siliconflow.cn/v1/models"),
|
||||
siliconflow: createOpenAIModelsConfig("https://api.siliconflow.com/v1/models"),
|
||||
hyperbolic: createOpenAIModelsConfig("https://api.hyperbolic.xyz/v1/models"),
|
||||
ollama: createOpenAIModelsConfig("https://ollama.com/api/tags"),
|
||||
// ollama-local: url resolved dynamically below via providerSpecificData.baseUrl
|
||||
|
||||
@@ -527,7 +527,7 @@ async function testApiKeyConnection(connection, effectiveProxy = null) {
|
||||
return { valid: res.ok, error: res.ok ? null : "Invalid API key" };
|
||||
}
|
||||
case "siliconflow": {
|
||||
const res = await fetchWithConnectionProxy("https://api.siliconflow.cn/v1/models", { headers: { Authorization: `Bearer ${connection.apiKey}` } }, effectiveProxy);
|
||||
const res = await fetchWithConnectionProxy("https://api.siliconflow.com/v1/models", { headers: { Authorization: `Bearer ${connection.apiKey}` } }, effectiveProxy);
|
||||
return { valid: res.ok, error: res.ok ? null : "Invalid API key" };
|
||||
}
|
||||
case "hyperbolic": {
|
||||
|
||||
@@ -373,7 +373,7 @@ export async function POST(request) {
|
||||
cerebras: "https://api.cerebras.ai/v1/models",
|
||||
cohere: "https://api.cohere.ai/v1/models",
|
||||
nebius: "https://api.studio.nebius.ai/v1/models",
|
||||
siliconflow: "https://api.siliconflow.cn/v1/models",
|
||||
siliconflow: "https://api.siliconflow.com/v1/models",
|
||||
hyperbolic: "https://api.hyperbolic.xyz/v1/models",
|
||||
ollama: "https://ollama.com/api/tags",
|
||||
"ollama-local": `${resolveOllamaLocalHost({ providerSpecificData })}/api/tags`,
|
||||
|
||||
Reference in New Issue
Block a user