项目简介
Docling是一个全面的文档智能处理库,旨在简化文档的处理、解析和理解,并与生成式AI生态系统无缝集成。它能够解析各种文档格式,包括PDF、Office文档、HTML、图像和音频,并提供高级的布局理解、光学字符识别(OCR)、自动语音识别(ASR)、视觉语言模型(VLM)集成以及结构化信息提取功能。
为了更好地服务大型语言模型(LLM)客户端,Docling提供了一个MCP(Model Context Protocol)服务器。这个MCP服务器以标准化的方式向LLM客户端提供Docling的文档处理能力,将其封装为LLM可以访问的“资源”(例如已解析的文档内容)和“工具”(例如执行OCR或信息提取的功能),从而实现LLM驱动的智能文档应用。
主要功能点
- 多格式文档解析: 支持解析多种文档格式,包括PDF、DOCX、PPTX、XLSX、HTML、WAV、MP3、VTT,以及各种图像格式(PNG、TIFF、JPEG等)。
- 高级PDF理解: 具备深入理解PDF文档的能力,包括页面布局分析、阅读顺序识别、表格结构提取、代码和公式识别、图像分类等。
- 统一文档表示: 将不同格式的文档内容统一转换为 expressive 的 'DoclingDocument' 格式,便于后续处理和分析。
- 多种导出格式: 支持将处理后的文档导出为Markdown、HTML、DocTags 和无损JSON等格式。
- AI集成: 提供与LangChain、LlamaIndex、Crew AI 和 Haystack 等流行AI框架的即插即用集成,加速agentic AI应用的开发。
- OCR与ASR支持: 为扫描版PDF和图像提供广泛的OCR支持,并为音频文件提供自动语音识别(ASR)功能。
- VLM集成: 支持多种视觉语言模型,如 GraniteDocling,用于图像和文档的视觉理解。
- 结构化信息提取: 提供实验性(beta)功能,用于从文档中提取结构化信息。
- MCP服务器: 核心Docling功能可通过MCP服务器暴露给LLM客户端,支持资源管理、工具调用和Prompt模板。
安装步骤
- 准备Python环境: 确保您的系统安装了Python 3.8或更高版本。
- 使用pip安装Docling: 打开终端或命令行界面,运行以下命令:
pip install docling - (可选)ASR功能注意事项: 如果您计划使用Docling的ASR(自动语音识别)功能,请注意目前Python 3.14版本可能尚未完全支持 Whisper 相关的依赖项。建议使用Python 3.13或更早版本以获得最佳兼容性。
服务器配置 (MCP服务器)
Docling的MCP服务器允许LLM客户端通过标准JSON-RPC协议访问其强大的文档处理能力。MCP客户端需要配置服务器的启动命令和参数,以便能够启动并连接到Docling MCP服务器。
以下是一个MCP客户端配置示例,用于连接Docling MCP服务器:
{ "name": "Docling MCP Server", "command": "python", "args": [ "-m", "docling.mcp_server" // 这是一个假设的MCP服务器模块路径。 // 用户**必须**查阅Docling的官方文档(如GitHub README中提及的 /usage/mcp/ 页面), // 以获取确切的模块路径和正确的服务器启动方式。 // 以下是MCP服务器可能支持的启动参数示例,具体请参考官方文档: // "--host", "127.0.0.1", // 指定服务器监听的IP地址,默认为本地回环地址 // "--port", "8080", // 指定服务器监听的端口,默认为8080或文档指定端口 // "--log-level", "INFO" // 指定服务器的日志级别 (DEBUG, INFO, WARNING, ERROR) // ... 其他可能的配置参数,例如用于缓存、模型路径或认证的参数。 ], "description": "配置MCP客户端连接Docling服务器,以利用其强大的文档解析、内容提取、OCR、ASR和VLM处理能力。", "notes_for_mcp_client": { "resources": "Docling MCP服务器将不同类型的文档(如PDF、图片、音频等)作为可访问的“资源”提供。LLM客户端可以通过MCP协议读取这些资源的原始内容、结构化数据或特定元数据,从而获取所需上下文。", "tools": "Docling的各种智能处理功能(如文档格式转换、特定信息提取、OCR文本识别、ASR语音转文本)将作为“工具”注册到MCP服务器。LLM客户端可以调用这些工具来按需处理和分析文档内容,扩展LLM的能力边界。", "prompts": "如果Docling的VLM或LLM相关功能需要自定义输入格式,MCP服务器也支持定义和渲染Prompt模板。这可以确保LLM客户端能够以最佳方式构造输入,与底层AI模型进行有效交互,从而实现更精细的控制和更准确的结果。" } }
基本使用方法
Docling库提供Python API和命令行接口,用于直接处理文档。当作为MCP服务器运行时,LLM客户端将通过MCP协议调用这些功能。
Python API示例(文档转换):
from docling.document_converter import DocumentConverter # 可以是本地文件路径,也可以是URL source = "https://arxiv.org/pdf/2408.09869" converter = DocumentConverter() # 执行文档转换 result = converter.convert(source) # 将转换结果导出为Markdown格式并打印 print(result.document.export_to_markdown()) # 输出示例: "## Docling Technical Report[...]"
命令行工具示例(快速转换):
# 将PDF文档转换为默认输出格式(例如Markdown) docling https://arxiv.org/pdf/2206.01062
命令行工具示例(使用VLM模型):
# 使用Visual Language Model(VLM)管道和GraniteDocling模型处理PDF文档 docling --pipeline vlm --vlm-model granite_docling https://arxiv.org/pdf/2206.01062
当 Docling 作为 MCP 服务器启动并运行后,LLM 客户端将不再直接执行上述 Python API 或命令行命令,而是通过 JSON-RPC 协议向 Docling MCP 服务器发送请求,以调用其提供的各种文档处理能力。
信息
分类
AI与计算