DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

wmk66ds /

wmk66ds/dsh-vision-unlock

Verified

去掉 DeepSeek Harness(DSH)「当前模型不支持图片」的拒绝限制:不改 app.asar,用运行时接缝放行未声明多模态能力的模型

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: master@ba8b3630

dsh-vision-unlock

去掉 DeepSeek Harness(DSH)「当前模型不支持图片」的拒绝限制,让未声明多模态能力的模型也能发送和读取图片。

不修改 app.asar 里任何一行代码,也不改配置树——纯运行时接缝,随 DSH 升级继续可用。

为什么会被拒绝

DSH 判定一条路由能否吃图片,依据两处能力声明:

  • LlmModelInfo.inputModalities(可选字段)。缺这个字段,或数组里没有 "image", 就被当成纯文本模型。这是所有门禁的唯一判定来源:

    位置 表现
    会话控制器 prompt() 发送时弹「当前模型不支持图片,请切换支持图片的模型」
    子代理 assertImageCapable 向子代理发图被拒
    read_file 读图 does not declare image input
    MCP / ACP 图片注入 同上
  • 适配器自己持有的模型表(不经过上面那处)。pi-ai 在发请求前查 model.input.includes("image");deepseek 适配器序列化前查 connection.models[].inputModalities。

典型触发场景:自定义/本地网关路由(如 Agent2API、自建 OpenAI 兼容网关)在配置里只写了 id / name / contextWindow / maxTokens,没写 input,于是落到默认值 ["text"], 被判定为不支持图片——哪怕上游模型其实支持。

本插件怎么做

只用两个运行时接缝:

  1. 包装 llm.resolveModelInfo,给结果补上 "image" → 拆掉上表中所有门禁。
  2. 遍历 llm.adapters,把适配器模型表里的 input / inputModalities 补上 "image" → 拆掉 pi-ai 的自检。适配器换快照(配置热更新)时自动重做。

安装

方式 A:用 plugin_manager 安装(推荐)

在 DSH 里让 agent 执行:

plugin_manager  action: install_bundle  target: github:wmk66ds/dsh-vision-unlock

或在 Web UI 的 设置 → 插件 面板里,把上面这串填进安装框。

target 也可以写完整 URL,两种等价:

写法 说明
github:wmk66ds/dsh-vision-unlock GitHub 简写,推荐
https://github.com/wmk66ds/dsh-vision-unlock 完整 git URL

锁定版本用 # 加 ref:

github:wmk66ds/dsh-vision-unlock#v1.0.0

若本机访问 GitHub 不畅,DSH 走的是它自己的网络栈;必要时先确认你的代理环境 能被 DSH 进程继承(例如 Clash Verge 的 TUN / 系统代理)。

方式 B:手动安装(CLI 或插件管理不可用时的降级方案)

  1. 把本仓库放到一个稳定的路径,例如 D:\workbench\dsh-vision-unlock。

  2. 在你的 profile 目录(默认 ~/.dsh/profiles/desktop/)的 node_modules 下建立指向它的链接:

    cmd /c "mklink /J `"%USERPROFILE%\.dsh\profiles\desktop\node_modules\dsh-vision-unlock`" `"D:\workbench\dsh-vision-unlock`""
    
  3. 编辑该 profile 的 package.json,在 dsh.profile.bundles 数组加入 "dsh-vision-unlock", 并在 dependencies 加入 "dsh-vision-unlock": "link:D:/workbench/dsh-vision-unlock"。

  4. 重启 DSH。

Windows 上用 junction(mklink /J)而不是符号链接——后者需要管理员权限。 注意 desktop profile 由 Electron 应用独占管理,dsh plugin --profile desktop 会拒绝执行,所以才有这里的手动步骤。

配置

cordis.patch.yml 里的 config:

- insert:
    - id: vision-unlock
      name: 'dsh-vision-unlock'
      config:
        providers: []   # 留空 = 所有 provider;否则只放行列出的
        models: []      # 留空 = 所有模型;否则只放行列出的

两个白名单都为空时全部放行;非空时需同时命中才放行。

已知边界

  • deepseek 适配器的模型表来自它自己的 plugin config,不经由 llm.adapters 暴露, 本插件改不到。该路由如需图片,请在设置页给模型勾选 Image(等价于写 inputModalities: [text, image])。
  • 放行后图片真的会发出去。若上游实际不支持多模态,报错会从模型侧返回, 不再是 DSH 本地拒绝——这是预期行为,不是 bug。

卸载

从 profile 的 package.json 中删掉 dsh-vision-unlock(bundles 与 dependencies 两处), 删除 node_modules/dsh-vision-unlock,重启 DSH。

适用版本

针对 DSH 桌面版(含 dsh-llm / dsh-llm-pi-ai / dsh-api-session-controller)验证。 依赖的是 llm.resolveModelInfo 与 llm.adapters 这两个接口,若上游改动需要同步调整。

许可证

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit ba8b3630185b

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout