From a064a9115ff1a560fe0937839e8d92d90678fb6f Mon Sep 17 00:00:00 2001 From: Soulter <37870767+Soulter@users.noreply.github.com> Date: Mon, 22 Dec 2025 00:09:30 +0800 Subject: [PATCH] fix: omit thinking params for gemini image generation models (#4151) - Expanded model name checks to include specific Gemini 2.5 and 3 variants, ensuring correct configuration for thinking parameters based on the model used. --- .../core/provider/sources/gemini_source.py | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/astrbot/core/provider/sources/gemini_source.py b/astrbot/core/provider/sources/gemini_source.py index f98fd0e8f..7f3700643 100644 --- a/astrbot/core/provider/sources/gemini_source.py +++ b/astrbot/core/provider/sources/gemini_source.py @@ -138,7 +138,7 @@ class ProviderGoogleGenAI(Provider): modalities = ["TEXT"] tool_list: list[types.Tool] | None = [] - model_name = payloads.get("model", self.get_model()) + model_name = cast(str, payloads.get("model", self.get_model())) native_coderunner = self.provider_config.get("gm_native_coderunner", False) native_search = self.provider_config.get("gm_native_search", False) url_context = self.provider_config.get("gm_url_context", False) @@ -199,7 +199,16 @@ class ProviderGoogleGenAI(Provider): # oper thinking config thinking_config = None - if model_name.startswith("gemini-2.5"): + if model_name in [ + "gemini-2.5-pro", + "gemini-2.5-pro-preview", + "gemini-2.5-flash", + "gemini-2.5-flash-preview", + "gemini-2.5-flash-lite", + "gemini-2.5-flash-lite-preview", + "gemini-robotics-er-1.5-preview", + "gemini-live-2.5-flash-preview-native-audio-09-2025", + ]: # The thinkingBudget parameter, introduced with the Gemini 2.5 series thinking_budget = self.provider_config.get("gm_thinking_config", {}).get( "budget", 0 @@ -208,7 +217,14 @@ class ProviderGoogleGenAI(Provider): thinking_config = types.ThinkingConfig( thinking_budget=thinking_budget, ) - elif model_name.startswith("gemini-3"): + elif model_name in [ + "gemini-3-pro", + "gemini-3-pro-preview", + "gemini-3-flash", + "gemini-3-flash-preview", + "gemini-3-flash-lite", + "gemini-3-flash-lite-preview", + ]: # The thinkingLevel parameter, recommended for Gemini 3 models and onwards # Gemini 2.5 series models don't support thinkingLevel; use thinkingBudget instead. thinking_level = self.provider_config.get("gm_thinking_config", {}).get(