前言¶
DeepSeek Harness(DSH)的插件生态遵循「一切皆插件」的理念。在使用纯文本模型(如 DeepSeek)时,模型若需要识图,通常会尝试调用 read_image 工具。但在纯文本路由下,后端不支持图片输入,read_image 会因参数不匹配而报错。
dsh-ocr-vision 解决了这个问题。它新增了一个模型侧的 ocr_image 工具,利用本地 RapidOCR 引擎将图片中的文字提取为纯文本返回,从而让纯文本模型也能「看图」。
核心功能¶
该插件提供以下能力:
* 新增模型侧 ocr_image 工具。
* 通过本地 RapidOCR 进行文字提取。
* 将提取结果转换为纯文本返回。
* 支持通过 ctx.fs 读取图片。
* 支持区域裁剪。
安装与启用¶
插件支持从 GitHub 直接安装,也支持本地构建安装。
方式一:直接安装¶
使用 DSH 的 plugin 命令从 GitHub 仓库直接安装:
dsh plugin --profile headless add github:QEDQCD/dsh-ocr-vision
安装后,dsh 将自动挂载 ocr_image 工具。
方式二:本地构建安装¶
- 克隆仓库到本地。
- 安装依赖并构建:
pnpm install && pnpm build
- 安装到指定 profile:
node scripts/install.mjs --profile headless
系统要求¶
在使用前,需确保宿主机满足以下条件:
* 操作系统:Linux 或 macOS(Windows 未测试)。
* Python 版本:3.7+。
* Python 依赖:rapidocr-onnxruntime、pillow、numpy。
* DeepSeek Harness:已安装 dsh CLI 并配置了 profile。
验证¶
安装完成后,可以通过以下方式验证:
* 检查配置:dsh --profile headless --dump-config | grep ocr-vision。
* 测试 OCR 脚本:python3 ocr.py <某图片路径>。
使用方法¶
模型侧可以直接调用 ocr_image 工具。
基础调用:
ocr_image(file_path: "截图.png")
区域裁剪调用:
ocr_image(file_path: "截图.png", region: "120,80,600,400")
工具返回的纯文本格式如下:
<path>/workspace/截图.png</path>
<type>ocr</type>
<content>
报错码:ERR_DB_CONN_TIMEOUT
关键行:Connection refused -> db.internal:5432 / retry 3/3 failed
</content>
配置项¶
插件支持通过 cordis 配置调整行为:
| 字段 | 默认值 | 含义 |
|---|---|---|
pythonBin |
python3 |
运行 OCR 脚本的 Python 解释器路径 |
ocrScript |
随包 ocr.py |
OCR 脚本路径 |
ocrCommand |
空 | 完整命令前缀,用于覆盖默认解释器与脚本组合 |
scale |
2 |
图片放大倍数(默认放大以提升小字识别率) |
maxImageBytes |
50 MiB |
经 ctx.fs 读取的最大图片字节 |
timeoutMs |
60000 |
单次 OCR 子进程超时时间(毫秒) |
限制与说明¶
- 依赖要求:需要宿主机安装 Python 及 RapidOCR 依赖,否则
ocr_image会报错。 - 不支持 PDF:仅支持光栅图片格式(如 PNG、JPEG 等),不支持 PDF 输入。
- 不拦截 read_image:插件仅新增
ocr_image工具,不拦截或改写read_image。如果模型在纯文本路由下调用read_image,仍会收到工具拒绝的反馈。 - 隐私安全:图片通过
ctx.fs读取,仅在本地进行 OCR 处理,提取的文本返回给模型,图片字节不会上传至 API。
结语¶
dsh-ocr-vision 为 DeepSeek Harness 中的纯文本模型提供了本地化、隐私友好的图像文字识别能力。它不改变模型处理图片的方式,而是通过工具桥接将视觉信息转化为文本信息。
- 仓库地址:https://github.com/QEDQCD/dsh-ocr-vision
- 插件目录:https://www.skillhub.cn/plugins/QEDQCD/dsh-ocr-vision