dsh-model-visibility: Organizing the DSH model menu into a clear, readable, and editable capability checklist

前言

在 DeepSeek Harness(DSH)里选模型,常见两类麻烦:一是菜单里堆满嵌入、生图、生视频等用不到的条目;二是官方 session.modelCatalog 只把模型 id、名称和推理档位交给浏览器,没有上下文窗口、输入模态和模型类型。自定义中转站若只写了 defaultInput: [text],而单个模型的 input 留空,registry 会把整站模型都当成「纯文本」,对话模型在输入框里发图会被拒。

维护者 TZYCeng 的插件 dsh-model-visibility(npm 包名 @tzyc/dsh-model-visibility,当前版本 1.9.0,MIT 许可证)在 DSH 里增加 设置 → 模型显示 页面:逐模型开关控制菜单可见性,并为每个模型合并标注推理能力、思考强度档位、上下文、模态与类型;必要时可手动覆盖,甚至写回模型提供商配置。下面介绍它做什么、怎么装、典型用法与注意事项。

这是什么

dsh-model-visibility 是 DeepSeek Harness 的 bundle 插件,分类属于模型推理相关能力。它不改变 DSH 核心,而是在设置里提供一张按提供商分组的模型清单:关掉的不出现在对话作曲器的模型菜单里;留下的每一行带能力标签,标签来源分层显示(实线为已声明,虚线为目录或推断)。

插件解决的三件事与 README 表述一致:收起来(隐藏不用模型)、说清楚(真实能力与来源)、改得动(手动覆盖、可选写回 Provider、默认可让判定为多模态的中转站对话模型在请求侧接受图像)。

核心功能

模型菜单与分组

  • 逐模型开关:关闭的模型立即从模型菜单消失;当前会话正在使用的模型即使被关也会保留(便于收起态仍显示模型名)。
  • 分组批量操作:每组标题右侧可「全组隐藏 / 全组显示」;工具栏「全部显示」一次清空隐藏;在筛选状态下批量操作只作用于当前筛选结果。
  • 分组折叠:折叠状态保存在浏览器 localStorage,不改动任何模型开关;工具栏可一次折叠或展开全部分组。

能力标签与筛选

能力标签包括:是否支持推理及适配器公布的思考强度档位;上下文窗口(如 上下文 1M);多模态 / 纯文本 / 未知;类型色条区分对话、生图、生视频、嵌入、重排、音频、审核、翻译等。

筛选支持:按名称或 ID 搜索;按类型快捷筛选;按「多模态」「支持推理」;按最小上下文(128K / 256K / 512K / 1M);多条件同时生效。

能力从哪里来

插件按优先级合并六类来源,每层只补前一层缺失字段;页面悬停可看到具体来源,并用实线 / 虚线区分声明与推断:

优先级 来源 说明
0 manual 用户在设置页手动声明
1 config 设置文档或 Provider 显式模态
2 adapter 适配器 / 内置目录侧声明
3 provider 中转站 GET /models 返回的字段
4 catalog 内置 pi-ai / models.dev 快照
5 inferred 模型名特征推断

另有 official 校正(如 glm-5.3 按厂商文档纠正目录多模态错误)和 unknown(不把未声明的 defaultInput: [text] 当成纯文本)。manual 优先级最高。

手动覆盖与写回提供商

模型行「编辑能力」可指定类型、上下文、输入模态、思考强度或「不支持推理」。全部留空保存即删除覆盖,恢复自动识别。覆盖持久化在 $DSH_HOME/dsh-model-visibility/overrides.json,Host 按文件 mtime 重读。

勾选「同时写入模型提供商设置」时,会把 input、contextWindow、reasoningEfforts 等写入 llm-pi-ai 里对应模型条目,与输入框、适配器及其他设置界面共用同一份事实。成功写入的字段会从 overrides.json 移除。

示例(摘自 README,字段名以文档为准):

