From 87c831e5dd18e492b7bbf1edd1c187f8f9b7e947 Mon Sep 17 00:00:00 2001 From: cyflhn Date: Mon, 25 Nov 2024 11:02:58 +0800 Subject: [PATCH] make tool parameters parsing compatible with the response of glm4 model in xinference provider when function tool call integerated (#11049) --- api/core/tools/tool_engine.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/api/core/tools/tool_engine.py b/api/core/tools/tool_engine.py index dbd97c8151..f92b43608e 100644 --- a/api/core/tools/tool_engine.py +++ b/api/core/tools/tool_engine.py @@ -61,7 +61,12 @@ class ToolEngine: if parameters and len(parameters) == 1: tool_parameters = {parameters[0].name: tool_parameters} else: - raise ValueError(f"tool_parameters should be a dict, but got a string: {tool_parameters}") + try: + tool_parameters = json.loads(tool_parameters) + except Exception as e: + pass + if not isinstance(tool_parameters, dict): + raise ValueError(f"tool_parameters should be a dict, but got a string: {tool_parameters}") # invoke the tool try: