File size: 815 Bytes
82bf89e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
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 |