Browse Source

enh: more robust tool calling

Timothy J. Baek 6 months ago
parent
commit
37853d6a26
1 changed files with 9 additions and 3 deletions
  1. 9 3
      backend/open_webui/main.py

+ 9 - 3
backend/open_webui/main.py

@@ -439,9 +439,15 @@ async def chat_completion_tools_handler(
             tool_function_params = result.get("parameters", {})
 
             try:
-                tool_output = await tools[tool_function_name]["callable"](
-                    **tool_function_params
-                )
+                tool_function = tools[tool_function_name]["callable"]
+                sig = inspect.signature(tool_function)
+                tool_function_params = {
+                    k: v
+                    for k, v in tool_function_params.items()
+                    if k in sig.parameters
+                }
+                tool_output = await tool_function(**tool_function_params)
+                
             except Exception as e:
                 tool_output = str(e)