Pārlūkot izejas kodu

fix: update chat completion tools handler to use parameters from spec fixing defaults always used

Peter De-Ath 2 mēneši atpakaļ
vecāks
revīzija
d862295a05
1 mainītis faili ar 3 papildinājumiem un 9 dzēšanām
  1. 3 9
      backend/open_webui/utils/middleware.py

+ 3 - 9
backend/open_webui/utils/middleware.py

@@ -189,17 +189,11 @@ async def chat_completion_tools_handler(
                 tool_function_params = tool_call.get("parameters", {})
 
                 try:
-                    required_params = (
-                        tools[tool_function_name]
-                        .get("spec", {})
-                        .get("parameters", {})
-                        .get("required", [])
-                    )
+                    spec = tools[tool_function_name].get("spec", {})
+                    allowed_params = spec.get("parameters", {}).get("properties", {}).keys()
                     tool_function = tools[tool_function_name]["callable"]
                     tool_function_params = {
-                        k: v
-                        for k, v in tool_function_params.items()
-                        if k in required_params
+                        k: v for k, v in tool_function_params.items() if k in allowed_params
                     }
                     tool_output = await tool_function(**tool_function_params)