跳到主内容

dsh-ocr-local

6Star0Fork0Issue0Watching

本地图片转文字 OCR 插件,基于 PP-OCRv5 与 ONNX Runtime 离线识别,支持 TUI/Web 粘贴图片自动调用。

机审证据4/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
NOASSERTION
分支
main
deepseek-harnessdsh-pluginocronnxruntimepp-ocrv5

安装

命令web profile
$ dsh plugin --profile web add dsh-ocr-local

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 balcoz/dsh-ocr-local:先查看仓库 https://github.com/balcoz/dsh-ocr-local 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

给 DeepSeek Harness 加一个本地图片转文字能力:把截图、报错弹窗、聊天记录或文档照片粘贴到会话里,插件自动调用本地 PP-OCRv5 模型读出里面的文字。整个识别在本地完成,图片不出电脑,也不需要视觉大模型。

核心能力

  • 在 TUI 终端客户端和 Web 端粘贴图片,路径自动插入输入框,文本模型自动调用 ocr_image 识别图片中的文字
  • 注册 ocr_image 工具,传入图片绝对路径返回识别结果(按行输出,每行带置信度)
  • 注册 ocr_setup 工具,一键建 Python 虚拟环境、装 ONNX Runtime 等依赖、下载识别模型(约 20MB),整套流程幂等
  • 图片保存到本地缓存 ~/.dsh/ocr/cache,按内容哈希去重,按文件数和天数自动清理
  • 暗色主题截图自动反色处理,识别结果中字太小或置信度低的行会被标记 ⚠

技术实现

  • 语言: Node.js(插件宿主)+ Python(OCR 推理脚本),cordis 插件协议
  • 关键依赖: @deepseek-ai/cordis(宿主集成)、@deepseek-ai/dsh-tools(工具注册)、onnxruntime + opencv-python-headless + numpy(Python 侧 OCR 推理)、PaddleOCR PP-OCRv5 mobile 模型(ONNX 格式)
  • 架构模式: 插件同时提供 Node 侧 cordis 插件(dsh/index.js 注册 ocr_image/ocr_setup 工具与 /ocr/paste HTTP 路由)与浏览器侧 lazy-CJS 模块(dsh/client.js 监听 paste 事件并通过 fetch 把图片字节上传到宿主路由),通过 dsh.client.inject 字段自动注入到 Web 端;Python 脚本被 Node 端通过 child_process.execFile 调用,标准输出以 JSON 形式回传
  • 入口文件: dsh/index.js(cordis 插件主入口)、dsh/client.js(浏览器侧 paste-to-path)、ocr/ocr.py(PP-OCRv5 推理)、ocr/setup.py(一键自举)

适用场景

当模型无法直接看图(文本模型、上下文窗口紧张、关闭了视觉桥),但你想让 agent 读截图、报错弹窗、聊天记录或文档照片里的文字时,安装这个插件即可让"粘贴图片"和"读出图片里的字"两步无缝衔接。它特别适合处理敏感截图——图片全程不出本地机器,且不依赖任何云端视觉 API。

前置依赖与兼容性

依赖最低版本说明
宿主 DSH通过 @deepseek-ai/cordis ^4.0.1 + @deepseek-ai/dsh-tools ^0.0.1-rc.1 集成包内未单独声明 DSH 版本字段,由宿主运行时提供
Node.js未声明包内未声明 engines 字段,宿主 dsh 提供 Node 运行时
Python仅做 python3/python 调用,未限制最低版本首次使用时会自动建 venv 装 onnxruntime/numpy/opencv-python-headless
平台macOS / Windows / LinuxTUI 端粘图补丁在三大平台都做了适配,Linux Wayland 需装 wl-clipboard,X11 需 xclip
原生模块无仅使用 Node 内置模块(fs/crypto/path/child_process)与 Python wheel(onnxruntime 等通过 pip 装)

安装方式

dsh plugin --profile web add dsh-ocr-local

提示:DSH 的 profile 互相隔离,TUI 端需要再装一次并跑安装脚本配置粘图键(./install.sh --profile <profile> 或 powershell -ExecutionPolicy Bypass -File install.ps1 -Profile <profile>)。

配置项

