From 3ba22d83366a6d512ec02e4485df3a3ab548ac08 Mon Sep 17 00:00:00 2001 From: Ming Date: Mon, 16 Jun 2025 21:02:24 +0800 Subject: [PATCH 1/2] Fix GOOGLE_ALLOWED_MODELS shorthand restriction validation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fixed parameter order in is_allowed() calls to check original model name first - Fixed validate_parameters() to use original model name instead of resolved name - Fixed thinking capabilities check to use original model name - Enables GOOGLE_ALLOWED_MODELS=pro,flash to work correctly with shorthand names 🤖 Generated with Claude Code Co-Authored-By: Claude --- providers/gemini.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/providers/gemini.py b/providers/gemini.py index 43b5d56..0d6b2da 100644 --- a/providers/gemini.py +++ b/providers/gemini.py @@ -67,8 +67,8 @@ class GeminiModelProvider(ModelProvider): from utils.model_restrictions import get_restriction_service restriction_service = get_restriction_service() - if not restriction_service.is_allowed(ProviderType.GOOGLE, resolved_name, model_name): - raise ValueError(f"Gemini model '{model_name}' is not allowed by restriction policy.") + if not restriction_service.is_allowed(ProviderType.GOOGLE, model_name, resolved_name): + raise ValueError(f"Gemini model '{resolved_name}' is not allowed by restriction policy.") config = self.SUPPORTED_MODELS[resolved_name] @@ -100,7 +100,7 @@ class GeminiModelProvider(ModelProvider): """Generate content using Gemini model.""" # Validate parameters resolved_name = self._resolve_model_name(model_name) - self.validate_parameters(resolved_name, temperature) + self.validate_parameters(model_name, temperature) # Combine system prompt with user prompt if provided if system_prompt: @@ -119,7 +119,7 @@ class GeminiModelProvider(ModelProvider): generation_config.max_output_tokens = max_output_tokens # Add thinking configuration for models that support it - capabilities = self.get_capabilities(resolved_name) + capabilities = self.get_capabilities(model_name) if capabilities.supports_extended_thinking and thinking_mode in self.THINKING_BUDGETS: # Get model's max thinking tokens and calculate actual budget model_config = self.SUPPORTED_MODELS.get(resolved_name) From 4a95197846258cd20f5c6ccdde7dc637ec81201d Mon Sep 17 00:00:00 2001 From: Ming Date: Mon, 16 Jun 2025 21:16:01 +0800 Subject: [PATCH 2/2] Fix remaining validate_model_name parameter order inconsistency MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Address code review feedback from Gemini Code Assist bot: - Fix parameter order in validate_model_name method (line 256) - Ensure consistent use of original model name for restriction validation - All is_allowed() calls now properly use (provider, original_name, resolved_name) This completes the fix for GOOGLE_ALLOWED_MODELS shorthand restriction validation. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- providers/gemini.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/providers/gemini.py b/providers/gemini.py index 0d6b2da..29ee384 100644 --- a/providers/gemini.py +++ b/providers/gemini.py @@ -222,7 +222,7 @@ class GeminiModelProvider(ModelProvider): from utils.model_restrictions import get_restriction_service restriction_service = get_restriction_service() - if not restriction_service.is_allowed(ProviderType.GOOGLE, resolved_name, model_name): + if not restriction_service.is_allowed(ProviderType.GOOGLE, model_name, resolved_name): logger.debug(f"Gemini model '{model_name}' -> '{resolved_name}' blocked by restrictions") return False