Select Page
Docling 是什麼?PDF 轉 Markdown、OCR 與 VLM 文件解析實戰

Docling 是什麼?PDF 轉 Markdown、OCR 與 VLM 文件解析實戰

企業知識庫和 AI Agent 最麻煩的地方,常常不是模型不夠聰明,而是資料進不來。PDF、掃描合約、研究報告、表格、圖片型文件,看起來都只是文件,但對 RAG 或 Agent 來說,它們必須先被轉成穩定、乾淨、可引用的結構化內容。

Docling 就是在解這個入口問題。它不是只把 PDF 拆成純文字,而是把文件版面、閱讀順序、表格、公式、圖片、OCR 結果整理成 AI 更容易消化的格式,例如 Markdown、HTML、JSON。對要做企業知識庫的人來說,這一層通常比後面換哪一個聊天模型更關鍵。

Docling 適合解決什麼問題

Docling 是 IBM Research Zurich 發起的開源專案,採用 MIT License。它支援 PDF、DOCX、PPTX、XLSX、HTML、EPUB、圖片與音訊等格式,官方也強調它能和 LangChain、LlamaIndex、CrewAI、Haystack 這類生成式 AI 工具鏈整合。

如果只是把少量文件轉成 Markdown,微軟的 MarkItDown 會很輕巧,之前我也整理過 MarkItDown 教學,但 Docling 的定位更偏向文件理解管線,尤其是 PDF 版面、表格、掃描文件、VLM 輔助解析這些較複雜的場景。

最基本的使用方式

Docling 的入門方式很直接,Python 環境建好後先安裝依賴:

pip install litellm google-generativeai docling

最小 Python 範例可以用 DocumentConverter 讀取 PDF,再輸出 Markdown:

from docling.document_converter import DocumentConverter

source = "https://arxiv.org/pdf/2408.09869"
converter = DocumentConverter()
result = converter.convert(source)

markdown_text = result.document.export_to_markdown()
print(markdown_text)

也可以用命令列直接轉檔:

docling https://arxiv.org/pdf/2408.09869

這種方式很適合處理數位原生 PDF,例如論文、報告、產品文件。它能保留標題層級、段落、表格與部分版面資訊,後續要切 chunk、做向量化、放進 RAG 都比較順。

掃描 PDF 要接 VLM 才會真正好用

企業場景裡最痛的通常是掃描件。掃描合約、舊報紙、模糊文件、影印後再掃描的 PDF,傳統 OCR 很容易漏字、錯行、表格亂掉,Docling 的強項之一,是可以把解析流程接到視覺語言模型,讓 VLM 協助理解頁面。

本地部署路線可以用 LM Studio 載入 InternVL3-9B,讓 Docling 透過 OpenAI 相容 API 呼叫本機模型,這個做法的優點是資料不必送到外部雲端,適合公司內部文件、客戶資料、合約與敏感文件。缺點是需要顯卡資源,也要接受本地模型在模糊文字上的上限。

如果追求辨識品質,Gemini 2.5 Pro 這類雲端 VLM 的效果通常會更穩,尤其是模糊掃描、複雜版面、引用格式、符號與表情符號。代價就是 API 成本、資料外送與權限控管,真正落地時,我會把它分成兩條管線:一般文件走本地模型,低信心或高價值文件再送雲端模型複核。

一個實用的企業知識庫流程

  1. 先把 PDF、Word、Excel、HTML、圖片掃描件集中到同一個資料夾或物件儲存。
  2. 用 Docling 轉成 Markdown 或 JSON,保留頁碼、標題、表格與圖片資訊。
  3. 針對掃描件啟用 OCR 或 VLM 管線,低品質文件可以標記信心分數。
  4. 清理內容,移除頁首頁尾、重複頁碼、錯誤斷行,再依標題與段落切 chunk。
  5. 把 chunk 放入向量資料庫,同時保存原始頁面來源,方便回答時回溯引用。
  6. 接到 RAG、Agent 或 Notebook 型工具,讓使用者可以查詢、摘要、比對文件。

