run-llama/liteparse

GitHub Trending (daily) 工具

摘要

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 / TypeScriptnpm i @llamaindex/liteparseNode.js README
Pythonpip install liteparsePython README
Rustcargo install liteparse (CLI) / cargo add liteparse (lib)Rust README (crates.io)
浏览器 (WASM)npm i @llamaindex/liteparse-wasmWASM 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 在所有安装方式中(npmpipcargo 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 端点
  • 接受 filelanguage 参数
  • 返回 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 绑定

相似文章