做过文档相关项目的人多少都被 OCR 坑过。
合同要录入系统,论文要提取参考文献,一堆扫描件要变成能搜索的文字。听起来是个小活,真上手才发现:表格识别出来全错位,页眉页脚混进了正文,扫描件里有几行字干脆识别成了乱码。
更难受的是做 RAG 的朋友,明明 embedding 和检索都调好了回答还是不准,查到最后发现脏数据是从 OCR 这一步漏进来的。
这两天 Mistral 更新了 OCR 4,我用一份 10 页的 PDF 跑了一遍。

先搞懂:结构化 OCR 和普通 OCR 差在哪
普通 OCR 你应该用过,它干的事很简单:图片进去,纯文字出来。问题就出在这个"纯"字上,它只给你一堆文字,不告诉你这段是标题还是正文,表格的行列关系也丢了,更没法知道哪些字它自己也拿不准(这点后面会很有用)。
结构化 OCR 多给了几样东西,而这几样恰好是做文档自动化最缺的:
- • 版面框(bounding box):段落或结构块在页面上的坐标,你能知道它原本大概长在哪
- • 块类型标签:这块是正文、标题、表格、公式还是签名,它可以分类标好
- • 置信度分数:按官方说明,可以细到每一页、甚至每个词,低置信的地方更值得优先复核
- • Markdown 输出:直接给你排好版的 markdown,表格也尽量还原成 markdown 表格
Mistral OCR 4 这次主打的就是这几点。官方文档里还提到,OCR 在 40+ 种语言上有较强表现,支持中文、英文、日文、韩文等常见语言。
准备工作:只需 3 样东西
第一样,一个 API key。 去 Mistral 官网注册账号,在控制台里创建一个 API key,复制下来。这是后面调用要用的,注意别泄露出去。
第二样,一份"刁难一点"的测试 PDF。 别拿那种干干净净的纯文字文档去测,测不出啥问题。我建议你专门凑一份 10 页左右、版式混合的:几页正常正文,夹一两个表格,留着页眉页脚,最好再塞一页手机拍的或者扫描的图片页。越接近你真实业务里的文档,测出来的结论越有用。
第三样,一个能跑命令的环境。 curl 或者 Python 二选一,哪个顺手用哪个。Python 的话装一下官方 SDK 就行:
pip install mistralai三步跑通:从 PDF 到结构化输出

第一步,调接口。 把你的 PDF 传到一个能公开访问的链接(或者用 base64 传本地文件,这里先用最简单的 URL 方式演示)。Python 调用长这样:
from mistralai import Mistral
client = Mistral(api_key="你的_API_KEY")
resp = client.ocr.process(
model="mistral-ocr-latest",
document={
"type": "document_url",
"document_url": "https://你的文档地址/test.pdf",
},
include_blocks=True,
confidence_scores_granularity="word",
)
print(resp.pages[0].markdown)底层其实就是往 https://api.mistral.ai/v1/ocr 发一个 POST 请求,模型填 mistral-ocr-latest。这里额外打开了两个参数:include_blocks=True 用来拿结构块和 bbox,confidence_scores_granularity="word" 用来拿到词级置信度。
具体还有哪些参数(比如要不要单独抽页眉页脚、表格要 markdown 还是 html),以官方文档为准。
第二步,看输出。 返回结果里 pages 是一个数组,每一页对应一个对象。
重点看这几块:markdown 是这一页排好版的文字;如果开启了 include_blocks,页面里的结构块会带着 top_left_x、bottom_right_y 这样的坐标,这就是版面框;dimensions 告诉你这页的 dpi 和宽高;如果开启了置信度参数,还会看到 confidence_scores。返回里还有个 usage_info,会写明这次处理了多少页,方便你核对计费。
第三步,存下来。 把每页的 markdown 拼起来写进文件,方便后面逐页检查:
text = "\n\n".join(p.markdown for p in resp.pages)
open("out.md", "w", encoding="utf-8").write(text)跑的过程里可能会撞上两个常见报错:一个是 401,基本是 key 填错或没生效;一个是文档地址拉不到,多半是链接没公开或者格式不对。
踩坑实录:这 4 类内容最容易翻车
实话实说,结构化 OCR 不是万能的,我跑下来发现这几类内容你要重点看下:
扫描件和拍照页。 清晰的扫描件通常没问题,但如果原件本身糊、有阴影或者倾斜,识别质量会明显下降。
复杂表格。 规整的表格还原得不错,但合并单元格、跨页表格、嵌套表头这种,仍然容易出现串行或错位。表格多的文档,这一列你要逐个核。
页眉页脚。 页码、公司名、水印这类重复信息,有时会被当成正文混进去。如果你是要喂 RAG 这些噪声一定要清掉,不然检索会被污染。
低置信字段。 别忽略置信度这个信号。它标低的地方不一定全部有错,但更值得优先复核。按它来安排人工检查顺序,通常能帮你缩小复核范围。
到底值不值得接入
- • 量小、一次性的活(比如就处理几十页):可能不值得专门接 API,手动整理或者现成工具就够了,接入和调试的时间成本反而更高。
- • 高频文档流、或者要喂 RAG:值得认真测。这种场景下质量和一致性的收益会持续累积,每千页 4 美元、Batch 约 2 美元的 API 成本,往往不是最大头,人工复核和返工成本更值得一起算。
- • 对数据主权敏感(合同、病历、内部资料):重点确认部署形态、数据保留策略和合规条款。能不能自托管、怎么部署、是否满足你的合规要求,这些都要单独和 Mistral 确认。
说到底工具一直在更新,今天是 OCR 4,明天可能就有更新的,所以还是先测试一下再接入比较好,如果你手头正好有一摞 PDF 要处理,照着这几步可以试试。
既然看到这里了,如果觉得不错的话随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个关注哦~
谢谢你看我的文章,我们下次再见。
夜雨聆风