fix(ai): use Gemini streaming endpoint in connection test

This commit is contained in:
t8y2 committed 2026-07-11 09:30:23 +08:00
1 parent eecc2473d9
commit bdc30bae28
1 file changed
+12 -6
+12 -6
View File
@@ -1116,7 +1116,9 @@ pub async fn test_connection_core(config: &AiConfig) -> Result<AiTestConnectionR
res.bytes_stream() res.bytes_stream()
} }
AiProvider::Gemini => { AiProvider::Gemini => {
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 let res = client
.post(&ep) .post(&ep)
.header(CONTENT_TYPE, "application/json") .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, 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, 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, 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, resolve_gemini_stream_endpoint, resolve_model_list_endpoint, responses_function_tool,
responses_text, responses_token_usage, set_chat_completion_token_limit, stream_data_payload, responses_max_output_tokens, responses_stream_text, responses_text, responses_token_usage,
uses_anthropic_messages_api, validate_config, AiApiStyle, AiAuthMethod, AiConfig, AiMessage, AiModelInfo, set_chat_completion_token_limit, stream_data_payload, uses_anthropic_messages_api, validate_config, AiApiStyle,
AiProvider, AiReasoningLevel, StreamToolEvent, StreamingToolCallAccumulator, ToolCallRef, AUTHORIZATION, AiAuthMethod, AiConfig, AiMessage, AiModelInfo, AiProvider, AiReasoningLevel, StreamToolEvent,
CLAUDE_DEFAULT_SYSTEM, TEST_PROMPT, StreamingToolCallAccumulator, ToolCallRef, AUTHORIZATION, CLAUDE_DEFAULT_SYSTEM, TEST_PROMPT,
}; };
/// Reproduce the "Unknown tool:" bug: some OpenAI-compatible providers /// Reproduce the "Unknown tool:" bug: some OpenAI-compatible providers
@@ -2644,6 +2646,10 @@ mod tests {
resolve_endpoint(&gemini), resolve_endpoint(&gemini),
"https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro:generateContent" "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 { let ollama = AiConfig {
provider: AiProvider::Ollama, provider: AiProvider::Ollama,