LiteParse 是一个快速、开源的文档解析器,核心用 Rust 编写,提供 Python 与 Node 绑定,专注于本地、保留版面布局的文本抽取,并返回带边界框(bounding boxes)的空间文本。它不生成 Markdown,也不调用云端大模型。输出为保留布局的纯文本,或结构化 JSON,其中每页包含 text_items(位置、字体元数据、可选置信度)。
版本说明:示例针对 liteparse 2.0.0(PyPI,2026 年 5 月)。上游 V1 分支为旧版,本技能仅记录 V2 / main。
用途
当你需要以下能力时使用 LiteParse:
- 无需云端依赖,快速本地解析 PDF 或转换后的 Office/图片文件
- 带边界框的空间文本,用于版面感知的 RAG、引用溯源或图表区域逻辑
- 对扫描版 PDF 或图片运行 OCR(内置 Tesseract,或用户自建的 HTTP OCR 服务器)
- 为必须查看图表、插图或手写的多模态智能体生成页面截图(PNG)
- 批量摄取文献文件夹、补充 PDF 或协议库
- 解析页面子集或密码保护的 PDF
不适用场景
- 需要供 LLM 摄取用的 Markdown(EPUB、音频、YouTube、HTML):改用 markitdown 技能
- 合并/拆分 PDF、表单、水印、旋转:改用 pdf 技能
- 密集表格、手写、生产级云端流水线:改用 LlamaParse(云端,需单独注册)
安装
uv pip install "liteparse==2.0.0"
这会安装 Python 绑定与 lit CLI。验证:
lit --help python -c "import liteparse; print(liteparse.version)"
可选系统工具(用于非 PDF 输入):
- LibreOffice — Word、Excel、PowerPoint、OpenDocument、CSV/TSV
- ImageMagick — PNG、JPEG、TIFF、WebP、SVG 等
Node.js / TypeScript(可选):npm i @llamaindex/liteparse
快速开始
Python:
from liteparse import LiteParse
parser = LiteParse(quiet=True) result = parser.parse("paper.pdf") print(result.text)
for page in result.pages: print(f"Page {page.page_num}: {len(page.text_items)} items")
CLI:
保留布局的文本(默认)
lit parse paper.pdf
带边界框的结构化 JSON
lit parse paper.pdf --format json -o paper.json
在文本原生 PDF 上禁用 OCR(更快)
lit parse paper.pdf --no-ocr
主要能力与使用方式
- 解析为保留布局的文本:适合快速获取全文,或喂给不需要坐标的分块器。
parser = LiteParse(ocr_enabled=True, quiet=True) result = parser.parse("document.pdf") full_text = result.text
lit parse document.pdf -o output.txt
- 解析为结构化 JSON(含边界框):用于构建版面感知 RAG、高亮源区域,或将文本与截图关联。
import json from liteparse import LiteParse
parser = LiteParse(output_format="json", quiet=True) result = parser.parse("document.pdf")
for page in result.pages: for item in page.text_items: bbox = (item.x, item.y, item.width, item.height) # item.text, item.confidence, item.font_name, item.font_size
lit parse document.pdf --format json -o document.json
- 解析指定页面:
parser = LiteParse(target_pages="1-5,10,15-20", quiet=True) result = parser.parse("long_paper.pdf")
lit parse long_paper.pdf --target-pages "1-5,10"
- 从字节或 stdin 解析:适用于上传、S3 下载或管道传输远程 PDF。
with open("document.pdf", "rb") as f: result = parser.parse(f.read())
curl -sL https://example.com/report.pdf | lit parse -
- 为多模态智能体生成页面截图:截图可捕获纯文本抽取遗漏的视觉内容(插图、复杂表格、手写)。
from pathlib import Path
parser = LiteParse(dpi=150, quiet=True) shots = parser.screenshot("document.pdf", page_numbers=[1, 2, 3]) out = Path("screenshots") out.mkdir(exist_ok=True) for s in shots: (out / f"page_{s.page_num}.png").write_bytes(s.image_bytes)
lit screenshot document.pdf --target-pages "1,3,5" -o ./screenshots lit screenshot document.pdf --dpi 300 -o ./screenshots
当智能体需要同一页面的坐标与像素时,可组合 JSON 解析与截图。
- 批量解析目录:大型语料优先使用 CLI(并行 OCR 工作进程)或内置脚本。
lit batch-parse ./papers ./parsed --format json --recursive lit batch-parse ./papers ./parsed --extension .pdf --no-ocr
python scripts/batch_parse_dir.py ./papers ./parsed --format json --recursive
- OCR 配置:OCR 默认开启,内置 Tesseract,基础英文 OCR 无需额外安装。
parser = LiteParse( ocr_enabled=True, ocr_language="eng", # Tesseract 代码:fra、deu 等 num_workers=4, # 并行 OCR(默认:CPU 核心数 - 1) dpi=150, # DPI 越高 OCR 越好,但更慢 )
lit parse scan.pdf --ocr-language fra lit parse scan.pdf --no-ocr lit parse scan.pdf --ocr-server-url http://localhost:8080/ocr
离线/气隙环境:将 TESSDATA_PREFIX 指向存放 .traineddata 文件的目录,或传入 --tessdata-path。
- 加密 PDF:
parser = LiteParse(password="secret", quiet=True) result = parser.parse("protected.pdf")
lit parse protected.pdf --password secret
- 按短语搜索文本项:合并相邻项并返回短语的组合边界框(如章节标题)。
from liteparse import search_items
page = result.get_page(1) matches = search_items(page.text_items, "Materials and Methods", case_sensitive=False)
多格式输入
- PDF:.pdf,原生支持
- Office:.docx、.xlsx、.pptx、.doc、.odt 等,需 LibreOffice
- 图片:.png、.jpg、.tiff、.webp、.svg 等,需 ImageMagick
文件会先内部转换为 PDF,再解析。若缺少转换工具,解析会以可操作的错误失败——安装依赖后重试。
性能建议
- 对原生数字 PDF 使用 --no-ocr — 提速最明显
- 使用 target_pages — 只解析方法/补充材料等章节
- 使用 num_workers — 跨 CPU 核心扩展 OCR
- 使用 max_pages — 限制超大文件(默认 1000)
- 使用 lit batch-parse — 目录级任务,配合 --recursive 与 --extension
- 当 OCR 质量已足够时降低 dpi(如 100)
适用场景
- 版面感知 RAG 与引用溯源
- 扫描件与图片 OCR
- 多模态智能体的页面截图
- 文献、补充材料、协议库的批量摄取
- 页面子集与加密 PDF 解析
限制
- 不生成 Markdown,不调用云端 LLM
- 非 PDF 输入依赖 LibreOffice 与 ImageMagick
- 密集表格、手写、生产级云端流水线建议改用 LlamaParse
- 版本相关细节可能过时,应以所安装版本的官方文档为准
资源
- GitHub:https://github.com/run-llama/liteparse
- 文档:https://developers.llamaindex.ai/liteparse/
- PyPI:https://pypi.org/project/liteparse/2.0.0/
- npm:https://www.npmjs.com/package/@llamaindex/liteparse
- OCR API 规范:https://github.com/run-llama/liteparse/blob/main/OCR_API_SPEC.md