Docling 是一个开源项目,由 IBM Research Zurich 的 AI for knowledge 团队发起,现托管于 LF AI & Data Foundation。其核心目标是简化文档处理,将多样化的文档格式解析为适合生成式 AI 使用的结构化内容。
用途: Docling 主要用于解析文档并转换为机器可读的格式,以便于下游的生成式 AI 应用、检索增强生成(RAG)、智能体等场景使用。它特别强调对 PDF 的高级理解,并支持多种文件类型。
主要能力:
- 解析多种文档格式:包括 PDF、DOCX、PPTX、XLSX、HTML、EPUB、Apple Pages/Numbers/Keynote、WAV、MP3、WebVTT、Box Notes、邮件格式(EML、MSG)、图像(PNG、TIFF、JPEG 等)、LaTeX、DocLang、纯文本等。
- 高级 PDF 理解:包括页面布局、阅读顺序、表格结构、代码、公式、图像分类等。
- 统一的 DoclingDocument 表示格式,便于后续处理。
- 多种导出格式:Markdown、HTML、WebVTT、DocLang、DocTags 和无损 JSON。
- 支持特定 XML 模式:DocLang、USPTO 专利、JATS 文章、XBRL 财务报告。
- 本地执行能力:适合敏感数据和气隙环境。
- 即插即用集成:与 LangChain、LlamaIndex、Crew AI、Haystack 等智能体 AI 框架集成。
- 广泛的 OCR 支持:针对扫描版 PDF 和图像。
- 支持多种视觉语言模型(如 GraniteDocling)。
- 音频支持:使用自动语音识别(ASR)模型。
- 可通过 MCP 服务器连接任何智能体。
- 可通过 API 服务器(docling-serve)作为服务运行。
- 提供简单便捷的 CLI。
- 解析视频文件(MP4、AVI、MOV、MKV、WebM),提取 ASR 转录和代表性关键帧。
- 解析 ODF 文件(.odt、.ods、.odp)。
- 解析 XBRL 文档。
- 解析邮件文件(.eml、.msg)。
- 解析 EPUB 文件。
- 解析 Apple Pages、Numbers、Keynote 文档。
- 解析纯文本文件(.txt、.text)和 Markdown 超集(.qmd、.Rmd)。
- 图表理解:将条形图、饼图、折线图转换为表格或代码,并添加详细描述。
- 元数据提取:标题、作者、参考文献和语言。
- 复杂化学理解:分子结构。
使用方式:
- 安装:需 Python 3.10 或更高版本(2.70.0 版本已放弃 Python 3.9 支持)。支持 macOS、Linux 和 Windows 的 x86_64 和 arm64 架构。详细安装说明见文档。
- CLI 使用:通过命令行转换文档,生成包含结构化内容的 .md 文件。也可通过 CLI 使用 GraniteDocling 等视觉语言模型。
- Python 使用(推荐):提供更高级的用法和配置选项。
- 文档和示例:官方文档涵盖安装、使用、概念、配方、扩展等;示例展示不同应用场景。
- 集成:与流行框架和工具原生集成。
适用场景:
- 为生成式 AI 准备文档数据。
- 构建 RAG 管道或智能体应用。
- 处理敏感数据或气隙环境中的文档。
- 需要从扫描件或图像中提取文本和结构。
- 处理包含表格、公式、代码的复杂 PDF。
- 解析音频和视频内容以获取转录和关键帧。
- 处理财务报告、专利、学术文章等特定领域文档。
限制:
- 需要 Python 3.10 或更高版本。
- 部分功能依赖外部模型,模型许可证需参考原始包。
- 具体性能、准确性、处理速度等未在提供资料中说明。
其他信息: Docling 代码库采用 MIT 许可证。技术报告可供查阅。项目欢迎贡献,并提供讨论区获取帮助和支持。