From 01a0083948dea983a480504994b5974cab42fea6 Mon Sep 17 00:00:00 2001 From: xuhaihan Date: Thu, 20 Aug 2026 01:38:53 +0800 Subject: [PATCH] fix(deepseek): route responses account tests to OpenAI probe --- .../internal/service/account_test_service.go | 2 + .../account_test_service_openai_test.go | 44 ++++++++++++++++++- backend/internal/service/cn_providers_test.go | 4 +- 3 files changed, 46 insertions(+), 4 deletions(-) diff --git a/backend/internal/service/account_test_service.go b/backend/internal/service/account_test_service.go index b75c2a4c9b..4239d14852 100644 --- a/backend/internal/service/account_test_service.go +++ b/backend/internal/service/account_test_service.go @@ -289,6 +289,8 @@ func (s *AccountTestService) TestAccountConnection(c *gin.Context, accountID int switch account.GetAPIProtocol() { case APIProtocolAdaptive: return s.testCNProviderAdaptiveConnection(c, account, modelID, prompt) + case APIProtocolResponses: + return s.testOpenAIAccountConnection(c, account, modelID, prompt, normalizeAccountTestMode(mode)) case APIProtocolChatCompletions: return s.testCNProviderChatCompletionsConnection(c, account, modelID, prompt) } diff --git a/backend/internal/service/account_test_service_openai_test.go b/backend/internal/service/account_test_service_openai_test.go index 1ffb317533..dbd664059f 100644 --- a/backend/internal/service/account_test_service_openai_test.go +++ b/backend/internal/service/account_test_service_openai_test.go @@ -268,7 +268,7 @@ func TestAccountTestService_DeepSeekCustomBaseURLUsesV1ResponsesPath(t *testing. Concurrency: 1, Credentials: map[string]any{ "api_key": "sk-test", - "base_url": "https://token.cvte.com/v1", + "base_url": "https://relay.example.com/v1", "api_protocol": APIProtocolResponses, }, Extra: map[string]any{ @@ -279,7 +279,47 @@ func TestAccountTestService_DeepSeekCustomBaseURLUsesV1ResponsesPath(t *testing. err := svc.testOpenAIAccountConnection(ctx, account, "gpt-5.4", "", "") require.NoError(t, err) require.Len(t, upstream.requests, 1) - require.Equal(t, "https://token.cvte.com/v1/responses", upstream.requests[0].URL.String()) + require.Equal(t, "https://relay.example.com/v1/responses", upstream.requests[0].URL.String()) +} + +func TestAccountTestService_DeepSeekResponsesRoutesToOpenAIProbe(t *testing.T) { + gin.SetMode(gin.TestMode) + ctx, _ := newTestContext() + + resp := newJSONResponse(http.StatusOK, "") + resp.Body = io.NopCloser(strings.NewReader(`data: {"type":"response.completed"} + +`)) + upstream := &queuedHTTPUpstream{responses: []*http.Response{resp}} + svc := &AccountTestService{ + httpUpstream: upstream, + cfg: &config.Config{Security: config.SecurityConfig{URLAllowlist: config.URLAllowlistConfig{Enabled: false}}}, + } + account := &Account{ + ID: 93, + Platform: PlatformDeepseek, + Type: AccountTypeAPIKey, + Concurrency: 1, + Credentials: map[string]any{ + "api_key": "sk-test", + "base_url": "https://relay.example.com/v1", + "api_protocol": APIProtocolResponses, + }, + Extra: map[string]any{ + openai_compat.ExtraKeyResponsesSupported: true, + }, + } + repo := &openAIAccountTestRepo{ + mockAccountRepoForGemini: mockAccountRepoForGemini{ + accountsByID: map[int64]*Account{93: account}, + }, + } + svc.accountRepo = repo + + err := svc.TestAccountConnection(ctx, account.ID, "gpt-5.4", "", "") + require.NoError(t, err) + require.Len(t, upstream.requests, 1) + require.Equal(t, "https://relay.example.com/v1/responses", upstream.requests[0].URL.String()) } func TestAccountTestService_DeepSeekDefaultBaseURLUsesNativeResponsesPath(t *testing.T) { diff --git a/backend/internal/service/cn_providers_test.go b/backend/internal/service/cn_providers_test.go index cb12dbdee3..7ec7a4fddd 100644 --- a/backend/internal/service/cn_providers_test.go +++ b/backend/internal/service/cn_providers_test.go @@ -635,8 +635,8 @@ func TestBuildUpstreamModelsRequest_AnthropicProtocol(t *testing.T) { func TestBuildOpenAIResponsesURLForPlatform(t *testing.T) { t.Parallel() require.Equal(t, "https://api.deepseek.com/responses", buildOpenAIResponsesURLForPlatform(PlatformDeepseek, "https://api.deepseek.com")) - require.Equal(t, "https://token.cvte.com/responses", buildOpenAIResponsesURLForPlatform(PlatformDeepseek, "https://token.cvte.com")) - require.Equal(t, "https://token.cvte.com/v1/responses", buildOpenAIResponsesURLForPlatform(PlatformDeepseek, "https://token.cvte.com/v1")) + require.Equal(t, "https://relay.example.com/responses", buildOpenAIResponsesURLForPlatform(PlatformDeepseek, "https://relay.example.com")) + require.Equal(t, "https://relay.example.com/v1/responses", buildOpenAIResponsesURLForPlatform(PlatformDeepseek, "https://relay.example.com/v1")) require.Equal(t, "https://api.openai.com/v1/responses", buildOpenAIResponsesURLForPlatform(PlatformOpenAI, "https://api.openai.com")) require.Equal(t, "https://open.bigmodel.cn/api/paas/v4/responses", buildOpenAIResponsesURLForPlatform(PlatformZhipu, "https://open.bigmodel.cn/api/paas/v4")) }