feat:增加分析进度接口
This commit is contained in:
@@ -231,8 +231,39 @@ class DataFileRecord(DataFileDetail):
|
||||
deleted: bool = False
|
||||
|
||||
|
||||
UploadStatus = Literal["queued", "parsing", "ready", "failed"]
|
||||
|
||||
UploadStage = Literal["detecting", "reading", "building"]
|
||||
|
||||
|
||||
class UploadError(BaseModel):
|
||||
# 与同步接口失败时的 HTTP 状态码和 msg 一致,如 422 + 解析失败的原因
|
||||
code: int
|
||||
msg: str
|
||||
|
||||
|
||||
class UploadProgress(BaseModel):
|
||||
"""一次上传的解析进度;上传接口、进度接口和文件列表里的 uploads 都是这个结构"""
|
||||
|
||||
file_id: str
|
||||
name: str
|
||||
# queued 排队中;parsing 解析中;ready 已完成,文件记录已可查;failed 失败,原因在 error
|
||||
status: UploadStatus
|
||||
# 解析完成的比例,0 到 1,只增不减;ready 时为 1,解析中不会到 1
|
||||
progress: float
|
||||
# 解析中所处的环节;其他状态为空
|
||||
stage: UploadStage | None
|
||||
# 预计还要多少秒;排队中、刚开始解析、已结束时为空
|
||||
eta_seconds: float | None
|
||||
# 排队中时,前面还有几个文件在排队;其他状态为 0
|
||||
queued_ahead: int
|
||||
error: UploadError | None
|
||||
|
||||
|
||||
class DataFileList(BaseModel):
|
||||
files: list[DataFileInfo]
|
||||
# 本会话里排队、解析中和刚失败的上传,刷新页面后据此恢复轮询;完成的已在 files 里
|
||||
uploads: list[UploadProgress] = Field(default_factory=list)
|
||||
|
||||
|
||||
class DataTableRows(BaseModel):
|
||||
@@ -271,3 +302,5 @@ class RequestDataFile(BaseModel):
|
||||
# 本轮消息的 attachments 里带了这个文件,通常是刚上传的
|
||||
attached_this_turn: bool
|
||||
tables: list[DataTableInfo]
|
||||
# 上传后的分析结果,只有 ready 的才有;给模型一句说明和列的含义,没有时和以前完全一样
|
||||
insights: FileInsights | None = None
|
||||
|
||||
Reference in New Issue
Block a user