之前整理過 GraphRAG 使用本地端的 Ollama,或是 Open Notebook 這類私有研究工作流,前面都需要穩定的文件解析層。Docling 可以放在最前端,負責把混亂文件變成 AI 能讀的乾淨材料。

LM Studio、InternVL3、Gemini 怎麼選

如果資料敏感,先選 LM Studio 加 InternVL3。這種配置比較像私有 OCR 與文件理解服務,可以在內網跑,也能和既有 Python 管線整合。若你已經在評估 Qwen 或其他本地模型,也可以參考 Ollama Qwen 3.6 怎麼選 和 本地端多模態分析實戰 的思路。

如果文件很雜、品質很差、需要快速拿到高準確度結果,Gemini 2.5 Pro 會比較省心。尤其是頁面裡有表格、引用、符號、圖片文字混在一起時,雲端 VLM 的容錯能力會更好。我的建議不是二選一,而是分層使用:本地模型做第一輪,難件再升級到雲端模型。

導入前要注意的坑

第一,Python 版本要注意,Docling 近期版本已經不支援 Python 3.9,建議直接用 Python 3.10 以上,專案環境也要隔離,避免和舊套件衝突。

第二,不要只看 Markdown 有沒有產生,真正要檢查的是段落順序、表格欄位、頁碼引用、公式、圖片說明、錯字率。只要這些地方亂掉,後面的 RAG 回答就會變得不可信。

第三,VLM 不是魔法,模糊掃描、歪斜頁面、低解析度照片仍然會出錯。比較穩的做法是保存原始頁面圖、解析後文字、模型信心與人工校對狀態,讓知識庫能追蹤每一段內容從哪裡來。

結論

Docling 值得放進 AI 知識庫工具箱,原因不是它可以把 PDF 轉 Markdown 這麼簡單,而是它把文件解析變成一條可組合的管線。一般文件用基礎轉換,掃描件加 OCR,高難度文件再接 VLM,最後輸出成 RAG 可以使用的 Markdown 或 JSON。

如果你的資料來源大多是網頁和乾淨文字,Docling 不一定是第一個要上的工具。但只要公司文件裡有大量 PDF、掃描件、表格、舊報告,它就是很值得測的入口層。AI 系統的回答品質,很多時候從文件被讀進來的那一刻就決定了。

FAQ

Docling 和 MarkItDown 差在哪裡?

MarkItDown 很適合快速把常見文件轉成 Markdown。Docling 更偏向完整文件理解,強調 PDF 版面、表格結構、OCR、VLM 和 AI 工具鏈整合。

一定要用 Gemini 才能處理掃描 PDF 嗎?

不一定。本地可以用 LM Studio 搭配 InternVL3 這類視覺模型。Gemini 的優勢是複雜文件辨識品質通常更好,但需要考慮 API 成本和資料外送。

Docling 適合企業內部知識庫嗎?

很適合,特別是資料來源包含 PDF、掃描件、簡報、表格和舊文件時。它可以把文件轉成 AI 較容易處理的格式,再交給 RAG 或 Agent 使用。

使用 Claude Code 搭配 LM Studio 與 Ollama:打造零 API 成本 AI 開發環境

Claude Code 最大特色之一,就是它能直接理解整個專案目錄、修改檔案、執行 CLI 指令,甚至自動修復程式碼問題。

但許多人最在意的是:

  • API 費用太高
  • 原始碼不想送雲端
  • 想完全離線使用
  • 希望使用自己的 Local LLM

現在透過 Ollama 官方網站 與 LM Studio 官方網站,已經可以讓 Claude Code 直接使用本地模型。

