in aidial_adapter_vertexai/chat/tools.py [0:0]
def _convert_genai_function_parameters(function_schema: dict) -> GenAISchema:
def _convert_schema(schema: dict | str | list):
if not isinstance(schema, dict):
return schema
genai_schema = {}
for field, value in schema.items():
if field == "type":
# GenAI function parameters should have types in uppercase
genai_schema[field] = value.upper()
elif isinstance(value, str):
genai_schema[field] = value
elif isinstance(value, list):
genai_schema[field] = [_convert_schema(item) for item in value]
elif isinstance(value, dict):
genai_schema[field] = {
key: _convert_schema(value) for key, value in value.items()
}
else:
raise ValueError(
f"Failed to convert function declaration to Vertex format: {schema}"
)
return genai_schema
return cast(GenAISchema, _convert_schema(function_schema))