你有没有试过把一份扫描版 PDF 丢给 Claude,结果它老老实实回你一句:"抱歉,我无法读取图片内容"?
或者更现实一点的场景:你用 OpenClaw 跑了个自动回单机器人,结果客户发来一张发票截图,机器人回了一句"请发送文字消息"——订单就这么黄了。
这事儿本质上是个老问题:现在的 AI 默认是个"文字动物"。LLM 训练时主要吃的是纯文本,能"看"图是因为另外接了视觉模型,但即便是最强多模态模型,遇到下面三类东西也容易翻车:
| 类型 | 为什么 AI 经常翻车 |
|---|---|
| 扫描版 PDF | 整页是图,不是文字层 |
| 手机截图、发票、合同照片 | 包含手写字、印章、表格、倾斜 |
| 长文档(整本专著) | 多模态上下文窗口塞不下 |
OCR(Optical Character Recognition,光学字符识别)就是给 AI 装上的"眼睛"。 装上之后,Claude 能直接读扫描版 PDF,OpenClaw 能自动解析客户截图,整本法律卷宗一次性转 Markdown——你不再需要手动敲一遍。
这篇就把"装眼睛"这件事彻底讲清楚:为什么装、装完能干什么、怎么装、有哪些坑。不管你用的是 Claude Desktop 还是 OpenClaw,看完都能照着做。

