mirror of
https://github.com/open-webui/open-webui
synced 2025-04-28 02:01:41 +00:00
Merge pull request #12968 from alpha-pet/feat-openapi-parameter-description
feat: support OpenAPI parameter description and enum values in tool spec
This commit is contained in:
commit
477ac7de86
@ -387,9 +387,18 @@ def convert_openapi_to_tool_payload(openapi_spec):
|
||||
for param in operation.get("parameters", []):
|
||||
param_name = param["name"]
|
||||
param_schema = param.get("schema", {})
|
||||
description = param_schema.get("description", "")
|
||||
if not description:
|
||||
description = param.get("description") or ""
|
||||
if param_schema.get("enum") and isinstance(
|
||||
param_schema.get("enum"), list
|
||||
):
|
||||
description += (
|
||||
f". Possible values: {', '.join(param_schema.get('enum'))}"
|
||||
)
|
||||
tool["parameters"]["properties"][param_name] = {
|
||||
"type": param_schema.get("type"),
|
||||
"description": param_schema.get("description", ""),
|
||||
"description": description,
|
||||
}
|
||||
if param.get("required"):
|
||||
tool["parameters"]["required"].append(param_name)
|
||||
|
@ -1257,9 +1257,13 @@ export const convertOpenApiToToolPayload = (openApiSpec) => {
|
||||
// Extract path and query parameters
|
||||
if (operation.parameters) {
|
||||
operation.parameters.forEach((param) => {
|
||||
let description = param.schema.description || param.description || '';
|
||||
if (param.schema.enum && Array.isArray(param.schema.enum)) {
|
||||
description += `. Possible values: ${param.schema.enum.join(', ')}`;
|
||||
}
|
||||
tool.parameters.properties[param.name] = {
|
||||
type: param.schema.type,
|
||||
description: param.schema.description || ''
|
||||
description: description
|
||||
};
|
||||
|
||||
if (param.required) {
|
||||
|
Loading…
Reference in New Issue
Block a user