前言¶
DeepSeek Harness(DSH)采用插件化架构,允许开发者在不修改核心源码的情况下扩展功能。在构建智能体时,处理本地图片内容是一个常见需求。dsh-local-ocr 是一个独立的本地 OCR 库及 DSH 工具插件,它提供了基于系统原生能力的文字识别解决方案。
插件介绍¶
该插件由 littlewrite 维护。它通过 @napi-rs/system-ocr 适配器,将 macOS 的 Vision 框架和 Windows 的 Media OCR 封装为统一的 Node.js API。插件以 Bundle 形式存在,按需加载,不拥有缓存,也不决定 OCR 的运行时机。
安装与启用¶
在安装前,请确保环境满足以下要求:
* Node.js 20 或更新版本
* 已安装 pnpm
* 已安装 DeepSeek Harness dsh 命令
通过官方安装命令将插件添加到 Web profile:
npx -y github:littlewrite/dsh-local-ocr install
如需指定 profile,可添加 --profile web 参数。安装完成后,需重启 dsh web 使插件生效。
核心功能¶
- 本地引擎:调用系统原生 OCR 能力,无需上传图片。
- 按需加载:原生插件仅在模型调用工具时加载,不影响启动速度。
- 源码无损:不修改 deepseek-harness 源码,仅通过 Cordis patch 注入。
- 统一接口:通过
@napi-rs/system-ocr提供跨平台的 Node.js API。
典型用法¶
插件注册了一个名为 local_ocr_image 的工具,Agent 调用该工具时需传入本地绝对路径图片。
对于开发者,可直接使用其提供的库 API:
import { createOcrService } from './src/ocr.js'
const ocr = createOcrService()
const result = await ocr.recognize({
path: '/tmp/image.png',
languages: ['zh-cn', 'en-US'],
mode: 'accurate',
signal,
})
返回值包含稳定的字段:
{
"text": "recognized text",
"confidence": 0.8,
"engine": "darwin-system-ocr",
"durationMs": 12
}
当图片中无文字时,返回 text: "" 和 confidence: 0。
注意事项¶
- 系统支持:仅支持 macOS 和 Windows,不支持 Linux。
- 路径要求:图片路径必须是绝对路径。
- 运行机制:插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。