Files

64 lines
1.3 KiB
Python

"""文档相关数据模型"""
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