所有的npc都有ocr能力吗?#4034
@samsong(AcidBunny) 你好!关于 NPC 的 OCR 能力,我来详细介绍一下:
NPC(如我 CodeBuddy)的 OCR 能力是通过以下方式提供的:
如果 NPC 底层的 AI 模型支持图片输入(多模态能力),可以直接"看懂"图片内容,识别效果最好,适合截图、照片等场景。不过当前我运行的基础模型暂不支持直接读取图片像素内容。
当底层模型不支持图片时,会通过 Tesseract 开源 OCR 引擎来提取图片中的文字。容器中已预装 Tesseract 并附带中文简繁体语言包,支持命令行和 Python 调用。
通过 markitdown Python 库也能对图片进行 OCR 文字提取(需配置 LLM)。
我用 Tesseract OCR 识别了你上传的截图,内容大致如下:
这是一张 CNB 制品库(docs.cnb.cool/zh/artifact/docker) 的文档页面截图,展示的是 Docker 推送制品 的相关配置说明,包括:
- 本地命令行推送
- 同名制品:
docker build -t docker.cnb.cool/\${CNB_REPO_SLUG_LOWERCASE}:latest .→docker push ...- 非同名制品:类似命令
- 云原生构建中推送:通过
.cnb.yml配置- 底部状态栏显示
22%电量、main分支、push、services等信息- 看起来是用手机 Firefox 浏览器打开的页面
总结: OCR 能力是 NPC 的一项实用功能,主要通过多模态模型或 Tesseract 引擎实现。对于截图中的中文文字识别,Tesseract 的效果还不错但不如多模态模型精准。如果你需要更高精度的图片识别,可以召唤支持多模态的 NPC 来处理。
deepseek-v4-pro
@samsong(AcidBunny) 我看了一下这份流水线日志(构建 sn: cnb-klo-1joojgph9-001),这是我上一次被召唤时执行的构建记录。以下是分析:
00:00:00 到 00:00:53)| 阶段 | 耗时 | 说明 |
|---|---|---|
| 网络初始化 | ~1s | network-bus、orange-tc 容器启动 |
| Git 仓库克隆 | ~1.5s | CoW 快照,已缓存 |
| NPC 镜像拉取 | ~12.5s | 拉取 cnbcool/default-npc:latest(有新层需下载) |
| Skill 加载 | ~5s | 加载了 15+ 个 SKILL.md 文件 |
| OCR 识别 | ~5.3s | Tesseract 两次调用(psm 6 和 psm 3) |
| 评论回复 | ~0.5s | 调用 API 发布评论 |
| 清理 | ~1s | 清理容器和网络 |
Skill 加载开销大:每个 Skill 文件都是单独 cat 读取,15+ 个文件串行执行,累计约 5 秒。可以通过并行读取或按需懒加载来优化。
镜像拉取:cnbcool/default-npc:latest 花了 12.5 秒拉取新层。如果 Runner 侧有缓存策略可以避免每次都拉取。
OCR 重复调用:Tesseract 被调用了两次(--psm 6 和 --psm 3),第一次已经能得出结果,第二次是冗余的。
流水线整体运行正常,没有报错或失败。构建 sn 从文件名看就是 1joojgph9-001,属于一次标准的 NPC 执行流程。有什么具体想关注的环节吗?
@samsong(AcidBunny) 来了!我跑的是 deepseek-v4-pro 模型,不过目前这个模型同样不支持直接读取图片像素内容(多模态能力),所以和你之前召唤的 CodeBuddy 一样,我也是靠 Tesseract OCR 来识别你上传的截图。
这张截图是 腾讯 TIM 聊天界面(文件名 com.tencent.tim),时间是 20:59,关键内容是:
反复出现 "还在处理中,请稍等…"
看起来是某个 AI/处理流程卡住了,一直在输出"还在处理中"而没有实际返回结果。
| 之前那个 CodeBuddy | 我 (deepseek-v4-pro) | |
|---|---|---|
| 底层模型 | 默认模型 | deepseek-v4-pro |
| 多模态看图 | ❌ | ❌(同样是 Tesseract OCR) |
| OCR 引擎 | Tesseract | Tesseract |
| 识别结果 | CNB 制品库文档页 | TIM 聊天界面 / "还在处理中" |
另外我看了你附件的流水线日志(cnb-klo-1joojgph9-001.log),里面记录了之前那个 NPC 的完整执行过程——它用 Tesseract 识别了第一张截图(CNB 文档页),然后 Comment 回到这个 Issue,整个流程正常结束了。
你这张 TIM 截图是在反馈某个流程卡住了吗?需要我帮忙排查什么?
文字侦探在线OCR
@samsong(AcidBunny) 我来看看这张图片!🔍
这是我通过 PaddleOCR-VL 视觉语言模型识别出的内容:
21:14 | 4G 4G 67 | cnb-4j8-1jogifpuc-001-happ
终端
已连接
/workspace
探索项目代码结构
在线
终端
设置
看起来这是一张 CNB 在线终端(Web Terminal) 的手机截图,通过 Firefox 浏览器访问,显示的是一个已连接到 /workspace 目录的终端界面。
我的 OCR 流程如下:
| 其他 NPC(如 CodeBuddy) | 我 (npc/ocr) | |
|---|---|---|
| OCR 引擎 | Tesseract(传统 OCR) | PaddleOCR-VL(多模态视觉语言模型) |
| 识别方式 | 基于模板匹配和字符分割 | 基于 Vision-Language 模型理解 |
| 中文识别 | 一般 | 更强(VL 模型对中文理解更好) |
| 复杂排版 | 容易出错 | 更好(能理解上下文布局) |
简单来说,我用的是更先进的 多模态视觉语言模型 来做 OCR,而不是传统的 Tesseract 引擎,所以在复杂排版和多语言场景下效果会更好 😊
@cnb.ageYeGZgDeAA(AAA本地文件夹 ) 我尝试用 Tesseract OCR 识别了这张图片,但遗憾的是效果非常有限。
| 属性 | 值 |
|---|---|
| 来源应用 | 小红书(XHS / com.xingin.xhs) |
| 页面 | NoteDetailActivity(笔记详情页) |
| 截图时间 | 2026-05-17 00:57:23 (UTC+8) |
| 手机型号 | REA-AN00(华为 nova 系列) |
| 图片尺寸 | 1200 × 2664 像素(长截图) |
| 文件大小 | 约 445 KB |
Tesseract 仅能勉强识别出顶部状态栏的部分内容:
但正文内容几乎无法识别,原因可能是:
如果需要高质量识别小红书截图内容,建议召唤 @npc/ocr(文字侦探在线OCR),它使用的是 PaddleOCR-VL 多模态视觉语言模型,对这类中文社交平台截图的识别效果会好很多。
你想做什么
想要了解npc的ocr能力
已尝试的步骤 / 参考的文档
@CodeBuddy 你有ocr能力吗?ocr能力是如何提供的?
你看到了什么?