run-llama/liteparse
摘要
LiteParse 是 run-llama 推出的一个独立的开源 PDF 解析工具,提供快速、本地的空间文本提取及边界框,支持多种编程语言和平台。
查看缓存全文
缓存时间: 2026/05/29 12:42
run-llama/liteparse 源代码:https://github.com/run-llama/liteparse
LiteParse CI (https://github.com/run-llama/liteparse/actions/workflows/ci.yml) | Crates.io 版本 (https://crates.io/crates/liteparse) | npm 版本 (https://www.npmjs.com/package/@llamaindex/liteparse) | WASM 版本 (https://www.npmjs.com/package/@llamaindex/liteparse-wasm) | PyPI 版本 (https://pypi.org/project/liteparse/) | 许可证 (https://opensource.org/licenses/Apache-2.0) | 文档 (https://developers.llamaindex.ai/liteparse/)
正在寻找 LiteParse V1?请点击此链接查看旧代码 (https://github.com/run-llama/liteparse/tree/logan/liteparse-v1)
LiteParse 是一个独立的开源 PDF 解析工具,专注于快速且轻量的解析。它提供带有边界框的高质量空间文本解析,不包含专有的 LLM 功能或云端依赖。所有操作都在本地机器上运行。
**本地解析遇到瓶颈?**对于复杂文档(密集表格、多列布局、图表、手写文本或扫描版 PDF),使用 LlamaParse (https://developers.llamaindex.ai/python/cloud/llamaparse/?utm_source=github&utm_medium=liteparse) 可以获得显著更好的效果——这是我们为生产级文档流水线构建的云端文档解析器。LlamaParse 能处理棘手的部分,让您的模型看到干净、结构化的数据和 Markdown。
免费注册 LlamaParse (https://cloud.llamaindex.ai?utm_source=github&utm_medium=liteparse)
概览
- 快速文本解析:使用 PDFium 进行空间文本解析
- 灵活的 OCR 系统:
- 内置:Tesseract(零配置,随库一起打包)
- HTTP 服务器:接入任何 OCR 服务器(EasyOCR、PaddleOCR、自定义)
- 标准 API:简单、定义明确的 OCR API 规范
- 截图生成:为 LLM 智能体生成高质量页面截图
- 多种输出格式:JSON 和纯文本
- 边界框:精确的文本定位信息
- 多语言:支持从 Rust、Node.js/TypeScript、Python 或浏览器(WASM)使用
- 多平台:Linux、macOS(Intel/ARM)、Windows
``mermaid flowchart LR subgraph Input[“输入格式”] direction TB PDF[“PDF”] DOCX[“DOCX”] XLSX[“XLSX”] PPTX[“PPTX”] IMG[“图片”] end
subgraph Core["Rust 核心"]
direction TB
CONV["格式转换\nLibreOffice / ImageMagick"]
EXTRACT["文本提取\nPDFium C 库"]
OCR["选择性 OCR\nTesseract / HTTP / 自定义"]
MERGE["OCR 合并\n原生文本 + OCR 结果"]
PROJ["网格投影\n空间布局重建"]
CONV --> EXTRACT
EXTRACT --> OCR --> MERGE --> PROJ
EXTRACT --> MERGE
end
subgraph Output["输出"]
direction TB
JSON["结构化 JSON\n文本 + 边界框"]
TEXT["纯文本\n保留布局"]
SCREEN["截图\nPNG 渲染"]
end
subgraph Bindings["语言绑定"]
direction TB
NAPI["Node.js / TypeScript\nnapi-rs"]
PYO3["Python\nPyO3"]
WASM["浏览器 / WASM\nwasm-bindgen"]
CLI["CLI\ncargo / npm / pip"]
NAPI ~~~ PYO3 ~~~ WASM ~~~ CLI
end
PDF --> EXTRACT
DOCX & XLSX & PPTX & IMG --> CONV
PROJ --> JSON & TEXT & SCREEN
JSON & TEXT & SCREEN --> Bindings
style Input fill:#F5F5F5,color:#000000,stroke:#37D7FA,stroke-width:2px
style Core fill:#F5F5F5,color:#000000,stroke:#3E18F9,stroke-width:2px
style Output fill:#F5F5F5,color:#000000,stroke:#FF8705,stroke-width:2px
style Bindings fill:#F5F5F5,color:#000000,stroke:#FF8DF2,stroke-width:2px
style PDF fill:#96E7F9,color:#000000,stroke:#37D7FA,stroke-width:1px
style DOCX fill:#96E7F9,color:#000000,stroke:#37D7FA,stroke-width:1px
style XLSX fill:#96E7F9,color:#000000,stroke:#37D7FA,stroke-width:1px
style PPTX fill:#96E7F9,color:#000000,stroke:#37D7FA,stroke-width:1px
style IMG fill:#96E7F9,color:#000000,stroke:#37D7FA,stroke-width:1px
style CONV fill:#92AEFF,color:#000000,stroke:#4B72FE,stroke-width:1px
style EXTRACT fill:#92AEFF,color:#000000,stroke:#4B72FE,stroke-width:1px
style OCR fill:#92AEFF,color:#000000,stroke:#4B72FE,stroke-width:1px
style MERGE fill:#92AEFF,color:#000000,stroke:#4B72FE,stroke-width:1px
style PROJ fill:#4B72FE,color:#FFFFFF,stroke:#3E18F9,stroke-width:2px
style JSON fill:#FFBD74,color:#000000,stroke:#FF8705,stroke-width:1px
style TEXT fill:#FFBD74,color:#000000,stroke:#FF8705,stroke-width:1px
style SCREEN fill:#FFBD74,color:#000000,stroke:#FF8705,stroke-width:1px
style NAPI fill:#FFBFF8,color:#000000,stroke:#FF8DF2,stroke-width:1px
style PYO3 fill:#FFBFF8,color:#000000,stroke:#FF8DF2,stroke-width:1px
style WASM fill:#FFBFF8,color:#000000,stroke:#FF8DF2,stroke-width:1px
style CLI fill:#FFBFF8,color:#000000,stroke:#FF8DF2,stroke-width:1px
``
安装
通过您偏好的包管理器进行安装。所有版本(除 WASM 外)都附带了相同的 lit CLI 工具。
| 语言 | 安装命令 | 库文档 |
|---|---|---|
| Node.js / TypeScript | npm i @llamaindex/liteparse | Node.js README |
| Python | pip install liteparse | Python README |
| Rust | cargo install liteparse (CLI) / cargo add liteparse (lib) | Rust README (crates.io) |
| 浏览器 (WASM) | npm i @llamaindex/liteparse-wasm | WASM README |
作为智能体技能使用
您可以将 liteparse 作为智能体技能使用,通过 skills CLI 工具进行下载:
npx skills add run-llama/llamaparse-agent-skills --skill liteparse
或者将 SKILL.md (https://github.com/run-llama/llamaparse-agent-skills/blob/main/skills/liteparse/SKILL.md) 文件复制粘贴到您自己的技能设置中。
CLI 用法
CLI 在所有安装方式中(npm、pip、cargo install)都是统一的。
解析文件
# 基本解析
lit parse document.pdf
# 指定格式解析
lit parse document.pdf --format json -o output.json
# 解析特定页码
lit parse document.pdf --target-pages "1-5,10,15-20"
# 不使用 OCR 解析
lit parse document.pdf --no-ocr
# 解析远程 PDF
curl -sL https://example.com/report.pdf | lit parse -
批量解析
解析整个目录下的文档:
lit batch-parse ./input-directory ./output-directory
生成截图
截图对于 LLM 智能体提取纯文本无法捕获的视觉信息至关重要。
# 截取所有页面
lit screenshot document.pdf -o ./screenshots
# 截取特定页面
lit screenshot document.pdf --target-pages "1,3,5" -o ./screenshots
# 自定义 DPI
lit screenshot document.pdf --dpi 300 -o ./screenshots
CLI 参考
解析命令
lit parse [OPTIONS]
选项:
-o, --output 输出文件路径
--format 输出格式:json|text [默认: text]
--no-ocr 禁用 OCR
--ocr-language OCR 语言,Tesseract 格式 [默认: eng]
--ocr-server-url HTTP OCR 服务器 URL(未提供时使用 Tesseract)
--tessdata-path tessdata 目录路径
--max-pages 最大解析页数 [默认: 1000]
--target-pages 要解析的页面(例如 "1-5,10,15-20")
--dpi 渲染 DPI [默认: 150]
--preserve-small-text 保留非常小的文本
--password 加密文档的密码
--num-workers 并发 OCR 工作线程数 [默认: CPU 核心数 - 1]
-q, --quiet 抑制进度输出
-h, --help 打印帮助信息
批量解析命令
lit batch-parse [OPTIONS]
选项:
--format 输出格式:json|text [默认: text]
--no-ocr 禁用 OCR
--ocr-language OCR 语言 [默认: eng]
--ocr-server-url HTTP OCR 服务器 URL
--tessdata-path tessdata 目录路径
--max-pages 每个文件最大页数 [默认: 1000]
--dpi 渲染 DPI [默认: 150]
--recursive 递归搜索输入目录
--extension 只处理具有此扩展名的文件(例如 ".pdf")
--password 加密文档的密码
--num-workers 并发 OCR 工作线程数
-q, --quiet 抑制进度输出
-h, --help 打印帮助信息
截图命令
lit screenshot [OPTIONS]
选项:
-o, --output-dir 输出目录 [默认: ./screenshots]
--target-pages 要截图的页面(例如 "1,3,5" 或 "1-5")
--dpi 渲染 DPI [默认: 150]
--password 加密文档的密码
-q, --quiet 抑制进度输出
-h, --help 打印帮助信息
OCR 设置
默认:Tesseract
Tesseract 已内置,开箱即用:
lit parse document.pdf # 默认启用 OCR
lit parse document.pdf --ocr-language fra # 指定语言
lit parse document.pdf --no-ocr # 禁用 OCR
对于离线或隔离环境,将 TESSDATA_PREFIX 设置为包含预下载 .traineddata 文件的目录:
export TESSDATA_PREFIX=/path/to/tessdata
lit parse document.pdf --ocr-language eng
或直接传递路径:
lit parse document.pdf --tessdata-path /path/to/tessdata
可选:HTTP OCR 服务器
为了更高的精度或更好的性能,您可以使用 HTTP OCR 服务器。我们为流行的 OCR 引擎提供了现成的示例封装:
您可以通过实现简单的 LiteParse OCR API 规范(参见 OCR_API_SPEC.md)来集成任何 OCR 服务。该 API 要求:
POST /ocr端点- 接受
file和language参数 - 返回 JSON:
{ results: [{ text, bbox: [x1,y1,x2,y2], confidence }] }
多格式输入支持
LiteParse 支持在解析前自动转换各种文档格式为 PDF。
支持的输入格式
Office 文档(通过 LibreOffice)
- Word:
.doc,.docx,.docm,.odt,.rtf,.pages - PowerPoint:
.ppt,.pptx,.pptm,.odp,.key - 电子表格:
.xls,.xlsx,.xlsm,.ods,.csv,.tsv,.numbers
安装 LibreOffice 以实现自动转换:
# macOS
brew install --cask libreoffice
# Ubuntu/Debian
apt-get install libreoffice
# Windows
choco install libreoffice-fresh
在 Windows 上,您可能需要将 LibreOffice 的程序目录(通常为
C:\Program Files\LibreOffice\program)添加到 PATH 中。
图片(通过 ImageMagick)
- 格式:
.jpg,.jpeg,.png,.gif,.bmp,.tiff,.webp,.svg
安装 ImageMagick 以实现图片到 PDF 的转换:
# macOS
brew install imagemagick
# Ubuntu/Debian
apt-get install imagemagick
# Windows
choco install imagemagick.app
环境变量
| 变量 | 描述 |
|---|---|
TESSDATA_PREFIX | 包含 Tesseract .traineddata 文件的目录路径。用于离线/隔离环境。 |
开发
该项目是一个 Rust 工作区,包含核心库和特定语言的绑定 crate。
crates/
├── liteparse/ # 核心库 + CLI 二进制
├── liteparse-napi/ # Node.js 绑定 (napi-rs)
├── liteparse-python/ # Python 绑定 (PyO3)
├── liteparse-wasm/ # WASM 绑定 (wasm-bindgen)
├── pdfium/ # PDFium Rust 封装
└── pdfium-sys/ # PDFium FFI 绑定
packages/
├── node/ # npm 包 (TS 封装 + 原生二进制)
├── python/ # PyPI 包 (Python 封装 + 原生二进制)
└── wasm/ # WASM npm 包
构建
# 构建 CLI
cargo build --release -p liteparse
# 构建 Node.js 绑定
cd packages/node && npm run build
# 构建 Python 绑定
cd packages/python && maturin develop --release
# 构建 WASM
cd packages/wasm && npm run build
我们提供了相当详细的 AGENTS.md/CLAUDE.md,建议使用它们来辅助开发和代码智能体。
许可证
Apache 2.0
致谢
基于以下项目构建:
- PDFium (https://pdfium.googlesource.com/pdfium/) - PDF 渲染和文本提取
- Tesseract (https://github.com/tesseract-ocr/tesseract) - OCR 引擎(通过 tesseract-rs)
- EasyOCR (https://github.com/JaidedAI/EasyOCR) - HTTP OCR 服务器(可选)
- PaddleOCR (https://github.com/PaddlePaddle/PaddleOCR) - HTTP OCR 服务器(可选)
- napi-rs (https://napi.rs/) - Node.js 原生绑定
- PyO3 (https://pyo3.rs/) - Python 原生绑定
- wasm-bindgen (https://github.com/wasm-bindgen/wasm-bindgen) - WebAssembly 绑定
相似文章
@jerryjliu0:LiteParse,我们的开源文档解析器,在将复杂 PDF 布局、文本和表格解析为清晰的空间网格方面表现出色……
LiteParse 是一款基于启发式规则的开源 PDF 解析器,无需依赖 ML 模型即可快速将复杂布局、文本和表格转换为整洁的空间网格。
@llama_index: 当我们说“LiteParse 无处不在”时,我们是认真的。我们的 WASM 包轻量、精简,专为浏览器和…
LiteParse 是一个基于 WASM 的轻量级 PDF 解析器,专为浏览器和边缘运行时(如 Cloudflare Workers)设计,可在边缘环境中高效解析文档。
@jerryjliu0:上周我们重做了Liteparse,使其成为目前最快的PDF解析器。Liteparse的一个被低估之处是它不仅能提取文本,还能提供边界框,让编码代理能够精确绘制出原始文档的审计轨迹。
Jerry Liu宣布重做后的LiteParse是一款快速的PDF解析器,可提供用于审计轨迹的边界框,并附带示例演示。
@jerryjliu0: LiteParse 是为 AI 智能体设计的最佳开源、无模型文档解析器。支持解析 50 多种文档类型,并…
LlamaIndex 发布了 liteparse-server,这是一个可自托管、无模型的 HTTP API,能够以高空间保真度和隐私保护能力解析多种多样的文档类型。
@itsclelia: 你真的拥有你的文档解析基础设施吗?在 @llama_index,我们想让它更简单,所以构建了…
LlamaIndex 推出了 liteparse-server,这是一个开源、可自托管的 HTTP 后端,用于解析 PDF、图像和 Office 文档,支持空间布局提取、OCR 和截图生成,专为 AI 和数据工作流设计。