← 返回信息流
GitHub 热榜GitHub Trending · 日·6 天前

run-llama发布liteparse

原标题:run-llama/liteparse
Rust6,765 stars+932 今日

速览

LiteParse 是一个由 LlamaIndex 团队开发的开源文档解析工具,专为 AI 应用设计。它具备极高的解析速度和准确性,能够智能处理复杂文档布局,轻松集成到 RAG(检索增强生成)等 AI 数据管道中。

AI 深度解读

LiteParse:专注本地化、轻量级的高性能 PDF 解析工具

这是什么

LiteParse 是由 run-llama 团队开源的一款独立、专注于“快速且轻量”的 PDF 解析工具。该项目主要使用 Rust 编写,旨在提供高质量的文本空间解析(Spatial Text Parsing),并返回包含边界框(Bounding Boxes)的结构化数据。

与依赖云端 API 或集成专有大语言模型(LLM)功能的解析器不同,LiteParse 强调完全本地运行(Everything runs locally),无需任何云依赖或专有 LLM 功能。它通过底层的 PDFium 库进行文本提取,并结合灵活的 OCR 系统,为开发者提供精准的文字定位信息。

解决的问题

在构建基于 LLM 的应用(如 RAG 系统、文档智能 Agent)时,开发者常面临以下痛点:

  1. 云端依赖与隐私顾虑:许多主流解析服务(如 LlamaParse 的云端版)需要上传文档到服务器,对于敏感数据或需要严格数据隐私的场景不适用。
  2. 本地解析性能瓶颈:传统的本地解析工具往往速度较慢,或者无法提供精确的文本空间位置信息,导致后续处理(如表格还原、多栏排版重建)困难。
  3. 复杂文档处理需求:虽然 LiteParse 专注于轻量级解析,但项目方也明确指出,对于极度复杂的文档(如密集表格、多栏布局、图表、手写体或扫描件),如果本地解析效果不佳,建议转向其商业产品 LlamaParse,后者专为生产级文档流水线设计,能提供更干净的 Markdown 和结构化数据。
  4. Agent 视觉信息缺失:纯文本解析无法捕捉文档中的视觉元素。LiteParse 提供了截图生成功能,帮助 LLM Agent 通过视觉上下文理解文档内容。

核心功能

LiteParse 的核心架构围绕“输入转换 -> 核心提取 -> 输出绑定”展开,支持多种语言绑定和平台。

1. 多格式输入支持

除了原生支持 PDF,LiteParse 通过集成 LibreOfficeImageMagick,支持自动将以下格式转换为 PDF 后再进行解析:

  • Word: .doc, .docx, .docm, .odt, .rtf, .pages
  • PowerPoint: .ppt, .pptx, .pptm, .odp, .key
  • Spreadsheets: .xls, .xlsx, .xlsm, .ods, .csv, .tsv, .numbers
  • Images: 支持直接解析图片文件。

2. 核心解析引擎

  • Text Extraction: 使用 PDFium C library 进行高效的文本提取。
  • Selective OCR: 提供灵活的 OCR 系统。
    • 内置 Tesseract: 零配置,随库捆绑,开箱即用。
    • HTTP Servers: 可接入任意 OCR 服务器(如 EasyOCR, PaddleOCR 或自定义服务)。
    • 标准 API: 定义了简单的 OCR API 规范,要求 POST /ocr 端点,返回包含 text, bboxconfidence 的 JSON。
  • Grid Projection: 进行空间布局重建,将提取的文本映射回原始页面的坐标空间。

3. 多语言绑定与平台

  • Bindings: 提供 Rust, Node.js/TypeScript (via napi-rs), Python (via PyO3), 以及 Browser/WASM (via wasm-bindgen) 的绑定。
  • Platforms: 支持 Linux, macOS (Intel/ARM), Windows。

4. 输出格式

  • JSON: 包含文本及其精确的边界框坐标(bbox: [x1, y1, x2, y2])。
  • Text: 保留布局的纯文本格式。
  • Screenshots: 生成高质量 PNG 截图,供 LLM Agent 进行视觉分析。

亮点 / 与同类相比

| 特性 | LiteParse | 传统本地解析器 (如 PyPDF2, pdfplumber) | 云端解析服务 (如 LlamaParse Cloud, AWS Textract) | | :--- | :--- | :--- | :--- | | 运行环境 | 完全本地 | 完全本地 | 云端 | | 速度/性能 | 极快 (Rust 核心, PDFium) | 中等/慢 | 取决于网络和服务端负载 | | 空间信息 | 原生支持 Bounding Boxes | 部分支持,实现复杂 | 通常提供结构化数据 | | OCR 集成 | 灵活 (内置 Tesseract 或 HTTP 插件) | 通常需额外配置复杂库 | 内置高精度 OCR | | 多格式支持 | 广 (自动转换 Word/Excel/PPT) | 通常仅支持 PDF | 广 | | 隐私性 | (数据不出本地) | 高 | 低 (数据需上传) | | 复杂度上限 | 中等 (适合常规文档) | 低 | (适合复杂图表/手写) |

关键亮点:

  • Agent 友好:不仅提供文本,还提供截图和精确坐标,完美契合 LLM Agent 的工作流。
  • 零配置 OCR:内置 Tesseract,无需用户自行安装庞大的 OCR 引擎即可开始使用。
  • 统一 CLI:无论通过 npm, pip 还是 cargo 安装,CLI 命令 (lit) 保持一致,降低学习成本。
  • 轻量级:没有庞大的依赖树,适合嵌入到资源受限的环境或作为微服务的一部分。

适合谁用 / 上手

适合人群

  • LLM 应用开发者:需要本地化、低延迟的文档解析组件,用于构建 RAG 系统或文档处理 Agent。
  • 注重数据隐私的企业:无法将文档上传至第三方云服务,必须在本地完成解析。
  • 需要空间布局信息的开发者:需要精确的文本坐标来还原表格、图表或处理多栏排版。
  • 全栈开发者:需要同时支持 Python, Node.js 和 Web (WASM) 环境的统一解析方案。

上手指南

1. 安装

LiteParse 支持多种包管理器,安装后均使用 lit 命令。

# Node.js / TypeScript
npm install -g liteparse

# Python
pip install liteparse

# Rust
cargo install liteparse

# 作为 Agent Skill 安装 (通过 skills CLI)
npx skills add run-llama/llamaparse-agent-skills --skill liteparse

2. 基本使用示例

解析 PDF 并输出 JSON(含边界框):

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

生成截图供 Agent 使用:

# 生成所有页面的截图
lit screenshot document.pdf -o ./screenshots

# 生成特定页面,自定义 DPI
lit screenshot document.pdf --target-pages "1,3,5" --dpi 300 -o ./screenshots

批量解析目录:

lit batch-parse ./input-directory ./output-directory

3. OCR 配置

  • 默认使用内置 Tesseract:直接运行 lit parse document.pdf 即可,默认语言为英语。
  • 指定语言
    lit parse document.pdf --ocr-language fra  # 法语
    
  • 离线环境:设置 TESSDATA_PREFIX 环境变量指向包含 .traineddata 文件的目录。

查看原文 →github.com