dsh-pi-ai-patch:在设置里勾选模型的 text / image 模态声明

前言

在 DeepSeek Harness(DSH)里接自建网关、第三方中转或兼容 OpenAI / Anthropic 协议的端点时,模型能力往往要在 cordis.patch.yml 里手写 provider 与 models 条目。与 @WorkBuddy-ai/dsh-llm-pi-ai 配合使用时,模型是否支持图片,取决于 YAML 里有没有 input 字段:未声明时按纯文本处理,本地会拦截带图请求并提示不支持 image input。

手改几百行 YAML 时,缩进和列表层级很容易出错,还可能破坏原有注释与格式。dsh-pi-ai-patch 把「是否声明 text + image」做成设置面板里的勾选框,只改 DSH 侧的模型声明,不碰 API 与网络请求本身。

这是什么

dsh-pi-ai-patch 是维护者 sdwf4wgv5z-rgb 发布的 DSH 客户端插件(社区目录:SkillHub 条目)。定位是 cordis.patch.yml 的可视化配置模板工具:对你指定的模型写入或移除如下片段,其余 YAML 内容尽量原样保留。

input:
  - text
  - image

勾选后 DSH 会认为该模型可收图,本地拦截不再触发,上传的图片会随请求发到你配置的端点;端点是否真能识图,由你的 API 决定。声明与能力不符时,错误可能从 DSH 本地提示变为上游返回的错误。

它做什么,不做什么

插件只做一件事:在目标模型条目下增加或删除 input 列表(text / image)。它不会给 API 增加能力,不会改写请求体,不会访问外网业务逻辑。

在 dsh-llm-pi-ai 中,input 是模态声明;默认等价于 ["text"]。因此本插件解决的是「声明与使用意图一致」,而不是替后端实现多模态。

核心功能

下面能力均来自仓库 README 与 package.json 说明。

  1. 设置 → 识图配置:按 provider 分组列出模型,勾选即写入 input: [text, image](或仅 text 相关组合),取消即移除该字段。
  2. 安全编辑:行级、字节级编辑,尽量保留注释、键顺序与引号风格;写入前做 YAML 校验,解析失败则放弃写入。
  3. 自动备份:每次保存前备份为 cordis.patch.yml.bak-vision-config。
  4. 本机 HTTP 服务:仅监听 127.0.0.1:19877,供设置页与本地逻辑通信。
  5. 客户端实现方式:通过 settings.section 与 fetch 接入,不依赖 DSH 私有 API,小版本升级相对不易被打挂。
  6. Bundle 补丁:插件 bundle 携带 cordis.patch.yml 补丁入口(见 package.json 的 dsh.bundle.patch)。

依赖:yaml ^2.9.1;运行环境 Node.js >= 20。许可证 MIT,当前 package 版本 1.0.0。

安装与启用

官方快速开始以 本地 link 注册 为主,而非目录页拼接的安装命令。先做依赖安装,再在 profile 里声明 bundle。

  1. 将仓库放到本机目录(README 示例为 Windows 路径,Linux 可换成等价目录):
git clone https://github.com/sdwf4wgv5z-rgb/dsh-pi-ai-patch.git C:\dsh-pi-ai-patch
cd C:\dsh-pi-ai-patch
npm install --omit=dev
  1. 在 profile 的 package.json(通常为 ~/.dsh/profiles/desktop/package.json)中注册 link 与 bundle:
{
  "dependencies": {
    "dsh-pi-ai-patch": "link:C:/dsh-pi-ai-patch"
  },
  "dsh": { "profile": { "bundles": ["...", "dsh-pi-ai-patch"] } }
}

路径需改成你本机 clone 的实际位置;bundles 数组里保留原有条目,并加入 dsh-pi-ai-patch。

  1. 完全退出 DSH 再启动,打开 设置 → 识图配置,按端点能力勾选模型。

保存后需 再次重启 DSH 生效,因为 provider 配置在启动时加载。

安装前建议阅读 GitHub 仓库 源码与 LICENSE;插件以当前 DSH 进程权限在本机运行,并会修改你的 cordis.patch.yml。

典型用法与写入效果

在识图配置里为某个 model id 勾选支持图片后,插件只在对应模型块插入 input 段,例如:

models:
  - id: gpt-4o
    name: GPT-4o
    contextWindow: 128000
    input:
      - text
      - image

注释、键顺序、引号、BOM、换行符等其余内容按设计应尽量不动。更完整的原理、HTTP 接口与开发说明见仓库内 README.full.md(中文)与 README.en.md。

适用场景与注意

适合:已在 DSH 中使用 llm-pi-ai、通过 cordis.patch.yml 声明自建或中转模型,且需要部分模型在 DSH 侧声明 image 输入,又不想手改 YAML 的用户。

务必知晓:

  • 只改 DSH 声明,不保证上游多模态;请按端点真实情况勾选。
  • 固定端口 19877;若占用,需同时改 index.js 的 PORT 与 client.js 的 VISION_BASE。
  • 面板默认遍历 llm-pi-ai 段;使用其他 llm 插件时需调整 findModelIdx。
  • 仅修改 cordis.patch.yml,不碰 package.json、node_modules 及 .dsh 下其他状态文件。

DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。本插件在目录中分类为客户端,当前 GitHub 星标为 0,以仓库与目录页信息为准。

结尾

若你的痛点是「识图能力其实已在网关侧具备,却被 DSH 默认纯文本声明拦住」,dsh-pi-ai-patch 用设置里的一行勾选,把 input 模态写进 cordis.patch.yml,并尽量保证 YAML 编辑安全。进一步了解可访问 SkillHub 插件页 与 GitHub:sdwf4wgv5z-rgb/dsh-pi-ai-patch。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye