"""文档相关数据模型""" from pydantic import BaseModel from typing import Optional, Any from datetime import datetime class DocumentUploadResponse(BaseModel): """文档上传响应""" doc_id: str filename: str size: int status: str = "uploaded" parse_task_id: Optional[str] = None # 解析任务ID class DocumentInfo(BaseModel): """文档信息""" id: str name: str chunks: int status: str created_at: Optional[datetime] = None class DocumentListResponse(BaseModel): """文档列表响应""" docs: list[DocumentInfo] class ChunkInfo(BaseModel): """文本块信息""" chunk_id: str doc_name: str clause_id: Optional[str] = None chapter: Optional[str] = None content: str token_count: int chunk_index: int class ParseResponse(BaseModel): """解析响应""" doc_id: str task_id: Optional[str] = None chunks: int = 0 status: str = "parsing" class EmbedResponse(BaseModel): """嵌入响应""" doc_id: str task_id: Optional[str] = None vectors: int = 0 status: str = "embedding" class TaskStatusResponse(BaseModel): """任务状态响应""" task_id: str status: str progress: int message: Optional[str] = None result: Optional[Any] = None