This commit is contained in:
dingdangmao 2026-10-06 10:15:47 +08:00 • committed by GitHub
commit e98a10caa3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 28 additions and 6 deletions

View file

@ -1144,9 +1144,7 @@ def _gemini_tool_call_invoke_helper(
if (
isinstance(arguments, str) and len(arguments) == 0
): # pass empty dict, if arguments is empty string - prevents call from failing
arguments_dict = {
"type": "object",
}
arguments_dict = {}
else:
arguments_dict = json.loads(arguments)
function_call: Final = VertexFunctionCall(

View file

@ -593,9 +593,33 @@ def test_vertex_ai_transform_empty_function_call_arguments():
}
result: VertexFunctionCall = _gemini_tool_call_invoke_helper(function_call)
print(result)
assert result["args"] == {
"type": "object",
}
assert result["args"] == {}
def test_gemini_missing_arguments_maps_to_empty_object():
"""When `arguments` key is absent, the helper should yield an empty object (see #43156)."""
from litellm.litellm_core_utils.prompt_templates.factory import (
VertexFunctionCall,
_gemini_tool_call_invoke_helper,
)
result: VertexFunctionCall = _gemini_tool_call_invoke_helper(
{"name": "no_args"}
)
assert result["args"] == {}
def test_gemini_nonempty_arguments_is_parsed():
"""Non-empty arguments string should still be JSON-decoded as before."""
from litellm.litellm_core_utils.prompt_templates.factory import (
VertexFunctionCall,
_gemini_tool_call_invoke_helper,
)
result: VertexFunctionCall = _gemini_tool_call_invoke_helper(
{"name": "get", "arguments": '{"x": 1}'}
)
assert result["args"] == {"x": 1}
@pytest.mark.asyncio