From bdc30bae28f55fd00461190f74231eea267eefcb Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Sat, 11 Jul 2026 09:30:23 +0800 Subject: [PATCH] fix(ai): use Gemini streaming endpoint in connection test --- crates/dbx-core/src/ai.rs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/crates/dbx-core/src/ai.rs b/crates/dbx-core/src/ai.rs index dcfaa8a0d..68f08a775 100644 --- a/crates/dbx-core/src/ai.rs +++ b/crates/dbx-core/src/ai.rs @@ -1116,7 +1116,9 @@ pub async fn test_connection_core(config: &AiConfig) -> Result { - let ep = resolve_endpoint(config); + // Gemini only returns SSE from streamGenerateContent; generateContent + // returns one JSON document even when alt=sse is supplied. + let ep = resolve_gemini_stream_endpoint(config); let res = client .post(&ep) .header(CONTENT_TYPE, "application/json") @@ -2479,11 +2481,11 @@ mod tests { apply_chat_completion_thinking_toggle, build_ai_http_client, build_responses_input_with_tools, claude_headers, claude_system_prompt, drain_next_stream_line, emit_responses_function_call_item, gemini_text, is_kimi_model, openai_response_text, openai_stream_reasoning, openai_stream_text, parse_model_list_response, resolve_endpoint, - resolve_model_list_endpoint, responses_function_tool, responses_max_output_tokens, responses_stream_text, - responses_text, responses_token_usage, set_chat_completion_token_limit, stream_data_payload, - uses_anthropic_messages_api, validate_config, AiApiStyle, AiAuthMethod, AiConfig, AiMessage, AiModelInfo, - AiProvider, AiReasoningLevel, StreamToolEvent, StreamingToolCallAccumulator, ToolCallRef, AUTHORIZATION, - CLAUDE_DEFAULT_SYSTEM, TEST_PROMPT, + resolve_gemini_stream_endpoint, resolve_model_list_endpoint, responses_function_tool, + responses_max_output_tokens, responses_stream_text, responses_text, responses_token_usage, + set_chat_completion_token_limit, stream_data_payload, uses_anthropic_messages_api, validate_config, AiApiStyle, + AiAuthMethod, AiConfig, AiMessage, AiModelInfo, AiProvider, AiReasoningLevel, StreamToolEvent, + StreamingToolCallAccumulator, ToolCallRef, AUTHORIZATION, CLAUDE_DEFAULT_SYSTEM, TEST_PROMPT, }; /// Reproduce the "Unknown tool:" bug: some OpenAI-compatible providers @@ -2644,6 +2646,10 @@ mod tests { resolve_endpoint(&gemini), "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro:generateContent" ); + assert_eq!( + resolve_gemini_stream_endpoint(&gemini), + "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro:streamGenerateContent" + ); let ollama = AiConfig { provider: AiProvider::Ollama,