diff --git a/backend/utils/schemas.py b/backend/utils/schemas.py index 452f95bc7..cb029ade3 100644 --- a/backend/utils/schemas.py +++ b/backend/utils/schemas.py @@ -1,5 +1,7 @@ +from ast import literal_eval + from pydantic import BaseModel, Field, create_model -from typing import Any, Optional, Type +from typing import Any, Optional, Type, Literal def json_schema_to_model(tool_dict: dict[str, Any]) -> Type[BaseModel]: @@ -100,5 +102,7 @@ def json_schema_to_pydantic_type(json_schema: dict[str, Any]) -> Any: return dict elif type_ == "null": return Optional[Any] # Use Optional[Any] for nullable fields + elif type_ == "literal": + return Literal[literal_eval(json_schema.get("enum"))] else: raise ValueError(f"Unsupported JSON schema type: {type_}")