import json from pydantic import field_validator, BaseModel class SearchRequest(BaseModel): mode: str items: list scale: list filter_string: str = "" sort_col: str = "max_similarity" sort_descending: bool = True page_index: int = 0 page_size: int = 5 session_id: str = "" @field_validator('items', 'scale', mode='before') @classmethod def parse_json_string(cls, v): if isinstance(v, list) and len(v) > 0: v = v[0] if isinstance(v, str): return json.loads(v) return v