dsh-model-picker:会话栏模型速选器

前言

在 DeepSeek Harness(DSH)里切换模型,通常依赖会话窗口右下角的模型下拉框。当 profile 里配置了多家 pi-ai 提供商、模型条目变长时,在下拉里翻找、对照能力并不顺手。社区插件 dsh-model-picker(模型速选器)在模型下拉框左侧增加一个入口,弹出按提供商分组的全量选择窗口,并与原生下拉共用同一条 per-session 模型目录与 selectModel 路径,选完后下拉框会立刻回写。下面介绍它做什么、怎么装、以及能力标签与配置的关系。

这是什么

dsh-model-picker 由维护者 faxble 发布,分类为客户端插件(platform: web,web 与 desktop profile 均可使用)。定位一句话:在 composer 模型座位旁提供「模型速选」弹窗,支持搜索、筛选、最近使用、推理档位,选择后立即生效。

纯前端实现:运行时无额外构建、无运行时依赖(使用 shell 已提供的 react),不修改 DSH 核心;通过官方扩展点 conversation.input.right 注册 UI。

核心功能

触发与弹窗

  1. 会话窗口右下角,模型下拉框左侧出现约 28px 圆形图标按钮,风格与 composer 工具栏「+」一致(悬停、焦点环、禁用态)。
  2. 点击后居中弹出选择窗口,深浅色主题随 DSH 主题变量自适应。
  3. 子代理(subagent addressed)会话没有模型目录时,按钮自动隐藏。

选择窗口里有什么

  • 最近使用:打开即显示上次用过的模型(最多 8 个,本地持久化),行内为 提供商 · 模型 形式。
  • 提供商筛选:搜索框左侧自定义下拉(全部 / 单个提供商),避免原生 <select> 在深色主题下系统面板发白。
  • 搜索:对模型名、模型 id、提供商名模糊匹配;↑↓ 移动高亮、Enter 选中、Esc 关闭。
  • 列表:按提供商分组(DeepSeek 账号 / 官方优先),分组带色条与计数;每行显示完整模型名、能力标签、「推理」徽章、「当前」徽章、选中勾;大列表懒渲染。
  • 底部:当前模型摘要、reasoning effort(推理档位) 选择器、关闭按钮。
  • 状态:加载中、加载失败(可重试)、提供商加载失败(逐条提示)、当前模型不可路由(警告)、会话被占用(专用文案)。

与原生下拉同步

弹窗内选择模型后,调用与原生下拉相同的 ModelDirectory.select({ provider, model, reasoningEffort }),走同一套 selectModel RPC。共享 store 更新后,原生模型下拉标签自动回写——任一端切换,另一端立刻显示。

能力标签来自配置,不是猜的

行内的文本 / 图像等标签读取用户 pi-ai 提供商配置里声明的 models[].input(例如 [text, image]),通过 DSH settings Remote 的 settings.describe() 扫描各命名空间 providers → models[].input 建索引。配置未写 input 的提供商不显示标签。

浏览器侧 modelCatalog RPC 返回的模型对象不含 input 字段,因此要在 profile 的提供商配置里显式声明,例如:

# profile 的 cordis.patch.yml,llm-pi-ai 提供商配置内
models:
  - id: deepseek-v4-flash-ga-260731
    input: [text, image]

同一模型 id 在不同用户处标签可能不同,反映的是各自配置,而非插件臆测。

其他

界面文案中英双语,随 DSH 系统语言(zh / en)切换。附带 MRU、搜索打分排序(精确 > 前缀 > 包含)、焦点陷阱等无障碍相关行为。

安装与启用

插件以当前 DSH 进程权限运行;安装前建议自行查看仓库源码与 MIT 许可证。下列命令摘自项目 README。

README 方式 B(远程直接安装) 给出的命令如下(platform: web 的插件在 web 与 desktop profile 中均可生效):

dsh plugin --profile web add github:faxble/dsh-model-picker

若使用本地目录安装,README 方式 A 示例为将路径换成实际插件包目录;桌面版把 web 改为 desktop:

dsh plugin --profile desktop add /path/to/dsh-model-picker

安装后重启 DeepSeek Harness,在「设置 → 插件」中启用 dsh-model-picker,或确认已自动启用。卸载可在同一界面移除插件。

典型用法

日常流程无需额外配置项:

  1. 打开任意具备模型目录的普通会话(非 subagent addressed)。
  2. 点击模型下拉左侧的速选按钮,在弹窗中搜索或按提供商筛选,或从「最近使用」点选。
  3. 需要时在同一弹窗底部调整 reasoning effort,选中模型后关闭弹窗;右下角原生下拉应已显示同一模型。

若希望列表里出现能力标签,在对应提供商的 models 条目上补充 input 数组后,保存 profile 配置并让用户 settings 生效,再打开速选窗口即可看到变化。

适用场景与注意

适合谁: 经常在多家提供商、长模型列表之间切换的 DSH 用户;希望在一个窗口里搜索、看推理能力与当前选中状态,且不想与原生下拉两套状态的人。

注意:

  • 依赖 @deepseek-ai/dsh-client-ui-model-selection 注册的 modelDirectories 服务;子代理会话无目录时入口不显示。
  • 客户端 inject 需包含 remote.settings(与 cordis 注入规则一致),能力标签才可读配置。
  • SkillHub 为社区插件目录站点,与 DeepSeek / 幻方无官方从属关系;星标等元数据以目录页为准(当前仓库公开星标为 0)。

结尾

dsh-model-picker 把「找模型、切模型、调推理档位」收敛到模型下拉旁的一个入口,并与 DSH 原生模型选择共用数据与提交路径。进一步了解可访问 SkillHub 目录页 与 GitHub 仓库 中的 README(含工作原理、目录结构与开发调试说明)。

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

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

小夜