Spaces:
Sleeping
Sleeping
from datetime import datetime | |
from typing import List, Optional | |
from pydantic import UUID4, BaseModel | |
class LogSchema(BaseModel): | |
id: int | |
date_created: datetime | |
user_request: Optional[str] = None | |
qe_result: Optional[str] = None | |
search_result: Optional[str] = None | |
llm_result: Optional[str] = None | |
llm_settings: Optional[str] = None | |
user_name: Optional[str] = None | |
chat_id: Optional[str] = None | |
error: Optional[str] = None | |
class LogCreateSchema(BaseModel): | |
user_request: Optional[str] = None | |
qe_result: Optional[str] = None | |
search_result: Optional[str] = None | |
llm_result: Optional[str] = None | |
llm_settings: Optional[str] = None | |
user_name: Optional[str] = None | |
error: Optional[str] = None | |
chat_id: Optional[str] = None | |
class SortParam(BaseModel): | |
field: str | |
direction: str # "asc" | "desc" | |
class LogFilterSchema(BaseModel): | |
user_name: Optional[str] = None | |
chat_id: Optional[str] = None | |
date_from: Optional[datetime] = None | |
date_to: Optional[datetime] = None | |
page: int = 1 # Номер страницы, по умолчанию 1 | |
page_size: int = 50 # Размер страницы, по умолчанию 50 | |
sort: Optional[List[SortParam]] = None # Список параметров сортировки | |
class Config: | |
json_schema_extra = { | |
"example": { | |
"user_name": "demo", | |
"date_from": "2024-01-01T00:00:00", | |
"date_to": "2026-12-31T23:59:59", | |
"page": 1, | |
"page_size": 50, | |
"sort": [ | |
{"field": "date_created", "direction": "desc"} | |
] | |
} | |
} | |
class PaginatedLogResponse(BaseModel): | |
data: List[LogSchema] | |
total: int | |
page: int | |
page_size: int | |
total_pages: int | |