{
  "version": 1,
  "overrides": [{
    "provider": "chatgpt",
    "model": "gpt-6.1-terra",
    "input": ["text", "image"],
    "contextWindow": 400000,
    "efforts": [
      { "id": "low", "name": "Low" },
      { "id": "high", "name": "High" }
    ],
    "defaultEffort": "high"
  }]
}

图像放行

默认开启的开关「让输入框按能力标注放行图像」:对判定可输入图像的中转站对话模型,在请求侧补上 image,无需改配置文件;关闭则回到适配器声明。

隐藏列表持久化与其他

隐藏列表写入 profile 的 cordis.patch.yml,并镜像到 $DSH_HOME/dsh-model-visibility/hidden.json,重装或 profile 自愈后可恢复。工具栏「重新获取能力」会作废旧缓存与进行中的扫描,重新询问适配器与中转站(比仅绕过 TTL 的「刷新」更彻底)。支持模型 ID 归一化后再匹配目录。

安装与启用

可在社区目录页一键安装(独立站点 awesome-dsh-plugin 列表页,与 DeepSeek / 幻方无官方从属关系),或使用 plugin_manager 的 install_bundle。README 给出的方式如下:

# 1) 插件市场(推荐)
#    https://awesome-dsh-plugin.com/p/TZYCeng/dsh-model-visibility/

# 2) npm(plugin_manager)
#    install_bundle  target = @tzyc/dsh-model-visibility

# 3) GitHub Release tar 包
#    install_bundle  target = https://github.com/TZYCeng/dsh-model-visibility/releases/latest/download/dsh-model-visibility.tgz

# 4) 本地目录(开发)
#    profile 里 link 这个目录,并先安装依赖:
npm install

说明:npm 上的未作用域包名 dsh-model-visibility 属于另一个同名项目,本插件发布在 @tzyc/dsh-model-visibility。

安装后刷新页面或重启 DSH,在 设置 → 模型显示 打开页面。SkillHub 目录页:https://www.skillhub.cn/plugins/TZYCeng/dsh-model-visibility。

典型用法

  1. 先瘦身菜单:在中转站分组里关闭嵌入、生图等不用的模型,或用「全组隐藏」再逐个打开需要的对话模型。
  2. 核对发图能力:看行内模态标签与虚线 / 实线来源;若中转站 GET /models 只有 id,对新模型点「编辑能力」声明 text + image,需要长期生效可勾选写回 Provider。
  3. 过滤长上下文:在筛选栏选最小上下文 1M,再配合「支持推理」,快速缩小候选列表。
  4. 目录与中转站不一致:若出现「官方校正」标签,以文档链接为准;仍不对时可手动覆盖,必要时用「重新获取能力」刷新中转站列表。

界面顶部会显示类似「已显示 86 / 301 个模型 · 已关闭 215 个」的统计,并与搜索、类型按钮、图像放行开关、图例同屏操作。

适用场景与注意

适合谁:配置了多个模型提供商或 OpenAI 兼容中转站、模型数量多、需要在菜单里区分对话与生图 / 嵌入、或经常被 defaultInput: [text] 误导模态的用户。

运行与信任:插件以当前 DSH 进程权限运行,会读取并 patch 设置、调用中转站 GET /models、写入 profile 与 $DSH_HOME 下 JSON。安装前应查看 GitHub 仓库 源码与 MIT 许可证,仅在可信环境启用。

已知边界(来自 README 结构中的「限制」章节标题及前文逻辑):手动「恢复自动」只删插件覆盖,不会自动清空已写入 Provider 的配置;写回失败时本地覆盖仍生效,需在「设置 → 模型提供商」手动撤销。README 标明测试 72 passing,具体限制条目以仓库文档为准。

结尾

dsh-model-visibility 把 DSH 模型菜单从「一长串 id」变成可搜索、可筛选、带来源说明的能力清单,并能把隐藏偏好与覆盖持久化。若你正在维护多中转站或自定义模型列表,值得在装 bundle 后先打开 设置 → 模型显示 收一遍菜单、标一遍能力。

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

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

Xiaoye