From fa01aec80d101fa3a28639b1b6324e6fdfc1d777 Mon Sep 17 00:00:00 2001 From: li Date: Tue, 7 Jul 2026 15:00:00 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=89=8D=E7=BC=80=E5=85=A8=E9=83=A8?= =?UTF-8?q?=E5=8A=A0=E8=BF=9E=E5=AD=97=E7=AC=A6=EF=BC=8C=E4=B8=8E=20thinki?= =?UTF-8?q?ng=5Fprotocol.go=20=E9=A3=8E=E6=A0=BC=E5=AF=B9=E9=BD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit deepseek → deepseek-、moonshot → moonshot-、qwen → qwen-/qwen2-/qwen3-/qwen4-、 minimax → minimax-、llama → llama-/llama2-/llama3-、mistral → mistral-、 mixtral → mixtral-。避免无连字符前缀误伤假想的连写模型名。 --- .../internal/service/openai_model_mapping.go | 21 ++++++++++++------- .../openai_oauth_model_support_test.go | 1 + 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/backend/internal/service/openai_model_mapping.go b/backend/internal/service/openai_model_mapping.go index 32c4ec55f6..cb7a8ca84b 100644 --- a/backend/internal/service/openai_model_mapping.go +++ b/backend/internal/service/openai_model_mapping.go @@ -29,23 +29,28 @@ func resolveOpenAIForwardModel(account *Account, requestedModel, defaultMappedMo // (调度过滤看到的是改写前的原始模型名)。前缀分类的先例见 // ResolveThinkingProtocol(thinking_protocol.go)。 var openAIOAuthForeignModelPrefixes = []string{ - "deepseek", + "deepseek-", "glm-", "kimi-", - "moonshot", - "qwen", + "moonshot-", + "qwen-", + "qwen2-", + "qwen3-", + "qwen4-", "qwq-", - "minimax", + "minimax-", "gemini-", "gemma-", "grok-", "doubao-", "hunyuan-", - "llama", + "llama-", + "llama2-", + "llama3-", "meta-llama", - "mistral", - "mixtral", - "baichuan", + "mistral-", + "mixtral-", + "baichuan-", "ernie-", "step-", "seed-", diff --git a/backend/internal/service/openai_oauth_model_support_test.go b/backend/internal/service/openai_oauth_model_support_test.go index b08c42a7ea..1350dcd3bf 100644 --- a/backend/internal/service/openai_oauth_model_support_test.go +++ b/backend/internal/service/openai_oauth_model_support_test.go @@ -106,4 +106,5 @@ func TestIsOpenAIOAuthServableModel(t *testing.T) { require.True(t, isOpenAIOAuthServableModel("DeepThink-x")) // 非黑名单前缀,保持允许 require.False(t, isOpenAIOAuthServableModel("DeepSeek-V4")) // 大小写不敏感 require.False(t, isOpenAIOAuthServableModel("qwen3-235b-thinking")) + require.True(t, isOpenAIOAuthServableModel("deepseekcoder")) // 无连字符 → 非黑名单前缀,保持允许 }