Files
kbqa-system/backend/src/kbqa/documents/schemas.py
T
2026-07-13 11:34:22 +08:00

47 lines
910 B
Python

from datetime import datetime
from typing import Generic, TypeVar
from pydantic import BaseModel, ConfigDict, Field
T = TypeVar("T")
class Page(BaseModel, Generic[T]):
items: list[T]
total: int
offset: int
limit: int
class DocumentResponse(BaseModel):
model_config = ConfigDict(from_attributes=True)
id: str
filename: str
file_type: str
mime_type: str
file_size: int
status: str
chunk_count: int
error_code: str | None
error_message: str | None
created_at: datetime
updated_at: datetime
class ChunkResponse(BaseModel):
model_config = ConfigDict(from_attributes=True)
id: str
document_id: str
order_index: int
content: str
page_number: int | None
char_count: int
created_at: datetime
class Pagination(BaseModel):
offset: int = Field(default=0, ge=0)
limit: int = Field(default=20, ge=1, le=100)