ADMP-LS / client /utils /tool_schema_parser.py
jackkuo's picture
reinit repo
82bf89e
def extract_tool_parameters(tool):
parameters = []
if not hasattr(tool, 'args_schema'):
return parameters
schema = tool.args_schema
if isinstance(schema, dict):
schema_dict = schema
else:
schema_dict = schema.schema()
properties = schema_dict.get('properties', {})
required = schema_dict.get('required', [])
for name, info in properties.items():
param_type = info.get('type', 'string')
title = info.get('title', name)
default = info.get('default', None)
is_required = name in required
desc = f"{title} ({param_type})"
desc += " - required" if is_required else " - optional"
if default is not None:
desc += f" [default: {default}]"
parameters.append(desc)
return parameters