in src/alibaba_cloud_ops_mcp_server/tools/api_tools.py [0:0]
def _create_function_schemas(service, api, api_meta):
schemas = {}
schemas[api] = {}
parameters = api_meta.get('parameters', [])
for parameter in parameters:
name = parameter.get('name')
# TODO 目前忽略了带'.'的参数
if '.' in name:
continue
schema = parameter.get('schema', '')
description = schema.get('description', '')
example = schema.get('example', '')
type_ = schema.get('type', '')
description = f'{description} 请注意,提供参数要严格按照参数的类型和参数示例的提示,如果提到参数为String,且为一个 JSON 数组字符串,应在数组内使用单引号包裹对应的参数以避免转义问题,并在最外侧用双引号包裹以确保其是字符串,否则可能会导致参数解析错误。参数类型: {type_},参数示例:{example}'
required = schema.get('required', False)
python_type = type_map.get(type_, str)
field_info = (
python_type,
field(
default=None,
metadata={'description': description, 'required': required}
)
)
schemas[api][name] = field_info
if 'RegionId' not in schemas[api]:
schemas[api]['RegionId'] = (
str,
field(
default=None,
metadata={'description': '地域ID', 'required': False}
)
)
return schemas