文档解析管线
Document Parsing Pipeline
多格式文档的统一解析、转换与结构化内容提取
子问题
1.多格式文件类型检测与路由
2.PDF/图片 OCR 解析
3.Office 文档格式转换
4.解析结果标准化
5.解析后端可插拔切换
6.解析结果缓存与失效策略
7.子进程实时日志流式输出
8.解析后端版本兼容(字段名映射)
9.路径遍历安全防护
各项目的解法1 solutions
Signals
横向对比
| 维度 | RAG-Anything |
|---|---|
| 解析后端 | MinerU + Docling 双后端策略模式,config.parser 一键切换 |
| 格式覆盖 | PDF/图片(8种)/Office(6种)/HTML/文本,共 18+ 种格式 |
| 格式转换 | 三条转换链:Office→PDF(LibreOffice)、非标图片→PNG(Pillow)、文本→PDF(ReportLab) |
| 输出标准化 | 统一 content_list 结构,type 字段区分 text/image/table/equation |
| 缓存机制 | MD5(file_path+mtime+parser+method+kwargs) 内容哈希缓存,配置变化自动失效 |
| 安全防护 | 路径遍历检查 is_relative_to()、符号链接阻断、文件大小限制 |
最佳实践
1.定义统一的 content_list 输出格式
2.使用策略模式支持多解析后端
3.对不支持的格式提供自动转换链路
4.用 asyncio.to_thread 将同步解析放入线程池避免阻塞事件循环
5.用 Mixin 模式将解析逻辑与查询逻辑解耦
6.用双线程 Queue 实现子进程实时日志输出而非阻塞等待