fix(gemini): filter unsupported schema formats for Gemini API #11539
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Title
fix(gemini): filter unsupported schema formats for Gemini API
Relevant issues
Fixes #11427
Pre-Submission checklist
Please complete all items before asking a LiteLLM maintainer to review your PR
tests/litellm/
directory, Adding at least 1 test is a hard requirement - see detailsmake test-unit
Type
🐛 Bug Fix
Changes
Problem
Gemini API calls were failing when tool schemas contained unsupported format values like
format: "email"
. The error message indicates that Gemini only supportsenum
anddate-time
formats for STRING types, while Vertex AI supports additional formats likeemail
,uri
, etc.Both
gemini/
andvertex_ai/
providers were using the same schema transformation logic, which didn't account for these API differences.Solution
This PR implements Gemini-specific format filtering in the
GoogleAIStudioGeminiConfig
class:_map_function
method to apply Gemini-specific schema filtering after the standard transformationemail
,uri
, etc. while preserving supported ones likedate-time
andenum
anyOf
constructsModified Files
litellm/llms/gemini/chat/transformation.py
:_filter_gemini_unsupported_formats()
method for recursive schema filtering_map_function()
to apply Gemini-specific filteringgemini/
provider;vertex_ai/
behavior is unchangedAdded Files
tests/test_litellm/llms/gemini/test_gemini_format_filtering.py
:Example Usage
The fix ensures backward compatibility and follows the principle of making the libraries "just work" without requiring users to modify their schemas for different providers.