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