From a67a575b2766a6e95a4692cbaee9b17eace1c198 Mon Sep 17 00:00:00 2001 From: Yuan Tang Date: Fri, 14 Feb 2025 23:27:10 -0500 Subject: [PATCH] fix: Ensure a tool call can be converted before adding to buffer Signed-off-by: Yuan Tang --- .../providers/utils/inference/openai_compat.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/llama_stack/providers/utils/inference/openai_compat.py b/llama_stack/providers/utils/inference/openai_compat.py index da8e3ce2d..def7e8f37 100644 --- a/llama_stack/providers/utils/inference/openai_compat.py +++ b/llama_stack/providers/utils/inference/openai_compat.py @@ -427,10 +427,14 @@ def convert_tool_call( """ Convert a ChatCompletionMessageToolCall tool call to either a ToolCall or UnparseableToolCall. Returns an UnparseableToolCall - if the tool call is not valid JSON. + if the tool call is not valid ToolCall. """ 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: return UnparseableToolCall( call_id=tool_call.id or "", @@ -438,8 +442,4 @@ def convert_tool_call( arguments=tool_call.function.arguments or "", ) - return ToolCall( - call_id=tool_call.id, - tool_name=tool_call.function.name, - arguments=arguments, - ) + return valid_tool_call