前言¶
在 DeepSeek Harness(DSH)Web GUI 中,图片附件可能遇到两类限制:模型侧未声明图片输入,上游侧不支持图片部件。@dsh-external/dsh-image-unlock 是一个 DSH 外部插件,用于放行图片附件,并将图片块文本化,使附件路径能交给 vision skill 处理。
下面介绍它的定位、核心能力、安装方式、启用切换方式,以及需要注意的补丁问题。
插件定位¶
@dsh-external/dsh-image-unlock 由 FrostLeafKEE 维护,许可证为 MIT。
它的一句话定位是:解除 DeepSeek Harness Web GUI 的图片输入限制,让图片附件在不支持图片的上游(Console Go)下可用。
它本身不替代视觉模型,也不保证目标模型可以直接识图。实际识图需要配合 claude-vision-skill。
核心功能¶
插件主要做两件事:放行图片附件,并将图片块转换为文本标记。
1、解除 DeepSeek Harness Web GUI 的图片输入限制。
2、为未声明 input 的 llm-pi-ai 模型添加:
defaultInput: [text, image]
3、将 durable 图片块文本化为:
[图片附件: <名称>]
4、附件路径交由 claude-vision-skill/vision.js 按魔数嗅探 MIME 识别。
5、根据 claude-vision-skill 目录存在与否,即时切换文本化或原生图片部件。
6、支持在 profile cordis.patch.yml 的插件条目中附加配置:
textifyImages
skillDir
7、重装或升级后,可重新运行补丁脚本:
node scripts/patch-pi-ai.mjs
其中,defaultInput 补丁只影响未声明 input 的模型,不受 skill 开关影响。文本化只影响 opencode-go 路由,其它 pi-ai 路由行为不变。
安装¶
可以从 GitHub 安装:
dsh plugin --profile web add https://github.com/FrostLeafKEE/dsh-image-unlock.git
也可以在本地目录安装。命令中的 <本插件目录> 需要替换为实际插件目录:
dsh plugin --profile web add <本插件目录>
安装后,还需要在 profile 的 cordis.patch.yml 中插入 image-unlock 插件条目,并执行一次代码补丁:
node scripts/patch-pi-ai.mjs
启用与切换¶
插件通过 claude-vision-skill 目录的位置切换行为。
启用 skill 流程时,保持 claude-vision-skill 目录在 .agents/skills 下。此时插件会文本化图片块,附件路径交给 claude-vision-skill/vision.js 处理。
禁用 skill 流程时,把 claude-vision-skill 目录移出 .agents/skills。此时文本化关闭,请求走原生图片部件路径。若目标模型或上游不支持图片部件,仍可能无法完成识图。
运行时由标志控制:
globalThis.__dsh_image_unlock_textify
该标志为 true 时才文本化。插件条目被禁用、插件被移除,或 claude-vision-skill 目录不存在时,该标志会被清除。
配置覆盖¶
在 profile 的 cordis.patch.yml 中,可以在 image-unlock 插件条目的附加配置中设置:
textifyImages: true
强制关闭文本化时,可以设置为:
textifyImages: false
如果需要指定 skill 目录位置,可以配置:
skillDir
注意事项¶
1、该插件会针对本地 node_modules 打代码补丁。pnpm install 或升级 @deepseek-ai/dsh 后,补丁可能丢失,需要重新执行:
node scripts/patch-pi-ai.mjs
2、插件只放行图片附件并文本化,不改变模型本身的图像输入能力。
3、文本化只影响 opencode-go 路由,其它 pi-ai 路由行为不变。
4、插件以当前 dsh 进程权限运行。安装前应检查源码、安装路径与 MIT 许可证。
链接¶
GitHub:https://github.com/FrostLeafKEE/dsh-image-unlock