diff --git a/src/providers/gemini.rs b/src/providers/gemini.rs index 088ade05..791377f8 100644 --- a/src/providers/gemini.rs +++ b/src/providers/gemini.rs @@ -439,9 +439,11 @@ impl GeminiProvider { } /// Determine the appropriate base URL for the model. - /// "preview" models often require the v1beta endpoint. + /// "preview" models often require the v1beta endpoint, but newer promoted ones may be on v1. fn get_base_url(&self, model: &str) -> String { - if model.contains("preview") || model.contains("thinking") { + // Only use v1beta for older preview models or specific "thinking" experimental models. + // Gemini 3.0+ models are typically released on v1 even in preview. + if (model.contains("preview") && !model.contains("gemini-3")) || model.contains("thinking") { self.config.base_url.replace("/v1", "/v1beta") } else { self.config.base_url.clone() @@ -512,6 +514,7 @@ impl super::Provider for GeminiProvider { let base_url = self.get_base_url(&model); let url = format!("{}/models/{}:generateContent", base_url, model); + tracing::debug!("Calling Gemini API: {}", url); let response = self .client @@ -657,6 +660,7 @@ impl super::Provider for GeminiProvider { "{}/models/{}:streamGenerateContent?alt=sse", base_url, model, ); + tracing::debug!("Calling Gemini Stream API: {}", url); // (no fallback_request needed here)