File size: 565 Bytes
6ca4b94 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
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 |