LiteParse:理解布局的PDF解析器

你见过这种循环上演。一个智能体需要从PDF表格中获取数据,于是它用pypdf编写提取代码,结果只得到错位的列。

它切换到pdfplumber,修复了对齐问题,但默默地将两行合并成一行。

接着它尝试markdown转换器,这次表头向右移动了一列,将财务摘要中的每个数字都附加到了错误的标签上。

三次迭代和几千个token之后,智能体花在解析文档上的计算资源比分析其内容还要多。

问题不在于智能体的推理能力。流水线中的每个解析器都在尝试做同样的事情: 检测文档结构,将其转换为markdown,并希望转换是准确的。当文档简单时这有效,但当它有合并单元格、多级标题或不整齐排列的列时,转换会引入智能体无法捕捉的错误,因为生成的markdown在语法上是有效的。

LlamaIndex花了多年时间将LlamaParse打造成一个跨保险、金融和制造业使用的生产级文档解析器,在这个过程中他们了解了快速、轻量级解析实际上需要什么。

这个月他们将这个核心开源为 LiteParse:一个TypeScript原生CLI和库,完全在你的机器上运行,无需云调用、无需Python依赖、解析循环中无需LLM。

**它在三天内获得了1,500多个GitHub星,使其值得审视的设计决策是它有意避免的东西:**它根本不试图理解文档的结构。

1、保留布局,跳过转换

LiteParse的核心理念是,结构检测对于LLM流水线来说是错误的抽象。

与其找到表格并将其转换为markdown,它将每个文本元素投影到页面上其所在坐标的空间网格上,产生纯文本,其中空格本身成为结构:

复制代码
Name        Age    City
John        25     NYC
Jane        30     LA

这是LiteParse对三列表格的实际输出,没有管道字符,没有markdown格式,列通过缩进和间距保留,与原始PDF中的显示完全一致。

赌注是LLMs已经理解这种格式,因为它们在数百万个ASCII表格、缩进代码块、README文件中的列数据和空格对齐的配置输出上进行了训练。

表格的空间文本渲染比可能转换正确也可能不正确的markdown表格更接近模型的训练分布,而同一表格的PyPDF输出通常会将所有三列连接成单个文本流,完全丢失空间关系。

网格投影算法将每个提取的文本元素放置在其页面坐标上,并将整个页面渲染为纯文本网格,因此它永远不需要识别什么是表格、列从哪里开始或标题如何映射到行。

当两个文本元素在网格上重叠时,一个会被位移,这是智能体可以检测并规避的可见错误,不像markdown转换那样在没有任何指示的情况下悄悄重新映射列。

2、智能体工作流:先解析,后截图

LiteParse围绕LlamaIndex团队在生产智能体工作流中观察到的特定模式设计。

Anthropic的官方PDF技能鼓励智能体在每次运行时用pypdf或pdfplumber编写Python代码,产生不可跨文档或会话重用的一次性解析逻辑。
第二个常见模式是智能体提取文本进行初始理解,然后为需要更深入视觉分析的页面生成截图。

LiteParse将两种功能打包成一个稳定的工具,采用两步工作流。

第一步是快速文本提取:

复制代码
npm i -g @llamaindex/liteparse

# 解析PDF并搜索特定内容
lit parse quarterly-report.pdf | grep "revenue"
# 解析特定页面为带边框的JSON
lit parse quarterly-report.pdf --target-pages "1-5" --format json -o parsed.json

第二步在智能体需要对特定页面进行视觉推理时启动:

复制代码
# 生成高质量截图用于多模态分析
lit screenshot quarterly-report.pdf --target-pages "8,12" --dpi 300 -o ./charts

截图是多模态模型可以直接分析的高分辨率页面渲染,因此如果第8页的空间文本输出显示了智能体无法仅从文本解释的图表区域,它会截取该页面并将图像交给视觉模型进行更深入的分析。

这种两步模式被打包为可重用的智能体技能,可以通过单个命令安装:

复制代码
npx skills add run-llama/llamaparse-agent-skills --skill liteparse

安装后,智能体就拥有了一个稳定、可移植的解析工具,而不是在每次对话中编写一次性提取代码。

3、将LiteParse作为库使用

除了CLI,LiteParse还可以作为嵌入库在TypeScript(原生实现)和Python(需要Node.js 18+的CLI包装器)中使用:

复制代码
import { LiteParse } from '@llamaindex/liteparse';

const parser = new LiteParse({ ocrEnabled: true });
// 从文件路径解析
const result = await parser.parse('document.pdf');
console.log(result.text);
// 从缓冲区解析,零磁盘I/O
const response = await fetch('https://example.com/report.pdf');
const buffer = Buffer.from(await response.arrayBuffer());
const fromBuffer = await parser.parse(buffer);
# pip install liteparse(需要Node.js 18+)
from liteparse import LiteParse

