genai: Fix handling of optional arrays in tool input #661
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.
PR Description
This code fixes handling of optional arrays in pydantic models provided as tool inputs like this:
Optional parameters are handled by setting
nullable
field in gemini API. Current code works for every type, except for arrays, becauseitems
field, that contains information about type of values inside the array, is present inanyOf
field as one of the possibilities, where it's ignored.Also added log where user is warned that only only type can be used inside array. Before, last defined type was used.
This is an edge case where user could be trying to use an array with multiple types which is not supported by genai, but can be useful for finding bugs
Type
🐛 Bug Fix
✅ Test
Testing(optional)