一句话介绍
Docling 是一个开源文档解析引擎,能把 PDF、Word、PPT、Excel、HTML 等各种格式的文档自动转化为 AI 可用的结构化数据(Markdown、JSON、DocTags 等),支持 OCR、表格识别、图表理解,GitHub Star 数已突破 6.5 万。
工具简介
在构建 RAG(检索增强生成)系统或任何 AI 应用时,文档预处理是最基础也是最头疼的环节。PDF 里的表格结构丢失、代码块被截断、图表无法描述、扫描件需要 OCR……这些问题直接决定了下游 AI 模型的理解质量。
Docling 由 IBM Research Zurich 的 Deep Search 团队开发,于 2024 年 8 月发布技术报告,是目前开源社区中最成熟的文档解析工具之一。它不仅仅是一个转换器,而是一个完整的文档理解管道:从解析多格式输入 → 布局理解 → 表格/代码/公式/图表识别 → 统一 DoclingDocument 表示 → 导出为 Markdown、JSON、DocTags 等多种格式。
核心功能
1. 多格式输入支持
Docling 支持远超常见的文档格式:PDF、DOCX、PPTX、XLSX、HTML、EPUB、LaTeX、Markdown、图片(PNG、TIFF、JPEG)、WAV/MP3 音频、WebVTT 字幕、电子邮件(EML、MSG)、ODF 格式(ODT、ODS、ODP),甚至视频文件(MP4、AVI、MOV、MKV、WebM)——后者可提取 ASR 语音转写和关键帧。
2. 高级 PDF 理解
Docling 的 PDF 解析能力远超简单文本提取。它能识别页面布局、阅读顺序、表格结构、代码块、数学公式、图片分类,并且内置了强大的 OCR 引擎处理扫描版 PDF。最新版本还支持图表理解——自动将柱状图、饼图、折线图转换为表格或代码并生成详细描述。
3. 统一文档表示(DoclingDocument)
所有解析结果统一为 DoclingDocument 格式,这是一种表达力强、结构化的内部表示,保留了文档的层次关系(标题、段落、列表、表格、图片等)。用户可以选择导出为 Markdown、HTML、JSON(无损)、DocTags、WebVTT 等格式,也可以输出为 JATS、USPTO 专利、XBRL 财务等专业 XML 格式。
4. VLM 视觉语言模型集成
Docling 支持接入视觉语言模型(VLM)进行深度理解。例如使用 IBM 的 GraniteDocling(258M 参数)或其他 VLM 模型,可以对文档中的复杂图表、手写内容、低质量扫描件进行更智能的理解和描述生成。
5. 无缝 AI 框架集成
Docling 提供了 LangChain、LlamaIndex、CrewAI、Haystack 等主流 AI 框架的官方集成,开箱即用。同时还提供 MCP Server,可以连接任何支持 MCP 协议的 AI Agent。也可以直接以 API Server(docling-serve)方式部署,供多应用调用。
适用人群
- AI 应用开发者:构建 RAG 系统、知识库问答、文档摘要等应用时需要高质量的文档预处理
- 数据科学家:从海量 PDF/Word 报告/论文中提取结构化数据
- 企业用户:需要处理合同、财报、专利、邮件等敏感文档,Docling 支持本地执行,无需上传到第三方服务
- 研究人员:解析学术论文(支持 JATS 格式)、专利文档(支持 USPTO 格式)
与同类工具对比
| 特性 | Docling | LlamaParse | Marker | Unstructured |
|---|---|---|---|---|
| 开源 | ✅ MIT | ❌ 付费服务 | ✅ 开源 | ✅ 开源 |
| 本地运行 | ✅ | ❌ | ✅ | ✅ |
| 表格识别 | ✅ 高级 | ✅ | ⚠️ 基础 | ⚠️ 基础 |
| OCR 支持 | ✅ | ✅ | ✅ | ✅ |
| 图表理解 | ✅ 最新支持 | ❌ | ❌ | ❌ |
| 视频/音频 | ✅ | ❌ | ❌ | ❌ |
| 专业格式 | JATS/USPTO/XBRL | ❌ | ❌ | 部分 |
| AI 框架集成 | LangChain/LlamaIndex/CrewAI | ✅ | ❌ | ✅ |
| MCP 支持 | ✅ | ❌ | ❌ | ❌ |
| GitHub Star | 65K+ | N/A | 30K+ | 8K+ |
总结:Docling 在表格识别、专业格式支持、视频/音频处理和 AI 框架生态集成方面全面领先,同时保持完全开源和本地运行,是目前文档解析领域的最佳选择之一。
如何使用
安装
pip install docling
要求 Python 3.10 或更高版本。
命令行使用(最简单)
# 将论文 PDF 转换为 Markdown
docling https://arxiv.org/pdf/2206.01062
# 使用 VLM 模型进行深度理解
docling --pipeline vlm --vlm-model granite_docling https://arxiv.org/pdf/2206.01062
Python 使用(推荐)
from docling.document_converter import DocumentConverter
source = "https://arxiv.org/pdf/2408.09869" # 也支持本地路径
converter = DocumentConverter()
result = converter.convert(source)
# 导出为 Markdown
markdown_output = result.document.export_to_markdown()
print(markdown_output)
# 导出为 JSON(无损保留结构)
json_output = result.document.export_to_dict()
# 导出为 DocTags
doctags_output = result.document.export_to_doctags()
与 LangChain 集成
from docling.document_converter import DocumentConverter
from langchain.document_loaders import DoclingLoader
loader = DoclingLoader("path/to/document.pdf")
docs = loader.load()
部署为 API 服务
pip install docling-serve
docling-serve --port 8000
然后通过 HTTP API 调用:POST http://localhost:8000/convert
总结
Docling 是目前开源界最全面的文档解析工具,从 PDF 到视频、从表格到图表、从 OCR 到 VLM,覆盖了 AI 应用开发中几乎所有文档预处理场景。65K+ GitHub Star 和 IBM Research 的背景保证了其持续维护和快速迭代。
推荐指数:★★★★★
如果你正在构建 RAG 系统或任何需要处理文档的 AI 应用,Docling 几乎是必装工具。它的多格式支持、高质量表格识别、本地运行能力以及与主流 AI 框架的无缝集成,让它从众多文档解析工具中脱颖而出。
- 项目地址:https://github.com/docling-project/docling
- 文档:https://docling-project.github.io/docling/
- 技术报告:https://arxiv.org/abs/2408.09869
解析后的 Markdown 或 JSON 输出可用本站的 JSON 格式化工具 进行验证和美化。