问题域/PD-102

文档解析管线

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 实现子进程实时日志输出而非阻塞等待