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

This commit is contained in:
t8y2 2026-07-11 09:30:23 +08:00
parent eecc2473d9
commit bdc30bae28
1 changed files with 12 additions and 6 deletions

View File

@ -1116,7 +1116,9 @@ pub async fn test_connection_core(config: &AiConfig) -> Result<AiTestConnectionR
res.bytes_stream()
}
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
.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,