OpenDataLoader PDF:每秒 100 頁、不吃 GPU 的開源 PDF 解析器,為什麼 RAG 開發者該認識它

建構 RAG 系統的人大概都踩過同一個坑:PDF 解析。文件丟進去,多欄版面跑掉,表格變成一串純文字,圖片座標直接消失。下游的 LLM 拿到的是垃圾,自然只能吐出垃圾。

OpenDataLoader PDF 是韓國 Hancom 公司釋出的開源工具,走的是純 CPU 路線。在 Apple M4 上實測達到每頁 0.05 秒(換算成每秒 100 頁以上),且在 200 份真實文件的公開評測中拿到 0.90 的綜合準確度——目前開源 PDF 解析器裡最高。

作為對照,Marker 在 H100 GPU 上的批次吞吐量大約 25 頁/秒。OpenDataLoader 用一台筆電做到四倍速。GPU 雲端租用按 AWS 行情大約每小時 USD 2-4(約 NTD 64,000-128,000/月),而 OpenDataLoader 的本地模式把這筆費用壓到零。


兩種模式、各有擅場

OpenDataLoader 的核心設計是雙模式切換。

本地模式用 XY-Cut++ 演算法處理版面分析和閱讀順序判定。它是確定性(deterministic)運算——同一份 PDF 餵進去十次,十次產出完全相同。沒有 LLM 幻覺問題,也不需要下載任何模型權重。

混合模式在本地模式之上加了 AI 後端,處理 OCR、複雜表格和數學公式。啟用後,表格辨識準確度從 0.49 跳到 0.93。後端也是跑在本地機器上,不傳資料到外部伺服器。

這個分工策略其實很務實。多數 PDF 頁面(純文字、簡單排版)根本不需要 AI 介入,用規則引擎秒殺就好。只有無邊框表格、掃描文件這類難題才值得燒算力。Springer 在 2026 年發表的一篇 NLDB 研討會論文也指出,端到端 transformer 模型在 PDF 轉 Markdown 的速度和一致性上仍有瓶頸,確定性解析在批次場景裡更可靠。

import opendataloader_pdf

opendataloader_pdf.convert(
    input_path="document.pdf",
    output_dir="output/",
    format="markdown,json"
)

三行 Python。本地模式不需要模型、不需要 API key。


跟其他工具比起來怎樣

opendataloader-bench 是公開的評測專案,用 200 份真實 PDF 跑分。結果長這樣:

工具 速度(秒/頁) 閱讀順序 表格 標題
OpenDataLoader 0.05 0.91 0.49 0.65
docling 0.73 0.90 0.89 0.80
pymupdf4llm 0.09 0.89 0.40 0.41
markitdown 0.04 0.88 0.00 0.00

數字擺在這裡,取捨很清楚。docling 的表格和標題辨識確實更強,但速度慢了 14 倍。如果你的場景是每天批次處理上千份 PDF 的 AI 自動化管線,速度差距會直接反映在時間和成本上。如果是小量但格式極複雜的財報或學術論文,docling 的高表格分數可能更適合。markitdown 最快,但完全不處理表格和標題——只能拿來做純文字抽取。

開啟混合模式後,OpenDataLoader 的表格分數從 0.49 提升到 0.93,追平甚至超過 docling,但會消耗更多資源。


RAG 場景裡真正有用的功能

每個元素都帶座標。 JSON 輸出裡,段落、表格、圖片——每一個元素都有 [left, bottom, right, top] 的邊界框(bounding box)。對建構「點擊溯源」介面來說,這是基本需求:使用者點一下 AI 的回答,就能看到對應的 PDF 原文位置。其他主流開源解析器(docling、pymupdf4llm、markitdown)預設都不提供這個。

內建 prompt injection 過濾。 PDF 檔案可以藏隱形文字、零尺寸字元或頁面外內容,用來對 LLM 下暗示指令。OpenDataLoader 預設會過濾掉這些東西。在企業部署 AI Agent 的環境裡,外部文件就是攻擊面,這層防護省了不少麻煩。

支援 Tagged PDF。 歐盟無障礙法案(EAA)2025 年 6 月上路之後,越來越多官方文件和企業報告開始嵌入語意結構標籤。OpenDataLoader 能直接讀取這些標籤,不用靠啟發式演算法去猜標題層級。這在處理政府採購文件或合規報告時特別有感。


LangChain 整合

OpenDataLoader 有官方的 LangChain 載入器套件,安裝一行搞定:

pip install langchain-opendataloader-pdf

搭配 RecursiveCharacterTextSplitter 就能建完整的向量搜尋管線:

from langchain_opendataloader_pdf import OpenDataLoaderPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter

loader = OpenDataLoaderPDFLoader(
    file_path="knowledge_base.pdf",
    format="markdown",
    quiet=True
)
documents = loader.load()

splitter = RecursiveCharacterTextSplitter(
    chunk_size=1000, chunk_overlap=200
)
chunks = splitter.split_documents(documents)

Hancom 預告 2026 年還會整合 Langflow、LlamaIndex、Gemini-cli,以及 MCP(Model Context Protocol)支援。後者對 AI Agent 生態尤其重要——Agent 能直接透過 MCP 呼叫 PDF 解析功能,不需要額外的 API 包裝。


台灣企業的實務考量

對台灣的金融業、醫療業和法律事務所來說,文件隱私合規是頭號門檻。OpenDataLoader 100% 在本地執行,零資料傳輸。相較於 LlamaParse 等雲端 API(按頁收費,一頁約 USD 0.003-0.01),本地部署在量大時的成本優勢會很明顯。

SDK 覆蓋 Python、Node.js、Java 和 Docker。Java 核心對仍以 JVM 為主力的金融機構是加分。2026 年 3 月 v2.0 版本把授權從 MPL 2.0 改成 Apache 2.0,商業使用的法律門檻大幅降低。


它做不好什麼

不迴避限制。

本地模式的表格辨識(0.49)面對無邊框表格和合併儲存格時表現普通,一定要開混合模式才行。混合模式需要額外跑一個 AI 後端服務,雖然也是本地,但會吃記憶體和 CPU。掃描品質低於 300 DPI 的文件,OCR 效果會打折。另外,它對漫畫、美術類 PDF 和小學教科書的版面支援不佳——這在官方文件裡也有寫明。

整體來說,OpenDataLoader 最適合三種場景:大量數位 PDF 的批次處理、需要邊界框座標的溯源型 RAG 系統、以及對資料隱私有嚴格要求的企業 AI 部署


對開發者的啟示

PDF 解析從「需要 GPU 伺服器」降到「普通筆電就能跑」,背後反映的趨勢值得注意。Stanford HAI 的 2025 AI Index 報告指出,AI 基礎模型的訓練成本兩年內降了約 60%,但推論和部署的降幅一直落後。OpenDataLoader 的做法——規則式演算法處理 80% 的工作量,只把 20% 的困難頁面交給 AI——可能是一種更務實的工程哲學。

不是所有問題都需要大模型解。

對正在評估文件處理方案的團隊,建議先用 opendataloader-bench 的測試集在自己的文件類型上跑一輪,看看數字再做決定。公開透明的評測資料,是選擇工具時最可靠的依據。


引用來源


作者:Tenten Editorial Team

編輯:Tenten

如果你的團隊正在建構 RAG 管線或評估企業文件處理工具,歡迎與 Tenten 預約技術諮詢,聊聊最適合你需求的 AI 整合方案。