fix: Ensure a tool call can be converted before adding to buffer

Signed-off-by: Yuan Tang <terrytangyuan@gmail.com>
This commit is contained in:
Yuan Tang 2025-02-14 23:27:10 -05:00
parent ab2b46e528
commit a67a575b27
No known key found for this signature in database

View file

@ -427,10 +427,14 @@ def convert_tool_call(
""" """
Convert a ChatCompletionMessageToolCall tool call to either a Convert a ChatCompletionMessageToolCall tool call to either a
ToolCall or UnparseableToolCall. Returns an UnparseableToolCall ToolCall or UnparseableToolCall. Returns an UnparseableToolCall
if the tool call is not valid JSON. if the tool call is not valid ToolCall.
""" """
try: try:
arguments = json.loads(tool_call.function.arguments) valid_tool_call = ToolCall(
call_id=tool_call.id,
tool_name=tool_call.function.name,
arguments=json.loads(tool_call.function.arguments),
)
except Exception as e: except Exception as e:
return UnparseableToolCall( return UnparseableToolCall(
call_id=tool_call.id or "", call_id=tool_call.id or "",
@ -438,8 +442,4 @@ def convert_tool_call(
arguments=tool_call.function.arguments or "", arguments=tool_call.function.arguments or "",
) )
return ToolCall( return valid_tool_call
call_id=tool_call.id,
tool_name=tool_call.function.name,
arguments=arguments,
)