离线RAG环境下的文档解析简直是噩梦
大多数人做RAG的第一步就是把PDF、Docx、PPTX转成纯文本,但市面上的方案要么太重,要么不安全。Apache Tika 确实全能,但得扛着 JVM 走,放在 Rust 或 Go 的微服务里极其违和;Python 阵营的
下一篇
LLM Judge的“方向性失效”实测:模型真的能识破语义反转吗? →
unstructured 或 Docling 功能强,但 pip 安装依赖、加载 ML 模型权重的过程慢得让人抓狂,而且结果不具有确定性;至于 LlamaParse 这类云端解析,对于银行、医院这种必须物理隔离(Air-gapped)的场景根本没法用。为了解决这个痛点,我实测了一个叫 DeepDoc 的工具。它最硬核的地方在于:一个纯 Rust 编译的静态二进制文件,不需要 JVM,不需要 Python,不需要联网下载模型,直接丢进 Docker 的 scratch 层就能跑。
实操起来非常简单,直接命令行调用:
$ deepdoc report.docx输出结果是干净的 Markdown,连文档里的表格都能原样保留,完全没有那些乱七八糟的格式噪音。
从技术实现上看,它走的是一条“枯燥但高效”的路线:将所有格式先统一解析到一个中立的 Document 模型(包含标题、段落、列表、表格等),然后再通过纯函数序列化成 Markdown 或 JSON。这种设计保证了无论输入是 .docx 还是 .pptx,最终输出的 Markdown 路径是统一的,结果高度确定。
对于追求极致部署效率、且对数据隐私要求极高的本地 RAG 工作流来说,这种单二进制文件的解析方案比折腾 Python 环境要爽得多。