diff --git a/backend/open_webui/main.py b/backend/open_webui/main.py index 17340427c..35f707328 100644 --- a/backend/open_webui/main.py +++ b/backend/open_webui/main.py @@ -439,10 +439,17 @@ async def chat_completion_tools_handler( tool_function_params = result.get("parameters", {}) try: + required_params = ( + tools[tool_function_name] + .get("spec", {}) + .get("parameters", {}) + .get("required", []) + ) 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 + k: v + for k, v in tool_function_params.items() + if k in required_params } tool_output = await tool_function(**tool_function_params)