parser = LiteParse()
result = parser.parse("document.pdf")
print(result.text)

缓冲区输入路径对于沙盒环境中的智能体特别有用,因为PDF缓冲区完全在内存中解析,无需将临时文件写入磁盘。非PDF格式(如通过LibreOffice的Office文档和通过ImageMagick的图像)仍需通过临时文件转换,但核心PDF路径完全保持在内存中。

4、OCR:内置且可插拔

Tesseract.js内置并自动跨CPU核心并行化,因此对于扫描文档或包含嵌入图像的页面,OCR无需任何配置即可激活:

复制代码
lit parse scanned-contract.pdf --ocr-server-url http://localhost:8828/ocr

当需要更高精度时,可以将LiteParse指向外部OCR服务器。

仓库包含了EasyOCR和PaddleOCR的即用型服务器包装器,任何OCR引擎都可以工作,只要它通过HTTP端点返回三个字段:text(文本)、bbox(坐标)和confidence(置信度)。

这种可插拔设计让团队可以从内置的Tesseract开始,以后换用更精确的引擎,而无需更改任何应用代码。

5、多格式支持

LiteParse处理的不仅仅是PDF,它将所有内容转换为统一的流水线。

Word文档、PowerPoint演示文稿和Excel电子表格通过LibreOffice转换为PDF后进行解析,而图像(PNG、JPG、TIFF、SVG)则通过ImageMagick处理。

这些依赖项需要单独安装,但一旦安装,整个流水线在相同的空间引擎下统一:

复制代码
# 所有这些都通过相同的流水线工作
lit parse presentation.pptx
lit parse spreadsheet.xlsx
lit parse scanned-receipt.jpg

6、LiteParse的适用范围和不适用范围

LlamaIndex对两种解析器的边界很明确。

LiteParse是开源的快速层,适用于需要快速读取文档然后继续前进的智能体和实时流水线,而LlamaParse仍然是基于云的精确层,适用于需要从复杂财务报告中提取每个单元格的文档智能产品,这些报告有密集表格、多列布局、图表和手写注释。

两者设计为互补而非竞争。

团队构建了一个自定义基准测试,因为现有的OCR基准测试(如OlmOCR)不考虑空间文本输出,因此他们从页面截图生成问答对,手动审核数据集,并使用LLM-as-judge对PyPDF、PyMuPDF和Markitdown进行评估。

LiteParse在基于页面的QA中显示出更高的准确性,对大型文档具有顶级的解析延迟,评估代码和数据集都在GitHubHuggingFace上公开以供复现。

诚实的注意事项是,这些基准测试是与基本文本提取器比较,而不是与VLM驱动的工具比较,这意味着我们没有与Docling或Reducto等生产级替代品的直接准确性比较。

在我们之前关于文档智能体的文章中,我们介绍了Reducto的方法,即在LLM看到之前将内容与元数据分离,因为原始解析输出将结构噪声与实际内容混合在一起。

**LiteParse做了相反的赌注:**不是预处理去除结构,而是保留原始布局并信任模型直接读取它。两种方法从相反的两端解决相同的问题,哪种效果更好取决于文档本身。

对于文本密集、表格简单的PDF,LiteParse的空间保留快速可靠,而对于具有嵌套结构和复杂视觉元素的文档,可能需要Reducto或LlamaParse。

智能体技能模式使得可以从LiteParse开始,当空间输出不够时进行升级。


原文链接:LiteParse:理解布局的PDF解析器 - 汇智网

相关推荐
开开心心就好17 小时前
免费自媒体多功能工具箱,图片音视频处理
人工智能·pdf·ocr·excel·音视频·语音识别·媒体
优化控制仿真模型1 天前
【英二】考研英语二历年真题及答案解析PDF电子版(1980-2025年)
经验分享·考研·pdf
其实秋天的枫1 天前
【英一】考研英语一历年真题及答案解析PDF电子版(1980-2025年)
考研·pdf
A Everyman1 天前
Java 高效生成 Word 文档:poi-tl 的使用
java·pdf·word·poi-tl
其实秋天的枫1 天前
【英二】考研英语二历年真题及答案解析PDF电子版(1980-2025年)
考研·pdf
weixin_441003641 天前
2027王道408计算机考研pdf
pdf
SEO-狼术2 天前
Improve Navigation with In-Cell Hyperlinks
python·pdf
态态态2 天前
平板PDF充足笔记空间的最优解
笔记·pdf
开开心心就好2 天前
电子教材下载工具,支持多链接批量下载
windows·随机森林·计算机视觉·pdf·计算机外设·逻辑回归·excel