一、装上 OCR 之后,到底能解锁什么?
先说价值,因为不是所有人都清楚"OCR 接 AI"这件事的想象空间。
5 类典型场景:
- 扫 PDF 直接问答 — 丢一份扫描版合同给 Claude,直接问"违约条款在哪一页?"
- 截图自动识别 — OpenClaw 自动把客户发来的发票转成结构化数据入库
- 批量处理图片 — 一次给 50 张产品图,自动提取 SKU 和价格
- 整本专著解析 — 一本 500 页的法律卷宗一次性转 Markdown
- 跨模态检索 — 把所有历史截图建索引,让 AI"记起"任何一张图里的内容
一句话总结:OCR 不只是"识别文字",它是把 AI 从文字工作者变成全模态助理的关键拼图。
二、两个 OCR 引擎怎么选?
OCR 后端不是装一个就行——选错了等会白忙活。两个主流选项定位完全不同:
| 引擎 | 定位 | 适合场景 | 硬件要求 |
|---|---|---|---|
| PaddleOCR(百度开源) | 通用 OCR 主力 | 扫描 PDF、截图、表格、公式、版面分析 | CPU 也能跑;GPU 更快 |
| Unlimited-OCR(百度新出) | 长文档一次性解析 | 整本专著、法律卷宗、长 PDF | ≥24GB 显存(推荐 A100/H100) |
一句话选型建议:
90% 的场景用 PaddleOCR 就够了;只有遇到"几百页连续扫描的卷宗"才需要上 Unlimited-OCR。
下面重点讲 PaddleOCR 的部署(覆盖 90% 场景),Unlimited-OCR 放在最后一节作为高阶选项。
三、部署 PaddleOCR:两种最常用姿势
PaddleOCR 提供三种部署方式,我们只讲最常用的两种——HTTP 自托管和 Claude Desktop 的 MCP 插件。第三种 Docker 容器化是给生产环境用的,个人用户跳过即可。
姿势 A:本地起一个 HTTP 服务(推荐,所有平台通用)
一行命令起服务:
\\\`bash
pip install paddlex paddlex –install serving
paddlex –serve –pipeline PaddleOCR-VL-1.6 \\\`
跑起来之后,访问 http://127.0.0.1:8080 就能看到 API 文档。
不同场景选不同 pipeline:
| Pipeline | 干啥用 |
|---|---|
| OCR | 纯文字识别(最快) |
| PP-OCRv5-latin | 多语言版(含英文拉丁) |
| PP-StructureV3 | 版面 + 表格 + 公式(推荐扫 PDF) |
| PaddleOCR-VL-1.6 | 端到端 VLM(精度最高,啥场景都能干) |
💡 小白建议:先跑
PaddleOCR-VL-1.6,啥场景都适用;慢了再换轻量版。🔥 GPU 加速:机器有显卡就加
--device gpu,速度快 5-10 倍。
姿势 B:直接装 MCP 插件(Claude Desktop 用户最快)
如果你只用 Claude Desktop、不打算接 OpenClaw,这是 5 分钟搞定的方案:
\\\`bash
pip install paddleocr-mcp \\\`
然后编辑 Claude Desktop 配置文件(重启 Claude 生效):
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
最简配置(用百度 AI Studio 官方 API,零部署):
\\\json { "mcpServers": { "paddleocr": { "command": "paddleocr_mcp", "args": [], "env": { "PADDLEOCR_MCP_MODEL": "PaddleOCR-VL-1.6", "PADDLEOCR_MCP_PPOCR_SOURCE": "aistudio", "PADDLEOCR_MCP_AISTUDIO_ACCESS_TOKEN": "<你的-token>" } } } } \\\
token 去 百度 AI Studio 申请,免费的额度日常够用。
接本地自托管服务(数据隐私 / 批量处理用):
如果你按姿势 A 起好了本地服务,配置改成这样:
\\\json { "mcpServers": { "paddleocr": { "command": "uvx", "args": ["--from", "paddleocr-mcp", "paddleocr_mcp"], "env": { "PADDLEOCR_MCP_MODEL": "PaddleOCR-VL-1.6", "PADDLEOCR_MCP_PPOCR_SOURCE": "self_hosted", "PADDLEOCR_MCP_SELF_HOSTED_BASE_URL": "http://127.0.0.1:8080" } } } } \\\
重启 Claude Desktop,对话框里说"用 OCR 工具把这份 PDF 转成 Markdown",OCR 工具会自动出现在工具列表里。
四、让 OpenClaw 也能用 OCR
OpenClaw 通过 ~/.openclaw/workspace/skills/<name>/SKILL.md 注册技能(skill)。装一个 OCR skill 只需要写一个文件。
第一步:先按姿势 A 起好 PaddleOCR 服务
\\\bash paddlex --serve --pipeline PP-StructureV3 --port 8080 \\\
(保持后台运行,或用 tmux / screen 挂起)
第二步:写一个 skill
\\\bash mkdir -p ~/.openclaw/workspace/skills/paddleocr-ocr \\\
新建文件 ~/.openclaw/workspace/skills/paddleocr-ocr/SKILL.md:
\\\`markdown
name: paddleocr-ocr description: 调用本地 PaddleOCR 服务对图片/PDF 做 OCR 或版面解析 metadata: openclaw: requires: bins: [curl, jq] env: [PADDLEOCR_BASE_URL] primaryEnv: PADDLEOCR_BASE_URL
调用 \${PADDLEOCR_BASE_URL:-http://127.0.0.1:8080} 的 PaddleOCR 服务。
用法
- 把图片/PDF base64 编码
- POST 到 /predict/ocr_system
- 返回 Markdown / JSON 结果
\\\`
第三步:让 OpenClaw 加载它
\\\`bash openclaw doctor # 验证配置
\\\`
重启后,OpenClaw 对话里直接说"用 paddleocr-ocr 解析这张扫描件"就会自动触发。
五、高阶场景:整本专著用什么?
如果你的场景是"几百页扫描 PDF 一次性转 Markdown"(法律卷宗、古籍数字化、学术专著),PaddleOCR 会比较慢,这时候上 Unlimited-OCR。
它没有 MCP,需要起 vLLM 或 SGLang 暴露 OpenAI 兼容 API,然后用 OpenClaw skill 包一层。
启动 Unlimited-OCR(vLLM)
\\\bash docker pull vllm/vllm-openai:unlimited-ocr docker run -dp 8000:8000 vllm/vllm-openai:unlimited-ocr \\ --model baidu/Unlimited-OCR --port 8000 \\\
OpenClaw skill(节选)
~/.openclaw/workspace/skills/unlimited-ocr/SKILL.md:
\\\`markdown
name: unlimited-ocr description: 调用本地 Unlimited-OCR 服务做长文档一次性解析
调用 \${UNLIMITED_OCR_BASE_URL:-http://127.0.0.1:8000} 的 Unlimited-OCR 服务。
\\\bash IMG_B64=$(base64 -w0 input.png) curl -s \${UNLIMITED_OCR_BASE_URL:-http://127.0.0.1:8000}/v1/chat/completions \\ -H "Content-Type: application/json" -d '{ "model": "Unlimited-OCR", "messages": [{"role": "user", "content": [ {"type":"image_url","image_url":{"url":"data:image/png;base64,'"\$IMG_B64"'"}}, {"type":"text","text":"Multi page parsing."} ]}] }' | jq -r '.choices[0].message.content' \\\
注意事项
- 长 PDF 用提示词 "Multi page parsing."
- 显存:≥24GB,Hopper(A100/H100)体验最佳
\\\`
⚠️ 坑提醒:启 vLLM 时务必保留 –enable-custom-logit-processor,否则长文档会出现"无限循环重复"的乱码。
六、常见坑 FAQ
Q1:装完 paddleocr-mcp,Claude 工具列表里没出现? A:检查 JSON 格式(逗号、引号),然后完全退出 Claude Desktop 再开(不是关窗口,要从菜单退出)。
Q2:报错 Connection refused 127.0.0.1:8080? A:PaddleX 服务没起来。重新跑 paddlex –serve –pipeline PaddleOCR-VL-1.6,确认能看到 "Running on http://0.0.0.0:8080" 字样。
Q3:识别中文乱码? A:模型换成 PP-OCRv5 系列,别用 PP-OCRv5-latin(只支持拉丁字母)。
Q4:扫 PDF 转出来版式全乱了? A:换成 PP-StructureV3 或 PaddleOCR-VL-1.6 pipeline,这两个专门处理版面。
Q5:Unlimited-OCR 跑得慢 / 重复? A:显存不够;或漏了 –enable-custom-logit-processor。
Q6:OpenClaw skill 不生效? A:跑 openclaw doctor 看诊断;检查 SKILL.md 路径是否在 ~/.openclaw/workspace/skills/ 下;完全重启 OpenClaw daemon。
七、选型速查表
最后一张表帮你 3 秒做决定:
| 你的场景 | 推荐方案 | 一句话说明 |
|---|---|---|
| Claude Desktop 个人/小团队,零部署 | paddleocr-mcp + AI Studio API | 5 分钟搞定,免费额度够用 |
| Claude Desktop 自托管(数据隐私 / 批量) | paddlex –serve + paddleocr-mcp self_hosted | 起一个本地服务,全家通用 |
| OpenClaw 通用 OCR | paddlex –serve + OpenClaw skill | 起服务,写 30 行 skill |
| OpenClaw 长文档 / 法律卷宗 | Unlimited-OCR vLLM + skill | 显存要求高,按需启用 |
| 多频道(飞书 / 微信 / Telegram)触发 OCR | OpenClaw skill + 自托管服务 | OpenClaw 负责转发,OCR 做后台 |
写在最后
OCR 不只是"识别文字"那么简单——它是把 AI 从"文字工作者"变成"全模态助理"的关键拼图。
装上之后,你会发现很多以前得手动做的事突然自动化了:扫描件直接问答、截图自动入库、长文档一次性消化。Claude + OpenClaw 加 OCR,等于给你的 AI 工作流装上眼睛。
下一步建议:
- 先按第三节起好 PaddleOCR 服务(5 分钟)
- 再装 paddleocr-mcp 或写 OpenClaw skill(10 分钟)
- 找个真实场景试一下——把最近的一份扫描 PDF 丢给 Claude