配置文件位于 ~/.dsh/profiles/<profile>/cordis.patch.yml,所有项都有默认值,不填也能用。

配置类型说明默认值
autoOcr布尔监听会话里的图片附件,自动保存并提示模型调用 ocr_image 本地识别true
pasteToPath布尔Web 端「粘贴图片自动转成路径插入输入框」true
pythonPath字符串指定 OCR 用的 Python 解释器路径;留空则按 venv → DSH_OCR_PYTHON → python3/python 自动找未设置
modelDir字符串模型存放目录~/.dsh-ocr/models
maxCacheFiles数字粘贴图片缓存最多保留的文件数;超出按修改时间淘汰最旧300
maxCacheAgeDays数字粘贴图片缓存保留天数;过期自动清理30

常用环境变量:

变量作用
DSH_OCR_MODELS_MIRROR模型下载镜像前缀(国内下载慢时设,如 https://ghproxy.com/)
DSH_OCR_PYTHON指定 OCR 用哪个 Python(默认自动找)
DSH_OCR_MODELS模型存放目录(默认 ~/.dsh-ocr/models)
DSH_OCR_VENV自定义 venv 目录(默认 ~/.dsh-ocr/venv)

常见问题

Q: 首次使用报错"环境未就绪/缺少依赖"怎么办?

A: 对 agent 说"用 ocr_setup 工具安装 OCR 环境",插件会自动建 Python 虚拟环境、装 onnxruntime/numpy/opencv-python-headless、下载 PP-OCRv5 模型。也可手动跑 python .../ocr/setup.py,整个流程幂等可重复执行。

Q: 模型下载很慢或失败?

A: 设镜像前缀后重跑:DSH_OCR_MODELS_MIRROR=https://ghproxy.com/ python .../ocr/setup.py。下载带 sha256 校验,文件损坏会自动重新下载。

Q: TUI 端粘贴图片没反应?

A: 先确认终端能读到剪贴板图片:Windows/macOS 开箱即用;Linux Wayland 需要装 wl-clipboard,X11 需要装 xclip,否则终端读不到剪贴板图片、粘贴会静默失败。装好后再粘贴即可。

Q: Web 端粘贴图片没反应?

A: 确认插件装到了 web profile、配置 pasteToPath 没被改成 false、且重启过 dsh web。浏览器控制台会有 [dsh-ocr] 报错信息。

Q: 识别结果有错字?

A: 看输出里的 ⚠ 标注,字太小或置信度低的行会被标记。把原图放大一点再试,或让 agent 把对应行再确认一遍。PP-OCRv5 mobile 对长行、艺术字、模糊图效果有限。

Q: 升级插件后功能没变化?

A: 重启 dsh 让插件重新加载。TUI 端升级后若粘图失效(插件文件被覆盖),重跑安装脚本 install.sh 或 install.ps1 即可(补丁幂等)。

Q: 系统提示 pip externally-managed-environment(PEP 668)?

A: 不要加 --break-system-packages。直接用 ocr/setup.py,它会自动创建虚拟环境,绕开系统 Python 的限制。

上手难度

入门 — 安装后只需对 agent 说"用 ocr_setup 安装环境"或"识别这张图片"就能跑起来,无需写任何配置;如要换粘图键或改缓存策略再编辑 cordis.patch.yml。

已知问题与限制

  • 极小的字(如 4px 以下)或低检测置信度的行会被标记为低置信,识别结果可能出错(详见 ocr/ocr.py:59-60)
  • TUI 粘图键仅支持 ctrl+v / ctrl+shift+v / alt+v 三选一,其他组合不被识别(详见 patch/apply-cc-tui-patch.mjs:23)
  • Web 端单次粘贴的图片大小上限 16MB(PASTE_MAX_BYTES),超出返回 413
  • Linux Wayland 下粘贴图片需要 wl-clipboard,X11 需要 xclip,否则终端读不到剪贴板图片、粘贴会静默失败(详见 docs/usage.md:108-114)
  • 模型仅 PP-OCRv5 mobile,对长段落、艺术字、手写体、严重模糊或压缩图效果一般
  • autoOcr 默认开启,关掉后模型不会再自动识别粘贴的图片(仍可手动让模型调 ocr_image)

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/balcoz/dsh-ocr-local)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录