| from pydantic import BaseModel, EmailStr, Field | |
| class UserCreate(BaseModel): | |
| email: EmailStr | |
| password: str | |
| class UserLogin(BaseModel): | |
| email: EmailStr | |
| password: str | |
| class TokenPayload(BaseModel): | |
| sub: str | |
| class AskRequest(BaseModel): | |
| query: str | |
| class AskResponse(BaseModel): | |
| answer: str | |
| sources: dict[str, list[dict[str, str]]] = Field(default_factory=lambda: {"vector": [], "web": []}) | |
| class DocumentResponse(BaseModel): | |
| id: int | |
| filename: str | |
| file_hash: str | |
| summary: str | |
| page_count: int | |
| class Config: | |
| from_attributes = True | |