文档生命周期管理
Document Lifecycle Management
文档从上传到处理完成的全生命周期状态跟踪与管理
子问题
1.状态机设计
2.处理进度追踪
3.错误恢复
4.删除与重建
5.多模态两阶段处理(PREPROCESSED 中间态)
6.重复文档检测与去重记录
7.Pipeline 单 worker 互斥与取消请求协调
8.删除时共享实体的 LLM 重建
各项目的解法1 solutions
Signals
横向对比
| 维度 | LightRAG |
|---|---|
| 状态机设计 | DocStatus(str,Enum) 五态:PENDING→PROCESSING→PREPROCESSED→PROCESSED/FAILED,__post_init__ 多模态降级 |
| 处理进度追踪 | track_id 批次追踪 + pipeline_status 共享状态 + history_messages 操作日志 |
| 错误恢复 | Pipeline 启动时 _validate_and_fix_document_consistency 自动将 PROCESSING/FAILED 重置为 PENDING |
| 删除与重建 | chunks_list 精确定位 → 区分独占/共享实体 → 独占删除、共享用剩余 chunk LLM 重建 |
| 并发控制 | pipeline_status.busy 单 worker 互斥 + job_name 验证防止删除与处理冲突 |
| 存储抽象 | DocStatusStorage 抽象基类 + JsonDocStatusStorage 共享内存实现,支持多后端切换 |
最佳实践
1.DocStatus枚举明确状态转换
2.chunk列表关联支持精确删除重建
3.str 枚举可直接 JSON 序列化,避免状态值转换开销
4.Pipeline 启动时自动自愈,PROCESSING/FAILED 重置为 PENDING
5.删除操作通过 job_name 验证防止与处理任务冲突
6.DocProcessingStatus.__post_init__ 实现透明的多模态状态降级