소스 검색

fix: extract tool calls correctly while arguments is empty (#6503)

sino 1 년 전
부모
커밋
dfb6f4fec6
1개의 변경된 파일10개의 추가작업 그리고 2개의 파일을 삭제
  1. 10 2
      api/core/agent/fc_agent_runner.py

+ 10 - 2
api/core/agent/fc_agent_runner.py

@@ -342,10 +342,14 @@ class FunctionCallAgentRunner(BaseAgentRunner):
         """
         tool_calls = []
         for prompt_message in llm_result_chunk.delta.message.tool_calls:
+            args = {}
+            if prompt_message.function.arguments != '':
+                args = json.loads(prompt_message.function.arguments)
+
             tool_calls.append((
                 prompt_message.id,
                 prompt_message.function.name,
-                json.loads(prompt_message.function.arguments),
+                args,
             ))
 
         return tool_calls
@@ -359,10 +363,14 @@ class FunctionCallAgentRunner(BaseAgentRunner):
         """
         tool_calls = []
         for prompt_message in llm_result.message.tool_calls:
+            args = {}
+            if prompt_message.function.arguments != '':
+                args = json.loads(prompt_message.function.arguments)
+
             tool_calls.append((
                 prompt_message.id,
                 prompt_message.function.name,
-                json.loads(prompt_message.function.arguments),
+                args,
             ))
 
         return tool_calls