OpenDataLoader PDF:面向 RAG 的 PDF 解析与自动标记工具
OpenDataLoader PDF 是一个 Apache-2.0 开源工具,用于把 PDF 提取为 Markdown、JSON(含边界框)和 HTML,供 RAG 与 LLM 管线使用;同时提供把无标签 PDF 转为 Tagged PDF 的自动标记能力。其混合模式可调用 AI 后端处理复杂表格、扫描件、公式与图表描述。
工具定位
OpenDataLoader PDF 是一个开源 PDF 解析工具,核心用途有两条:一是把 PDF 转成结构化数据,供 RAG、LLM 管线使用;二是自动为无标签 PDF 生成结构化标签,即 Tagged PDF。
输出与结构化信息
- JSON:按元素输出,每个元素带类型(标题、段落、表格、列表、图片、图注、公式等)、页码、
bounding box(单位 PDF 点,72pt = 1 英寸)与文本内容,可用于溯源引用。 - Markdown:适合切块进入 LLM 上下文。
- HTML / 纯文本 / 标注版 PDF:前者用于网页展示,后者用于可视化调试。
多个格式可组合输出,例如 format="json,markdown"。
本地模式与混合模式
- 本地模式(默认):确定性输出,Java 本地处理;简单页面留在本地。
- 混合模式:把复杂页面路由到 AI 后端,可处理复杂/无边框表格、扫描件 OCR、LaTeX 公式、图片与图表描述。服务端与客户端分别启动,客户端需带
--hybrid docling-fast;公式与图片描述还需--hybrid-mode full。 - 混合模式不要与标记 PDF 的结构树选项
--use-struct-tree同时使用:后者优先,会跳过混合后端并输出警告。
标题层级
布局模型默认把所有标题都标为 1 级,子节与文档标题同深度,不利于 RAG 切块。--heading-hierarchy 依次参考 PDF 大纲、章节编号(1. → 1.1 → 1.1.1)与视觉样式推断深度,层级上限 H6,默认关闭。
OCR 与可选增强
- 扫描件可在混合模式下用
--force-ocr处理,并可指定语言;文本称内置 OCR 支持 80 多种语言、适配 300 DPI 以上低质量扫描件。 - OCR 引擎可选 EasyOCR(默认)、RapidOCR、Tesseract、tesserocr、Apple Vision、NVIDIA Nemotron OCR 或自动选择;各引擎语言代码体系不同,原文建议先用代表性页面比较效果再批量处理。
- 图片描述使用 SmolVLM(256M);成本随图片数量而非尺寸变化,CPU 上单张可能超过一分钟,且转换串行。可用
--picture-area-threshold 0.05只为占页面面积 ≥5% 的图片调用模型,并用--max-file-size限制单文件转换开销。
安全过滤
工具会过滤隐藏文字、页外内容与可疑不可见图层,以降低提示注入风险;--sanitize 可把邮箱、URL、电话等替换为占位符,也可用 --sanitize-rules 指定自定义规则文件(此时仅运行文件中的规则)。
基准与限制
README 给出的基准测试覆盖 200 个真实 PDF:混合模式综合 0.907、表格 0.928、阅读顺序 0.934,本地模式速度 0.015 秒/页;这些数值来自其自建基准,比较时需注意测试集与条件。运行需要 Java 11+,Python 版需 Python 3.11+;工具不处理 Word/Excel/PPT,不要求 GPU。自动标记生成 Tagged PDF 是免费能力,导出 PDF/UA-1/UA-2 属于企业版附加项。提供 Python、Node.js、Java SDK。
> 注:所给原文在自定义清洗规则的正则说明处被截断,该部分细节不完整。
来源与核对说明
- opendataloader-project/opendataloader-pdf ↗https://github.com/opendataloader-project/opendataloader-pdf
本文经 AI 整理及独立自动校对,未做运行验证;自动校对仍可能遗漏问题,请以原始资料为准。
这篇内容对你有帮助吗?
点赞人数由服务器记录,收藏保存在当前浏览器。
继续阅读
ScrapeGraphAI:用 LLM 与图管线做网页抓取的开源 Python 库 →
Sim:构建、部署与管理 AI 智能体和工作流的开源工作区 →