opendataloader-project/opendataloader-pdf

PDF Parser for AI-ready data. Automate PDF accessibility. Open-source.

OpenDataLoader PDF – AI 就绪的 PDF 解析与无障碍

功能 – 将 PDF(数字、扫描或已标记)转换为结构化、AI 友好的格式:

  • Markdown、JSON(带每个元素的边界框)、HTML – 可直接用于分块和检索增强生成。
  • 标记 PDF – 自动添加 PDF/UA 兼容标签,以便屏幕阅读器可以阅读文档。
  • 企业附加组件 – PDF/UA-1/2 导出和可视化“无障碍工作室”。

重要性 – PDF 内容对 LLM 来说非常困难:阅读顺序丢失、表格断裂,并且没有用于引用的坐标。OpenDataLoader PDF 提供确定性的本地解析器以及可选的“混合”AI 模式,将困难页面路由到远程模型,在开源 PDF 解析器中获得最高基准分数(总体 0.907,表格 0.928)。

关键技术点

  • 本地引擎(Java 11+,从 Python/Node/Java SDK 调用)通过 XY-Cut++ 阅读顺序检测提供快速、确定性的输出。
  • 混合模式 – 轻量级服务器(opendataloader-pdf-hybrid)将复杂页面转发到 AI 后端进行 OCR、表格重建、公式提取(LaTeX)和图像描述生成(使用 256M SmolVLM 模型)。这在无边框表格上产生 >90% 的表格准确率。
  • 边界框 – 每个元素(文本、标题、列表、图像、表格、公式)的边界框可在 RAG 管道中实现精确的源引用。
  • 无障碍 – 免费自动标记遵循 PDF 协会的 Well-Tagged PDF 规范,并通过 veraPDF 验证。完整的 PDF/UA 合规性作为付费企业功能提供。
  • 多语言 OCR – 通过 EasyOCR(默认)或替代引擎(RapidOCR、Tesseract、Apple Vision、NVIDIA Nemotron OCR)支持 80 多种语言。

如何使用(快速开始)

pip install -U opendataloader-pdf   # Python SDK(需要 Java 11+)
import opendataloader_pdf
opendataloader_pdf.convert(
    input_path=["file1.pdf", "folder/"],
    output_dir="out/",
    format="markdown,json"
)

Node 和 Java SDK 可用类似的命令。

何时启用混合模式 – 对于包含以下内容的 PDF:

  • 复杂或无边框表格
  • 扫描图像(需要 OCR)
  • 数学公式
  • 需要 AI 生成替代文本的图表 安装额外依赖并运行后端服务器,例如:
pip install "opendataloader-pdf[hybrid]"
opendataloader-pdf-hybrid --port 5002   # 启动 AI 服务器
opendataloader-pdf --hybrid docling-fast file.pdf   # 客户端调用

性能 – 本地模式处理一页约 0.015 秒;混合模式为 AI 增强页面每页增加约 0.45 秒。核心解析器不需要 GPU;AI 增强在 CPU(或可选的 GPU 加速 OCR 后端)上运行。

生态系统 – 该库在 PyPI、npm 和 Maven Central 上发布,可轻松嵌入 Python、JavaScript 或 Java 应用程序。提供了 LangChain 集成以实现无缝 RAG 管道。

许可证与定价 – 核心提取和自动标记为 Apache-2.0(免费)。PDF/UA 导出、可视化无障碍工作室和企业级支持是商业附加组件。


简而言之,OpenDataLoader PDF 是一个真正的开源工具,将 PDF 解析和无障碍与现代 LLM 驱动工作流的需求连接起来。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目