Pārlūkot izejas kodu

make tool parameters parsing compatible with the response of glm4 model in xinference provider when function tool call integerated (#11049)

cyflhn 4 mēneši atpakaļ
vecāks
revīzija
87c831e5dd
1 mainītis faili ar 6 papildinājumiem un 1 dzēšanām
  1. 6 1
      api/core/tools/tool_engine.py

+ 6 - 1
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: