From db349e0be0f4b761ebe306b6b7fb92941a8081ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Ccoohu=E2=80=9D?= <1257817341@qq.com> Date: Sun, 22 Feb 2026 22:19:09 +0800 Subject: [PATCH] fix: ShengSuanYun default BaseUrl config and model ID normalize. --- pkg/config/defaults.go | 8 ++++---- pkg/providers/openai_compat/provider.go | 6 +++++- pkg/providers/openai_compat/provider_test.go | 17 +++++++++++++++-- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/pkg/config/defaults.go b/pkg/config/defaults.go index 7654326e7..27bc809f0 100644 --- a/pkg/config/defaults.go +++ b/pkg/config/defaults.go @@ -224,11 +224,11 @@ func DefaultConfig() *Config { APIKey: "", }, - // ShengsuanYun (神算云) + // ShengSuanYun (胜算云) { - ModelName: "deepseek-v3", - Model: "shengsuanyun/deepseek-v3", - APIBase: "https://api.shengsuanyun.com/v1", + ModelName: "deepseek-v3.2-exp", + Model: "shengsuanyun/deepseek/deepseek-v3.2-exp", + APIBase: "https://router.shengsuanyun.com/api/v1", APIKey: "", }, diff --git a/pkg/providers/openai_compat/provider.go b/pkg/providers/openai_compat/provider.go index b8528953a..92f6a9785 100644 --- a/pkg/providers/openai_compat/provider.go +++ b/pkg/providers/openai_compat/provider.go @@ -234,7 +234,11 @@ func normalizeModel(model, apiBase string) string { return model } - if strings.Contains(strings.ToLower(apiBase), "openrouter.ai") { + lowerAPIBase := strings.ToLower(apiBase) + if strings.Contains(lowerAPIBase, "openrouter.ai") { + return model + } + if strings.Contains(lowerAPIBase, "shengsuanyun.com") { return model } diff --git a/pkg/providers/openai_compat/provider_test.go b/pkg/providers/openai_compat/provider_test.go index 42f9d42ab..d63af07f6 100644 --- a/pkg/providers/openai_compat/provider_test.go +++ b/pkg/providers/openai_compat/provider_test.go @@ -274,10 +274,23 @@ func TestProviderChat_AcceptsNumericOptionTypes(t *testing.T) { } func TestNormalizeModel_UsesAPIBase(t *testing.T) { - if got := normalizeModel("deepseek/deepseek-chat", "https://api.deepseek.com/v1"); got != "deepseek-chat" { + if got := normalizeModel( + "deepseek/deepseek-chat", + "https://api.deepseek.com/v1", + ); got != "deepseek-chat" { t.Fatalf("normalizeModel(deepseek) = %q, want %q", got, "deepseek-chat") } - if got := normalizeModel("openrouter/auto", "https://openrouter.ai/api/v1"); got != "openrouter/auto" { + if got := normalizeModel( + "openrouter/auto", + "https://openrouter.ai/api/v1", + ); got != "openrouter/auto" { t.Fatalf("normalizeModel(openrouter) = %q, want %q", got, "openrouter/auto") } + // ShengSuanYun supports full model paths like deepseek/deepseek-v3.2 + if got := normalizeModel( + "deepseek/deepseek-v3.2-exp", + "https://router.shengsuanyun.com/api/v1", + ); got != "deepseek/deepseek-v3.2-exp" { + t.Fatalf("normalizeModel(shengsuanyun) = %q, want %q", got, "deepseek/deepseek-v3.2-exp") + } }