Mistral OCR 4.1 上手指南:把扫描件变成带坐标、带置信度的结构化文档

我做了一个测试:把一份 6 页的中文合同扫描成 PDF,先后丢给传统 OCR 和 Mistral OCR 4.1。传统 OCR 返回的是一整段「文字流」,标题、正文、页眉、签名区全部混在一起;Mistral OCR 4.1 返回的则是按块组织的 markdown——每个段落、每张表格、每个标题都附带像素坐标和置信度分数。

这份差异,正是 8 月 15 日 Hacker News 上那条 370+ points 热帖的核心:OCR 终于不只是「把图变成字」,而是开始理解版面结构了。


一、Mistral OCR 4.1 到底多了什么

Mistral 把 OCR 4.1 定位为 “Document AI stack” 的 OCR 层。相比常见的通用多模态模型(让 LLM 直接读图),它是一个专门的文档理解模型,输出的是结构化的版面信息,而不是一段自由文本。

三个新增能力最值得关注:

1. 段落级边界框(BBox)
每个文本块都返回 top_left_xtop_left_ybottom_right_xbottom_right_y 四个坐标,单位是像素,映射到原图尺寸。这意味着你可以在原 PDF 上高亮「这段话来自哪里」,而不是只告诉读者「在第 3 页」。

2. 结构块标签(Block Labels)
模型会自动判断一块内容是 texttitleheadinglisttableequationfigurecaptionheaderfootersignature 还是 aside_text。做 RAG 时,你可以按类型决定怎么切分、怎么向量化。

3. 块级置信度(Block-level Confidence)
通过 confidence_scores_granularity="block" 开启。返回值包括该块的平均置信度和最低置信度。低置信度块可以直接路由给人工复核,而不是整份文档重扫。

定价方面,标准 OCR 是 $4 / 1000 页,带结构化注释的 Document AI 模式 $5 / 1000 页;走 Batch 异步接口可以降到大约 $2 / 1000 页。作为对比,AWS Textract 的表单+表格解析大约 $50–70 / 1000 页,Google Document AI Form Parser 大约 $10–30 / 1000 页。Mistral 在「结构化」这个档位上,价格明显更低。


二、5 分钟跑通第一条 OCR 请求

环境要求:Python 3.10+,安装官方客户端即可。

Bash
pip install mistralai
export MISTRAL_API_KEY="your-api-key"

完整调用流程分三步:上传文件 → 获取 signed URL → 调用 OCR。下面这段代码可以直接复制运行:

Python
import os
from mistralai import Mistral

client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])

# 1. 上传文件
uploaded = client.files.upload(
    file={"file_name": "contract.pdf", "content": open("contract.pdf", "rb")},
    purpose="ocr"
)

# 2. 获取临时访问链接
signed = client.files.get_signed_url(file_id=uploaded.id)

# 3. 调用 OCR 4.1,要求返回 blocks 和块级置信度
result = client.ocr.process(
    model="mistral-ocr-4-1",  # 生产环境建议固定版本号
    document={
        "type": "document_url",
        "document_url": signed.url
    },
    include_blocks=True,
    confidence_scores_granularity="block",
    extract_header=True,
    extract_footer=True,
)

for page in result.pages:
    print(f"\n--- Page {page.index} ---")
    print(page.markdown)
    for block in page.blocks:
        bbox = block.bbox
        print(f"[{block.type}] 置信度: {block.confidence}")
        print(f"坐标: ({bbox.top_left_x}, {bbox.top_left_y}) -> ({bbox.bottom_right_x}, {bbox.bottom_right_y})")

如果不想上传文件,也可以直接传公开可访问的 URL 或 base64 图片。注意:Mistral 服务器必须能访问到这个 URL,私有 bucket 需要签章链接。


三、响应结构长什么样

每个 page 对象主要包含:

  • index: 页码
  • markdown: 整页的阅读顺序 markdown
  • blocks: 结构块数组
  • confidence_scores: 页面级置信度(如果开启)

每个 block 包含:

  • type: 块类型标签
  • content: 该块的文本/markdown
  • bbox: 像素坐标
  • confidence_scores: 块级置信度

这个结构解决了一个长期痛点:传统 OCR 把「表格」拆成零散的文字行,导致后续解析非常困难;Mistral OCR 4.1 会把整张表格识别成一个 table 块,并保留 markdown 表格格式。你可以直接把它喂给下游的 SQL、向量库或 Excel 导出脚本。


四、三个我打算长期用的场景

场景 1:RAG 知识库的分块策略升级
以前做 RAG,最常见的做法是按固定 token 长度切文档。问题是表格会被拦腰斩断,公式和代码块也会被打乱。现在可以按 titleparagraphlisttable 的块类型来切:标题和正文一起嵌入,表格单独作为结构化单元,公式块保留 LaTeX。配合 bbox,还能在检索结果里高亮原图对应区域。

