Unverified Commit 25957d91 authored by Yeuoly's avatar Yeuoly Committed by GitHub

Add default values for optional parameters in API tool and parser (#2491)

parent 20b932da
......@@ -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
......
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment