diff --git a/backend/open_webui/utils/middleware.py b/backend/open_webui/utils/middleware.py index 289d887df..f62487d7a 100644 --- a/backend/open_webui/utils/middleware.py +++ b/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)