本文根據 Docling 官方倉庫 README 整理,資料核對於 2026-10-11。文中代碼和命令取自官方 README,沒有在本機運行驗證。
適用於誰
- 搜「docling 是什麼」「docling 使用」「docling 教學」的人;
- 要把一批 PDF、Word、PPT 餵給大模型或者導入知識庫,直接複製粘貼出來的文字亂成一團的人;
- 資料涉及內部資訊,不想上載到在線轉換服務的人。
結論先說
- Docling 是一個開源的文檔解析工具包:把多種格式的文檔解析成統一的結構,再導出成 Markdown、HTML、JSON 等,方便接到生成式 AI 的流程裏。
- 它的強項是 PDF:能識別頁面版面、閱讀順序、表格結構、代碼、公式,並對圖片分類。
- 在本地運行。官方特別提到適合敏感數據和隔離網絡環境。
- 安裝一行:
pip install docling,需要 Python 3.10 及以上,macOS、Linux、Windows 都支持。 - 用起來也很短:Python 裏五行,命令行裏一條
docling 文件或網址。 - 代碼是 MIT 許可;所用各模型的許可見各自的原始包。
一、來歷
README 的說明:項目由 IBM 研究院蘇黎世的 AI for knowledge 團隊發起,現在是 LF AI & Data 基金會託管的項目。
二、能讀什麼、能導出什麼
輸入格式(README 所列):PDF、DOCX、PPTX、XLSX、HTML、EPUB,Apple 的 Pages、Numbers、Keynote,音頻 WAV、MP3,字幕 WebVTT,電郵 EML、MSG,圖片(PNG、TIFF、JPEG 等),LaTeX,以及純文本等。
導出格式:Markdown、HTML、WebVTT、DocTags、DocLang,以及無損的 JSON。
主要能力
| 能力 | 說明 |
|---|---|
| PDF 理解 | 頁面版面、閱讀順序、表格結構、代碼、公式、圖片分類 |
| OCR | 處理掃描版 PDF 和圖片 |
| 視覺語言模型 | 支持多種 VLM,如 Granite Docling |
| 音頻 | 對音頻文件做自動語音識別 |
| 集成 | 可與 LangChain、LlamaIndex、CrewAI、Haystack 配合 |
| MCP 伺服器 | 可以通過 MCP 伺服器接到智能體上 |
為什麼「閱讀順序」和「表格結構」重要:PDF 裏存的是每個字在頁面上的位置,不是段落。雙欄排版、跨頁表格、頁眉頁腳,直接提取文字就會串行、錯位。大模型拿到的是錯亂的文本,回答自然不可靠。
三、安裝
bash
pip install docling
- Python 3.10 及以上(README 註明 3.9 的支持已在 2.70.0 版本移除);
- 支持 macOS、Linux、Windows,x86_64 和 arm64 架構都可以。
建議裝在單獨的虛擬環境裏。
四、Python 用法
README 的示例:
python
from docling.document_converter import DocumentConverter
source = "https://arxiv.org/pdf/2408.09869" # a document via a local path or URL
converter = DocumentConverter()
result = converter.convert(source)
print(result.document.export_to_markdown()) # output: "## Docling Technical Report[...]"
source可以是本地路徑,也可以是網址;converter.convert(source)完成解析,得到統一的文檔對象result.document;export_to_markdown()導出 Markdown。
批量處理時,DocumentConverter 創建一次後重複使用,逐個文件調用 convert 即可。
五、命令行用法
bash
docling https://arxiv.org/pdf/2206.01062
這條命令會在當前目錄寫出一個 Markdown 文件。把網址換成本地文件路徑同樣適用。
用 VLM 管線:
bash
docling --pipeline vlm --vlm-model granite_docling https://arxiv.org/pdf/2206.01062
這條命令改用視覺語言模型(示例裏是 GraniteDocling)來處理頁面。它和預設管線的差別、各自適合的文檔類型以及硬件要求,見官方文檔。預設結果不理想時可以拿同一份文檔對比着試。
六、放進 RAG 流程時的注意點
- 轉完先抽查。挑幾份有代表性的文檔(帶表格的、雙欄的、掃描的),把 Markdown 和原文對一遍,再批量處理;
- 掃描件依賴 OCR。掃描質素差、手寫內容、印章遮擋,識別結果要人工核對,關鍵數字不要直接採信;
- 表格看一眼。合併單元格、跨頁表格最容易出問題。重要的表格可以單獨導出為結構化數據;
- 按標題分段。Markdown 的好處是保留了標題層級,切分知識庫時按小節切,比按固定字數切更不容易把一段完整的意思切斷。分段參數的含義見《Dify 知識庫搭建教學》;
- 保留來源資訊。每個分段記下來自哪個文件、哪一節,回答時才能給出處。
向量庫的選擇見《ChromaDB 是什麼》。
七、和同類工具怎麼選
| 工具 | 特點 |
|---|---|
| Docling | 側重 PDF 的版面、表格、公式理解;本地運行 |
| MarkItDown | 微軟的輕量工具,格式覆蓋廣、依賴少,見《MarkItDown 怎麼用》 |
| MinerU | 面向複雜文檔的解析工具,見《MinerU 是什麼》 |
簡單的判斷:文檔本身是規整的電子版(Word、PPT、文字型 PDF),先用輕量的;學術論文、財報、帶複雜表格的掃描件,用版面理解能力強的。
常見問題
Q:第一次運行很慢?
這類工具首次使用時需要準備模型,之後會快很多。具體下載什麼、放在哪、能否離線預置,以官方文檔為準。
Q:需要 GPU 嗎?
README 的概述裏沒有寫硬件要求。沒有 GPU 也可以先試,文檔量大或用 VLM 管線時再考慮硬件。
Q:能處理中文文檔嗎?
README 沒有專門說明各語言的效果。用你自己的中文樣例測一遍,重點看掃描件的 OCR 結果。
Q:資料很敏感,會不會被上載?
官方的定位是本地執行,適合敏感數據和隔離網絡環境。注意示例裏的 source 如果寫的是網址,程序會去下載那個文件;模型的獲取也可能需要聯網。
參考資料
- docling-project/docling(官方倉庫與 README):https://github.com/docling-project/docling
0 條評論
還沒有評論,來搶沙發~