给大模型喂 PDF,很多人的流程挺粗暴:文件进来,先整页转图片,再跑 OCR。
能用,但费钱、慢,还可能把原本好好的文字识别错。尤其表格、代码、双栏论文,跑完经常顺序乱成一锅粥。

Firecrawl 最近开源了一个 pdf-inspector,干的就是 PDF 流程里那个经常被忽略的前置判断:这份文件到底是文字版、扫描版、图片版,还是混合型?
它不靠模型,也不用先渲染页面,而是直接分析 PDF 内部的字体、文本操作符和图片覆盖情况。分类通常只要 10~50ms。确认是文字版后,就直接抽取内容并转成 Markdown,官方称本地处理可以控制在 200ms 内。约 54% 的 PDF 本来就不需要 OCR,这一步省下来的 GPU、接口费用和等待时间,量大时挺可观。
输出也不是简单扒一坨纯文

本。标题层级、列表、粗体、链接、代码块都能处理,还带表格检测和多栏阅读顺序恢复。这里东哥会多瞅一眼——做 RAG 时,文字少丢几个不算完,顺序抽错了,后面切 chunk、做召回全跟着歪。
它的核心是 Rust,提供 Python、Node.js、Rust 接口,浏览器端还能通过 WebAssembly 本地运行,不必为了上传一个 PDF 再单独搭后端服务。

当然,扫描件还是得交给 OCR。pdf-inspector 更适合放在入口:先分类,能原生提取的直接走快速通道,真需要识别的页面再送 OCR。做知识库、合同解析、论文导入或者文档 Agent,这个小组件挺顺手。
Github:Firecrawl / pdf-inspector。
夜雨聆风