diff --git a/api/core/tools/tool/api_tool.py b/api/core/tools/tool/api_tool.py index 30e3f96afd..f6914d3473 100644 --- a/api/core/tools/tool/api_tool.py +++ b/api/core/tools/tool/api_tool.py @@ -127,6 +127,8 @@ class ApiTool(Tool): value = parameters[parameter['name']] elif parameter['required']: raise ToolProviderCredentialValidationError(f"Missing required parameter {parameter['name']}") + else: + value = (parameter.get('schema', {}) or {}).get('default', '') path_params[parameter['name']] = value elif parameter['in'] == 'query': @@ -135,6 +137,8 @@ class ApiTool(Tool): value = parameters[parameter['name']] elif parameter['required']: raise ToolProviderCredentialValidationError(f"Missing required parameter {parameter['name']}") + else: + value = (parameter.get('schema', {}) or {}).get('default', '') params[parameter['name']] = value elif parameter['in'] == 'cookie': @@ -143,6 +147,8 @@ class ApiTool(Tool): value = parameters[parameter['name']] elif parameter['required']: raise ToolProviderCredentialValidationError(f"Missing required parameter {parameter['name']}") + else: + value = (parameter.get('schema', {}) or {}).get('default', '') cookies[parameter['name']] = value elif parameter['in'] == 'header': @@ -151,6 +157,8 @@ class ApiTool(Tool): value = parameters[parameter['name']] elif parameter['required']: raise ToolProviderCredentialValidationError(f"Missing required parameter {parameter['name']}") + else: + value = (parameter.get('schema', {}) or {}).get('default', '') headers[parameter['name']] = value # check if there is a request body and handle it diff --git a/api/core/tools/utils/parser.py b/api/core/tools/utils/parser.py index af0518d69e..91c18be3f5 100644 --- a/api/core/tools/utils/parser.py +++ b/api/core/tools/utils/parser.py @@ -60,7 +60,7 @@ class ApiBasedToolSchemaParser: required=parameter.get('required', False), form=ToolParameter.ToolParameterForm.LLM, llm_description=parameter.get('description'), - default=parameter['default'] if 'default' in parameter else None, + default=parameter['schema']['default'] if 'schema' in parameter and 'default' in parameter['schema'] else None, )) # create tool bundle # check if there is a request body