mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-11 03:38:38 +00:00
fix: map empty Gemini tool-call arguments to {} instead of {"type":"object"}
Rebase onto latest upstream main. Fold the missing-key / non-empty regression cases into the mapped test file (per AGENTS.md) and drop the standalone test_gemini_empty_arguments.py. See #43156 Signed-off-by: ding <2756823972@qq.com>
This commit is contained in:
parent
d18fcb09d6
commit
bd92a0fded
2 changed files with 28 additions and 6 deletions
|
|
@ -1141,9 +1141,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(
|
||||
|
|
|
|||
|
|
@ -607,9 +607,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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue