Docling — AI 文档处理开源库 Vibe 项目

Docling(docling-project.github.io/docling)是一款专注于文档智能处理的开源 Py

Docling(docling-project.github.io/docling)是一款专注于文档智能处理的开源 Python 库,能够解析 PDF、DOCX、PPTX、XLSX、HTML、EPUB、图片、音频、视频等数十种常见文档格式,并将内容统一转换为结构化的 DoclingDocument 表示格式。项目由 IBM Research 主导开发(LF AI & Data 基金会托管),支持本地离线运行,提供 MCP 服务器和 REST API 两种接入方式,可无缝集成到 LangChain、LlamaIndex、Crew AI、Haystack 等主流 AI 应用框架中。

核心功能

多格式文档解析

支持解析 PDF(含高级版面分析、表格结构识别、公式识别)、DOCX、PPTX、XLSX、HTML、EPUB、Apple Pages、LaTeX、ODF(办公文档)、电子邮件(EML、MSG)、图片、音频(WAV、MP3)、视频(MP4、AVI、MOV、MKV、WebM,含 ASR 字幕和关键帧)、WebVTT 字幕以及纯文本和 Markdown 等数十种格式。

专业 PDF 深度理解

内置高级 PDF 解析引擎,能够准确识别页面布局、阅读顺序、表格结构、代码块和数学公式,并支持对扫描版 PDF 和图片型 PDF 的 OCR 文字识别。同时支持从 PDF 书签、大纲编号和字体样式中恢复文档层级结构。

统一文档表示格式(DoclingDocument)

所有格式的文档均被转换为统一的 DoclingDocument 结构化表示,支持导出为 Markdown、HTML、WebVTT、DocLang、DocTags(基于 arxiv:2503.11576)和纯 JSON 等多种格式,满足不同下游任务的格式需求。

多行业 XML Schema 支持

内置 DocLang、USPTO 专利、JATS 学术期刊和 XBRL 财务报告等专用 XML Schema 导出支持,金融机构、律师事务所和学术出版机构可直接使用 Docling 处理对应类型的专业文档。

本地离线执行

支持在不访问外部网络的环境中完整运行,数据无需上传云端,适合对数据隐私有严格要求的医疗、金融、政府等场景。

LangChain / LlamaIndex / Crew AI / Haystack 集成

提供官方插件,可作为 LangChain DocumentLoader、LlamaIndex Reader、Crew AI 工具和 Haystack 组件使用,开发者无需额外部署即可在现有 RAG 和 Agent 架构中引入 Docling 文档处理能力。

MCP 服务器与 API 服务

提供开箱即用的 MCP 服务器(通过 Model Context Protocol 供 AI 智能体调用)和基于 FastAPI 的 REST API 服务(docling-serve),支持容器化部署和水平扩缩容。

OCR 文字识别

集成多种 OCR 引擎,支持对扫描版 PDF 和图片中的文字进行识别,配合文档格式解析实现「扫描件即文本」的处理体验。

技术实现

Docling 的技术架构分为三层:解析层、转换层和导出层。

解析层针对每种文档格式实现专门的解析器。以 PDF 为例,解析器首先通过版面分析算法将页面划分为文本区域、表格区域、图像区域和公式区域;随后对表格区域应用表格结构识别模型,输出单元格坐标和跨行跨列信息;对公式区域使用公式识别模型将图片公式转换为 LaTeX 或 MathML 表示;最后通过阅读顺序算法将所有区域按人类阅读习惯排序。

转换层将不同格式的解析结果统一映射为 DoclingDocument。DoclingDocument 是一个基于 Pydantic 的嵌套数据模型,包含文档元数据、页面列表、表格列表、图像列表、公式列表、章节树等核心元素,每个元素均有唯一的 Item ID,支持跨引用和增量更新。

导出层接收 DoclingDocument 对象,根据目标格式模板生成最终输出。导出器支持流式输出,适合处理超大文档;XBRL 导出器内置财务语义校验,确保生成的财务报告符合 SEC 规范。

项目使用 Python 开发,依赖Astral 的 uv 作为包管理器,ruff 作为代码检查工具,pydantic 作为数据验证基础库,安装方式为 pip install docling,最新版本为 0.x 系列。

快速上手

第一步:安装 Docling

在 Python 3.9+ 环境中执行以下命令安装 Docling:

pip install docling

如需 OCR 功能,需额外安装 OCR 相关依赖:

pip install "docling[ocr]"

第二步:解析本地文档

from docling.document_converter import DocumentConverter converter = DocumentConverter() result = converter.convert("path/to/document.pdf") print(result.export_to_markdown())

第三步:导出为目标格式

json_output = result.export_to_json() doclang_output = result.export_to_doclang() xbrl_output = result.export_to_xbrl()

第四步:集成到 RAG 系统

from langchain_community.document_loaders import DoclingLoader loader = DoclingLoader(file_path="document.pdf") docs = loader.load()

第五步:部署 MCP 服务器

docling mcp-server --port 8080

启动后,AI 智能体即可通过 MCP 协议调用文档处理能力,无需了解底层实现细节。

适用人群

  • RAG 应用开发者:需要将 PDF、Word、PPT 等非结构化文档转换为可检索文本的 AI 应用工程师
  • 企业数字化部门:需要处理大量历史纸质/电子文档并建立知识库的组织
  • 金融/法律专业人士:需要批量解析 XBRL 财务报告、专利文档、学术论文等专业资料的从业者
  • AI 研究人员:需要标准化文档处理管道来进行训练数据清洗和预处理的研究团队
  • 数据工程师:需要构建文档 ETL 流水线的后端和数据平台工程师

官方链接

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论