场景 2:发票 / 报销单的自动审核
发票通常包含页眉、表格、印章、手写签名等混排内容。用块级置信度,可以把低置信度区域(比如被印章压住的金额、手写日期)自动标出来,转给财务复核;高置信度区域直接入账。这比「全信」或「全人工」都更省时间。

场景 3:合同关键条款定位
把合同扫描件 OCR 后,先按 heading 块切出目录结构,再定位「违约责任」「保密条款」「争议解决」等章节。后续可以用 LLM 只对定位到的区块做问答,而不是把整份合同上下文都塞进去,既省 token 又降低幻觉。


五、和同类方案怎么选

方案适合谁优势劣势
Mistral OCR 4.1需要结构化输出、预算中等一次调用返回 markdown + bbox + 置信度;价格低于 Textract 结构化模式按页计费,量大时成本仍显著;中文手写体效果待验证
腾讯混元 HyOCR-1.5需要本地化、处理中文文档1B 参数,笔记本可跑;端到端 OCR;支持 vLLM/Transformers/llama.cpp需要自己部署和运维
AWS Textract已有 AWS 生态、大批量经典 OCR 价格便宜;表单+表格解析成熟结构化功能贵($50–70/千页);需要 AWS 账号和信用卡
Google Document AIGCP 用户与 Google Workspace 集成好按文档类型选处理器,配置较复杂

如果你主要处理中文、且数据不能出内网,HyOCR-1.5 仍是更稳妥的选择。如果你处理的是多语言扫描件、发票、论文,且希望快速上线,Mistral OCR 4.1 的性价比更高。


六、两个不建议使用的场景

1. 把 OCR 结果直接当作唯一真相源
Hacker News 上有开发者反馈,Mistral OCR 4.0 在复杂排版下会「发明」原图中不存在的句子。4.1 的更新说明主要围绕布局、复选框、RTL(从右到左)语言,并没有明确承诺消除幻觉。对于法律、医疗、金融等高风险场景,建议把低置信度块路由给人工复核,或者用第二家 OCR 做交叉校验。

2. 追求极致低成本的海量扫描
虽然 $4/千页比 Textract 结构化模式便宜,但如果你只是要把扫描件变成纯文本,Google Cloud Vision 的 $1.5/千页或 OCR.space 的免费额度会更划算。Mistral OCR 4.1 的价值在于「结构化」,而不是「 cheapest text extraction」。


七、我的上手建议

  1. 固定模型版本号:生产环境用 mistral-ocr-4-1,不要用 mistral-ocr-latest。后者会静默升级,可能导致账单和输出格式变化。
  2. 先跑 Batch 做成本测试:非实时场景用 /v1/batch,价格减半,还能避开实时速率限制。
  3. 把置信度当作过滤阀:建议从 0.85 开始设阈值,低于阈值的块进人工队列;跑一段时间后根据业务准确率再调整。
  4. 中文文档先做测试:官方文档没有明确给出中文排版优化说明,建议先用几份真实中文 PDF 验证效果再决定投入。

八、相关阅读与参考


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

推荐阅读

  • Mistral OCR 4.1 上手指南:把扫描件变成带坐标、带置信度的结构化文档

    Mistral OCR 4.1 上手指南:不只把扫描件转成文字,还能返回段落坐标、结构标签与块级置信度。附可直接运行的 Python 代码、RAG/发票/合同三大真实场景用法,以及与腾讯 HyOCR、…

  • 短讯|ChatGPT Mac 版新增 Computer History:你的操作变成可搜索记忆,但有两条隐私红线

    OpenAI 为 ChatGPT Mac 桌面应用新增 Computer History:通过 macOS 辅助功能把操作事件变成可搜索记忆时间线。本文快速梳理开启条件、记录范围、三种用法,以及本地明…

  • DeepSeek 不只造模型了:开源 Agent 框架 Harness 上手,一行命令拉起 AI 编程工作台

    DeepSeek 8月13日开源 Agent 框架 Harness(dsh),MIT 协议,一切皆插件架构,一行 npx 命令启动本地 Web UI。本文实测安装启动流程,教你配置模型、选择四种运行模…

  • NVIDIA 终于下场做模型了:Nemotron 3.5 Lightning + NeMo Switchyard,Agent 账单砍掉七成怎么做到的

    NVIDIA 发布开源 Agent 模型 Nemotron 3.5 Lightning(30B MoE,3B 激活,OpenRouter 有免费层)和模型路由库 NeMo Switchyard(Apa…