给 DeepSeek Harness(dsh) 用的「图片 → 文字」桥接插件。
DeepSeek 的 chat-completions 接口是纯文本的,带图片的提示词会被拒绝
(MODEL_DOES_NOT_SUPPORT_IMAGES)。本插件注册第二条 provider 路由,其适配器声明支持图片,
在每次生成前把图片块交给 Windows 内置 OCR(离线、免费、中英双语)转成文字,再委托给
真正的 DeepSeek 适配器 —— 同一个 API key 同时服务两条路由。
粘贴/拖图 → 选「DeepSeek (图片桥接)」provider → OCR 转文字 → DeepSeek 回答
多图自动支持:一条消息里贴多少张图,就逐张 OCR,各自带上「图片 1 / 图片 2 …」标记。
- DeepSeek Harness(任意包含
dsh plugin的版本) - Windows(OCR 用系统引擎;非 Windows 需装
tesseract) - 一个
DEEPSEEK_API_KEY
先把本仓库推到 GitHub,然后:
dsh plugin --profile web add github:<你的用户名>/dsh-llm-image-bridge装依赖如果卡,是网络问题 —— 给 pnpm 配国内镜像:
pnpm config set registry https://registry.npmmirror.com
git clone https://github.com/<你的用户名>/dsh-llm-image-bridge.git
dsh plugin --profile web add link:<绝对路径>/dsh-llm-image-bridge在 profile 组合的补丁层加一行(profile 自带的 cordis.patch.yml、
主目录级 $DSH_HOME/cordis.patch.yml,或 --patch 叠加文件):
- insert:
- id: llm-image-bridge
name: '@deepseek-ai/dsh-llm-image-bridge'然后在模型选择器(/model 或输入框旁的模型位)里选 DeepSeek (图片桥接),
模型 id 不变(deepseek-v4-pro / deepseek-v4-flash),只换 provider 路由。
之后直接 Ctrl+V 粘贴截图 / 拖图进输入框 发送即可。
- insert:
- id: llm-image-bridge
name: '@deepseek-ai/dsh-llm-image-bridge'
config:
provider: deepseek-image-bridge # 拥有的路由 id
displayName: 'DeepSeek (图片桥接)' # 选择器中显示的名称
backend: winrt-ocr # winrt-ocr | none
ocr:
languages: [zh-Hans-CN, en-US] # 识别器顺序,已安装的都会执行
# 转发给 llm-deepseek 的连接信息;省略则与纯 DeepSeek 路由同默认值。
apiKeyEnv: DEEPSEEK_API_KEY
baseURL: https://api.deepseek.com
models: # 默认 V4 Flash + V4 Pro
- { id: deepseek-v4-pro, name: DeepSeek-V4-Pro }图片块在发送前通过准入(因为桥接 provider 声明了图片模态),图片持久化到会话日志; 生成时适配器把每个图片块替换成带标记的文本:
[图片内容已由 OCR 转为文字|文件名: shot.png]
<识别出的文字>
不含图片的请求按原引用转发,零开销。
- DeepSeek 模型拿到的仍是文字而非像素:理解上限取决于 OCR 质量。
- 第一张图片会拉起一个 PowerShell 进程,每张图同步 OCR(通常 < 1 秒)。
pnpm exec vitest run testsMIT