From 92ce440b0bc8fd72b4c35f8500a8e10b488001b1 Mon Sep 17 00:00:00 2001 From: sigoden Date: Fri, 9 Aug 2024 16:47:17 +0800 Subject: fix: claude fails to run tools with zero arguments (#780) --- src/client/claude.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/client/claude.rs b/src/client/claude.rs index d8046a9..8811476 100644 --- a/src/client/claude.rs +++ b/src/client/claude.rs @@ -114,9 +114,13 @@ pub async fn claude_chat_completions_streaming( } "content_block_stop" => { if !function_name.is_empty() { - let arguments: Value = function_arguments.parse().with_context(|| { - format!("Tool call '{function_name}' is invalid: arguments must be in valid JSON format") - })?; + let arguments: Value = if function_arguments.is_empty() { + json!({}) + } else { + function_arguments.parse().with_context(|| { + format!("Tool call '{function_name}' is invalid: arguments must be in valid JSON format") + })? + }; handler.tool_call(ToolCall::new( function_name.clone(), arguments, -- cgit v1.2.3