Explorar el Código

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

cyflhn hace 4 meses
padre
commit
87c831e5dd
Se han modificado 1 ficheros con 6 adiciones y 1 borrados
  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: