RAG 最难的永远是 PDF?
一份 PDF 进来,先问是不是扫描件
再决定要不要烧 OCR
Firecrawl 开源 · Rust 库 · 本地 200ms · MIT 协议
pdf-inspector by Firecrawl
做 AI 知识库、做 RAG 检索的朋友,应该都跟 PDF 干过架
约 54% 的 PDF 压根不需要 OCR,可没人告诉你哪一半
01
PART
被 PDF 折磨的共同记忆
THE PAIN
做 AI 知识库、做 RAG 检索的朋友,应该都跟 PDF 干过架。上传一份几十页的报告,提取出来的文字东一块西一块,表格散了,多栏串行,遇到扫描件直接把 OCR 引擎拖到两秒一份。
更气的是成本。整条流水线不管三七二十一全走 OCR,一份两秒、一天几万份就是实打实的算力账单。后来才知道,约 54% 的 PDF 其实不需要 OCR,可从来没人提前告诉你该把哪一半拦下来。
一份 PDF 进来就无脑丢给 OCR,相当于每次出门都打飞的——能用但肉疼。真正的问题不是「要不要 OCR」,而是「这份 PDF 到底需不需要」。
02
PART
先分类,再路由
HOW IT WORKS
Firecrawl(就是做 AI 爬虫 那个团队)最近开源了个 Rust 库 pdf-inspector,专治这个。它干的事很聚焦——拿到一份 PDF,先用几十毫秒判断它是文本型还是扫描件,文本型的本地直接提取,扫描件才丢给 OCR。
PDF 到达
任意一份文档
智能分类
文本型 / 扫描件
分流处理
本地提 / 送 OCR
能本地解决的不花 OCR 的钱,这就是「路由」的价值
据它自己的 benchmark,文本型 PDF 在本地 低于 200ms 就能处理完。纯 Rust、无 ML 模型,只依赖 lopdf,所以又轻又快,灌进流水线几乎没有额外负担。
03
PART
四个亮点
KEY FEATURES
智能分类与 OCR 路由
返回 TextBased / Scanned / ImageBased / Mixed 四种类型,带 0.0–1.0 置信度,还能逐页告诉你哪些页需要 OCR,直接喂给路由逻辑。
位置感知的文本提取
提取时带 X/Y 坐标、字体信息,能自动处理多栏阅读顺序,不会再把左右两栏的文字串成一团。
干净的 Markdown 输出
标题、列表、代码块、表格、粗斜体、URL、分页符都能识别;CID 字体(ToUnicode CMap、UTF-16BE/UTF-8)也能解,断码乱码少很多。
浏览器里也能跑
同一套 Rust 解析器编译成 WASM,在 Web Worker 里本地运行,不上传服务器——前端也能直接用,不用自己搭后端。
04
PART
本地实操:多语言一行装好
TRY IT
装在本地很简单,Python、Node、Rust、甚至浏览器都有绑定,挑你顺手的就行。
pip install pdf-inspector
import pdf_inspector
result = pdf_inspector.process_pdf("document.pdf")
print(result.pdf_type) # text_based / scanned / ...
print(result.markdown)
import { readFileSync } from 'fs';
import { processPdf } from '@firecrawl/pdf-inspector';
const result = processPdf(readFileSync('document.pdf'));
use pdf_inspector::process_pdf;
let result = process_pdf("document.pdf")?;
cargo install pdf-inspector
pdf2md document.pdf # 转 Markdown
detect-pdf document.pdf # 仅检测类型
在 opendataloader-bench(200 份 PDF、无 OCR)里,pdf-inspector 综合 0.875、阅读顺序 0.915、表格 TEDS 0.814,速度 0.470s 跑完全部最常见——对比 liteparse、opendataloader、pymupdf4llm、markitdown 都领先或持平。
先说清楚:项目还年轻。star 6.8K、2026-02 才建仓,API 还在 0.x 阶段会变动;benchmark 是官方跑的,第三方独立验证还少;扫描件识别再准,也得接 OCR 才能完整处理;没有 ML 模型,极端复杂版面(比如古籍手稿)可能不如大模型方案。
///
LAST
写在最后
MY TAKE
做 RAG 的人最怕两件事——成本高、质量差。pdf-inspector 的思路朴素又实用:先分类再路由,能本地解决的不花 OCR 的钱。它不是要取代谁,是给流水线加了个「开关」。被 PDF 折磨过的朋友,这个值得先加到工具箱里试试。
我是开源食谱,专注分享 AI 工具与开源实战,欢迎关注
推荐阅读:
让 Chrome 侧边栏瞬间好用十倍!相见恨晚!这款不到 57KB 的开源神器,直接让我的 Notion 吃灰了
夜雨聆风