快了 10-100 倍,还完全本地运行。
在做RAG项目的时候,最让人头疼的就是文档解析这一环节。
要么速度特别慢,要么解析效果很差。
多栏排版全混在一起,表格也经常看不成样子。
而且很多服务还得先把文件上传到云端,隐私数据难免让人不放心。
最近在 GitHub 上发现一个开源工具 LiteParse,已经有 10,000+ Star,专门解决这些痛点。
用一句话来总结就是:
它是一个用于快速解析PDF和文档的工具,可以把文本和位置信息提取出来,并且全部在本地进行处理,不依赖于云端的API。
就像用 htop 查看服务器进程一样,LiteParse让你一目了然地看到文档的真实结构。

原来被压缩了的多栏排版、表格、图表等信息现在也可以保留下来了。
有趣的是,并不是直接把PDF中的文字提取出来,而是做了一件更聪明的事。
它把文本投影到虚拟字符网格上,同时保留文档原来的视觉结构。
它把文档解析的关键能力都给你。
01 空间文本解析。
传统的PDF解析器会把多栏排版、表格和复杂的排版都变成没有意义的文本流。
PDF 存储的是字符的位置,并不是逻辑上的阅读顺序,因此解析出的文字常常是杂乱无章的。
LiteParse 的 Grid Projection 技术用算法来恢复出空间关系,并把每一个文本元素都投射到一个虚拟的网格上。

这样做的好处是大模型读到的就是有结构、有布局的内容了,而不会是一团乱码。
02 精确边界框输出。
它还为每个文本元素提供了精确的边界框,就是坐标位置(x1, y1, x2, y2)。
该信息在RAG分块、图表区域识别和多模态推理中非常有用。

03 选择性 OCR。
传统的OCR方案会把所有的页面都进行OCR处理,不管该PDF是原始文本还是扫描图像。
这是很浪费时间的,并且OCR的速度要比原生文本提取慢很多。
LiteParse的做法比较巧妙:首先使用Google PDFium来提取出原始文本。
只有当页面上没有提取到任何文本,或者是字符映射出现错误的时候才会触发OCR。

内置的 Tesseract OCR ,零配置,直接能用。
如果想调用更厉害的 OCR 引擎也是支持的,比如 EasyOCR、PaddleOCR 等。
可以调用 HTTP API 来对接。
这种"只在必要时 OCR"的设计,让它在处理混合内容 PDF 时特别高效。
最后 OCR 的结果会与原始文本提取的结果进行智能合并,并且保证空间的一致性。
04 速度真的快。
官方 benchmark 结果:457 页 100MB 的文档,0.777 秒解析完;20 页 PDF,普通 MacBook 上大概 3 秒。
在社区反馈中,有人用它和PyPDF、PyMuPDF进行比较,在复杂的文档上速度提高了10到100倍。
跟 VLM-based 的方案比,延迟显著更低,成本也更可控。
并且它是完全本地化的,不需要API Key,也不需要把文档上传到云上。
对于隐私要求比较高的场景(如政府、医疗、金融等),这很重要,还可以节省云上服务的成本。
05 多格式支持。
除了PDF之外,还可以支持Office文档(Word、PPT、Excel)以及图片格式。
原理就是用 LibreOffice 和 ImageMagick 把图片转换为 PDF 格式之后再进行解析。

转换管道是自动的,不需要人工干预。
输出格式有三种:Markdown、JSON 和纯文本。
Markdown 有标题、表格、列表、图片和链接等,可以直接给到大模型。
JSON中包含了页面信息、文本项、边界框、字体元数据等,可以被程序化地处理。
纯文本保留布局,适合简单场景。
06 页面截图生成。
一条命令就可以产生高分辨率的PNG图片,并且为Agent提供视觉推理的能力。
在做多模态Agent的工作流的时候非常有用。
看完这些功能,相信各位已经迫不及待了。
由于 LiteParse 支持多种语言绑定,我们可以选择最适合自己的安装方式。
Node.js 用户只需要一条命令就可以安装好:
npm i -g @llamaindex/liteparsePython 用户也一样简单:
pip install liteparseHomebrew 用户(macOS/Linux)更省事:
brew install liteparse安装好之后,一条命令就可以解析PDF:
lit parse document.pdf输出 JSON(包含边界框):
lit parse document.pdf --format json -o output.json批量处理整个目录:
lit batch-parse ./input ./output浏览器里也有个 WASM 版本,完全本地运行,不用安装任何东西。
https://www.llamaindex.ai/liteparse-demo

到这里缺点也给大家提提。
它明确说了不做表格语义分割、不做图像识别。
这些是 LlamaParse 才有的功能。
如果你的文档比较复杂,比如有很多表格、多栏排版、图表、手写体或者纯扫描PDF等,那么LiteParse就可能不那么准确了。
此时仍然需要使用LlamaParse或者其它更强的工具。
写在最后
我也做过RAG和Agent,现在看来LiteParse确实可以节省很多资源。
以前的文档解析要么速度慢,要么要上传到云端去处理,或者解析出来的结果很混乱。
现在用一个工具都能解决了。
并且它不需API Key、无需上传到云上,安装后就可以使用了。
经常做RAG和Agent的朋友可以试一下。
项目基于 Apache-2.0 协议开放,感兴趣的同学可以去 GitHub 仓库看看源码和文档。
开源地址:https://github.com/run-llama/liteparse
既然看到这了,欢迎随手点赞、在看、转发,也可以给我个星标⭐,接收最新的文章,我们下期见!
夜雨聆风