> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# LiteParse：理解布局的PDF解析器
- URL: https://www.hubwiz.com/blog/liteparse-a-layout-aware-pdf-parser/
- Published: 2026-03-25T15:10:02.000Z
- Updated: 2026-03-25T15:10:02.000Z
- Description: LlamaIndex开源了LlamaParse背后的核心解析引擎LiteParse，与其检测文档结构并将其转换为markdown，它保留了空间布局，让模型自己处理其余的部分。
- Author: admin
- Tags: LIBRARY, LITEPARSE, #Import 2026-10-14 14:41

![预览图](https://www.hubwiz.com/blog/content/images/2026/03/1-4O18XcedISLc1ffFTbsdfw.png)

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

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

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

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

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

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

> 这个月他们将这个核心开源为 [**LiteParse**](https://github.com/run-llama/liteparse?ref=hubwiz.com)：一个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中显示出更高的准确性，对大型文档具有顶级的解析延迟，评估代码和数据集都在[GitHub](https://github.com/run-llama/liteparse?ref=hubwiz.com)和[HuggingFace](https://huggingface.co/datasets/llamaindex/liteparse%5Fbench%5Fsmall?ref=hubwiz.com)上公开以供复现。

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

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

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

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

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

---

原文链接: [LiteParse bets that LLMs already know how to read a table, so it stopped converting them](https://medium.com/@pankaj%5Fpandey/liteparse-bets-that-llms-already-know-how-to-read-a-table-so-it-stopped-converting-them-e6eb4958dcad?ref=hubwiz.com)

汇智网翻译整理，转载请标明出处