本篇文章會完整介紹:

  • Claude Code 是什麼
  • 如何讓 Claude Code 使用 Local LLM
  • Ollama 與 LM Studio 差異
  • 三種實作方式
  • Web Search 功能啟用
  • 常用 CLI 指令
  • 適合的模型推薦

什麼是 Claude Code?

Claude 官方網站 的 Claude Code 是 Anthropic 推出的 AI Coding Agent。

它並不是單純聊天工具,而是:

  • 能讀取整個專案
  • 可修改程式碼
  • 可執行 Terminal 指令
  • 可自動修 Bug
  • 可跨多檔案操作
  • 支援 Agent Workflow

官方描述 Claude Code 是一個:

AI-powered coding assistant that helps you build features, fix bugs, and automate development tasks.


為什麼大家開始用 Local LLM?

Local LLM 的優勢非常明顯:

功能雲端模型Local LLM
隱私程式碼送雲端完全本地
費用API Token 收費幾乎免費
離線不可可
速度看網路本機 GPU
自訂模型有限制完全自由

尤其現在 Ollama 已支援 Anthropic Messages API,相容 Claude Code。


方法一:Claude + VSCode + Ollama / LM Studio

這是目前最多人使用的方法。

架構圖

Claude Code     ↓VSCode Extension     ↓Ollama / LM Studio     ↓Local LLM

安裝流程

Step 1:安裝 Claude Code

官方下載:

Claude Download 官方下載頁面

Linux / macOS:

curl -fsSL https://claude.ai/install.sh | bash

Step 2:安裝 Ollama

官方網站:

Ollama 官方網站

Linux:

curl -fsSL https://ollama.com/install.sh | sh

Step 3:下載模型

推薦模型:

ollama pull qwen3-coder

或:

ollama pull deepseek-coder-v2

Step 4:啟動模型

ollama run qwen3-coder

LM Studio 使用方式

如果你不喜歡 CLI,可以使用 LM Studio。

LM Studio 官方網站

LM Studio 特點:

  • GUI 操作
  • 支援 OpenAI API
  • 支援本地 Server
  • 支援 GPU Offload
  • Windows 體驗很好

有些使用者甚至認為 LM Studio 在 Windows + iGPU 上比 Ollama 更方便。


Claude Code 連接 Ollama

設定環境變數:

export ANTHROPIC_BASE_URL=http://localhost:11434
export ANTHROPIC_AUTH_TOKEN=your_token
export CLAUDE_CODE_EFFORT_LEVEL=low

執行:

claude

Claude Code 即會透過 Ollama 使用本地模型。


方法二:使用 ollama launch claude

這是 Ollama 官方提供的整合方式。

官方文件:

Ollama Claude Code Integration 文件


安裝方式

更新 Ollama:

ollama update

執行:

ollama launch claude

這會:

  • 自動設定 Claude Code
  • 自動串接 Anthropic-compatible API
  • 使用本地模型

官方支援模型

目前官方文件中提到可搭配:

  • qwen3.5
  • glm-5
  • kimi-k2.5

等模型。


方法三:使用 free-claude-code Gateway

GitHub:

free-claude-code GitHub 專案

這個專案本質上是一個:

Claude Code Gateway Proxy

它能:

  • 將 Claude Code API 轉向 Local LLM
  • 模擬 Anthropic API
  • 轉接 Ollama / OpenAI API
  • 避免官方限制

適合使用情境

非常適合:

  • 本地 AI 開發環境
  • 多模型切換
  • 企業內網
  • 私有化部署
  • AI Coding Lab

啟動方式

通常為:

git clone https://github.com/Alishahryar1/free-claude-codecd free-claude-codenpm installnpm start

再讓 Claude Code 指向 Gateway。


啟用 Ollama Web Search 功能

Ollama 現在已支援 Web Search。

官方文件:

Ollama Web Search 文件


Web Search 功能用途

可以讓 Local LLM:

  • 搜尋最新資訊
  • 查 Stack Overflow
  • 查 GitHub
  • 查文件
  • 即時查詢

