mirror of
https://github.com/open-webui/open-webui
synced 2025-06-14 10:20:52 +00:00
feat: support OpenAPI parameter description and enum values in tool spec
This commit is contained in:
parent
a6ccc48d91
commit
3dcbf1acf5
@ -384,9 +384,18 @@ def convert_openapi_to_tool_payload(openapi_spec):
|
|||||||
for param in operation.get("parameters", []):
|
for param in operation.get("parameters", []):
|
||||||
param_name = param["name"]
|
param_name = param["name"]
|
||||||
param_schema = param.get("schema", {})
|
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] = {
|
tool["parameters"]["properties"][param_name] = {
|
||||||
"type": param_schema.get("type"),
|
"type": param_schema.get("type"),
|
||||||
"description": param_schema.get("description", ""),
|
"description": description,
|
||||||
}
|
}
|
||||||
if param.get("required"):
|
if param.get("required"):
|
||||||
tool["parameters"]["required"].append(param_name)
|
tool["parameters"]["required"].append(param_name)
|
||||||
|
@ -1257,9 +1257,13 @@ export const convertOpenApiToToolPayload = (openApiSpec) => {
|
|||||||
// Extract path and query parameters
|
// Extract path and query parameters
|
||||||
if (operation.parameters) {
|
if (operation.parameters) {
|
||||||
operation.parameters.forEach((param) => {
|
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] = {
|
tool.parameters.properties[param.name] = {
|
||||||
type: param.schema.type,
|
type: param.schema.type,
|
||||||
description: param.schema.description || ''
|
description: description
|
||||||
};
|
};
|
||||||
|
|
||||||
if (param.required) {
|
if (param.required) {
|
||||||
|
Loading…
Reference in New Issue
Block a user