這對 Claude Code 非常重要。

因為 Coding Agent 若沒有 Web Search:

  • 容易使用舊知識
  • 不知道最新版套件
  • 不知道最新 API

啟用方式

通常:

OLLAMA_WEB_SEARCH=true

或:

export OLLAMA_WEB_SEARCH=true

依照官方文件設定即可。


推薦 Local LLM 模型

程式開發最佳選擇

模型推薦度特點
Qwen3-Coder★★★★★Coding 能力極強
DeepSeek Coder V2★★★★★開源熱門
GLM-5★★★★☆中文能力佳
Kimi K2.5★★★★☆長上下文
Gemma 3★★★☆☆輕量快速

Claude Code 常用指令

啟動 Claude Code

claude

指定 API

ANTHROPIC_BASE_URL=http://localhost:11434 claude

指定模型

ANTHROPIC_MODEL=qwen3-coder claude

查看 Ollama 模型

ollama list

啟動 Ollama Server

ollama serve

Ollama vs LM Studio 比較

功能OllamaLM Studio
CLI強普通
GUI基本非常完整
Windows普通非常好
API強強
Docker強普通
GPU 管理CLIGUI
新手友善中等高

Claude Code + Local LLM 的實際優勢

1. 幾乎零成本

不再需要:

  • Anthropic API
  • OpenAI API
  • Token 費用

2. 完全私有化

原始碼不離開本機。

非常適合:

  • 企業
  • 資安環境
  • NDA 專案
  • 內網系統

3. 多模型自由切換

你可以:

  • 今天用 Qwen
  • 明天用 DeepSeek
  • 後天用 Kimi

不受平台限制。


我的實際建議

如果你是:

新手

建議:

LM Studio + Claude Code

因為 GUI 最簡單。


Linux / DevOps / AI 工程師

建議:

Ollama + Claude Code

CLI 整合能力非常強。


企業環境

建議:

free-claude-code Gateway + Ollama

可做到:

  • API Gateway
  • 多模型管理
  • 權限控管
  • 私有化部署

結論

Claude Code 正在快速成為下一代 AI Coding Agent。

而現在最重要的變化是:

Claude Code 已經不再只能綁定官方 Claude API。

透過:

  • Ollama
  • LM Studio
  • free-claude-code
  • Anthropic-compatible API

你已經可以:

  • 完全本地化
  • 零 API 成本
  • 自由切換模型
  • 保護原始碼隱私

對於 AI 開發者與工程團隊來說,這將是非常重要的開發趨勢。


下載資源

官方網站


參考資料

GraphRAG與我踩過的坑

GraphRAG與我踩過的坑

2024/07 相信 AI 界最火的是 Microsoft 推出的 GraphRAG 了,看起來很簡單,但坑也不少,網路上教學很多,我這邊專門做一集推坑以及救贖的文章

訓練價格過高

用便宜模型 gpt-4o-mini

llm:
  api_key: ${GRAPHRAG_API_KEY}
  type: openai_chat # or azure_openai_chat
  model: gpt-4o-mini
  model_supports_json: true # recommended if this is available for your model.

用 local ollama, vllm, LM Studio

要用 ollama 的話,要先安裝 ollama 的庫

pip install ollama

並且用別人已經改好的程式碼

git clone https://github.com/TheAiSingularity/graphrag-local-ollama.git

執行細節可以看

https://medium.com/@vamshirvk/unlocking-cost-effective-local-model-inference-with-graphrag-and-ollama-d9812cc60466

視覺化模型

請下載 Gephi

打開 settings.yaml 並且找到 snapshots 將 graphml 打開,這樣子在 index 的時候就會幫你生成 .graphml 的檔案,之後就可以用 Gephi 去編輯他

snapshots:
  graphml: true
  raw_entities: true
  top_level_nodes: true

參考資料

GraphRAG Github

https://github.com/microsoft/graphrag