前言¶
在 DeepSeek Harness(DSH)里,Composer 输入区通常有一个「模型座位」:选 Provider、选模型,有时还要调思考强度(reasoning effort)。社区里曾有两个客户端插件分别改同一座位——dsh-client-ui-gpt-helper 负责外观、粒子思考滑块与配色面板;dsh-model-provider-prefix 负责 Provider / 模型双列卡片。二者都替换 conversation.input.model 上的同一插槽,装在一起会冲突,只能二选一。
dsh-client-ui-model-seat 由 HimA6652 维护,把上述能力合并为一个控件(当前版本 0.2.2,MIT 许可证)。它仍以纯客户端方式运行:不发起网络请求、不访问凭据、不加载 host 模块。下文介绍它解决什么问题、怎么用,以及和旧插件的关系。
这是什么¶
一句话定位:Composer 的模型选择与思考强度控制,合并成单一模型座位插件。
维护者与来源:
- 维护者:HimA6652(
dsh-client-ui-gpt-helper与dsh-model-provider-prefix分别有贡献者记录在package.json) - 分类:客户端(SkillHub 目录归类为「可安装客户端」)
- 目录页:SkillHub - dsh-client-ui-model-seat
- 源码:GitHub - HimA6652/dsh-client-ui-model-seat
运行要求:engines.dsh 为 >= 0.2.1-rc.2。插件在 profile 中插入一行(id: model-seat),并以 priority: -2 注册模型座位,从而压过原两个插件常用的 -1 或内置控件的 0,避免同槽位硬碰硬——但仍应用 这一个 替代二者,而不是与它们并列安装。
核心功能¶
下面按界面表面说明行为(均来自插件 README)。
模型触发器与双列卡片¶
- 模型触发器显示
provider/model与 caret;点击打开 Provider + 模型双列卡片,再点一次关闭。 - 若 Composer 行上已由其他 UI(例如
dsh-providers-hub的 JetHub 徽章在conversation.input.right)展示 Provider,触发器会去掉重复前缀,只显示模型名。 - Provider 列:会话目录中的全部 Provider、各 Provider 模型数量、当前 Provider 勾选;加载失败的 Provider 显示为可重试行。
- 模型列:列头显示指针下的 Provider;列内约 30px 高的搜索框。悬停 Provider 列时只切换右侧模型列表,卡片外框不随内容跳动(合并版专门消除了旧实现里「高度随悬停内容震荡」的问题;旧 bundle 上曾测到 900ms 内约 27 次高度翻转)。
跨 Provider 搜索¶
在模型列搜索框输入时,一次检索覆盖所有 Provider 的模型,每行附带 Provider 名称。搜索不会改变卡片布局(仍为双列),避免输入时卡片反复改尺寸造成闪烁。
说明:搜索匹配模型 name 与 id,不匹配 Provider 名称;例如搜 ollama 会通过模型 id 命中 ollama/qwen,而不是搜 Provider 列。
思考强度(Effort)¶
- Effort 触发器显示当前思考档位(如
Max、Medium等);仅当选中模型声明了 thinking levels 时才渲染。 - 点击打开 粒子思考滑块面板,沿当前模型的档位阶梯拖动;支持键盘方向键 / Home / End。
- 面板头部:左侧当前档位(点击可回到双列);闪电按钮可在最高档与离开前的档位间跳转;Reset 恢复模型默认档位。粒子轨道上的 drift 始终运行(不再读写旧版
dsh-client-ui-model-seat:fast:v1锁定状态)。
外观与几何¶
- 外观面板快捷键:
Ctrl+Shift+Alt+G。支持明暗两套 token、方案库、JSON 导入导出、重置、跨侧套用与实时预览;无 profile 级配置键,状态落在浏览器localStorage(见下文配置表)。 - 卡片宽度:双列布局约 416px,思考面板约 300px,均受视口 clamp;空间不足时可翻到触发器上方。列内长列表内部滚动,外框高度在打开期间按布局冻结测量,避免悬停改高。
安装与启用¶
DSH 采用「一切皆插件」的扩展方式;SkillHub 是社区目录站点,与 DeepSeek / 幻方无官方从属关系。安装前请自行审阅源码与 MIT 许可证——插件以当前 DSH 进程权限在浏览器端执行。
环境要求:DSH >= 0.2.1-rc.2。
若你仍在使用两个旧插件,先卸载再装合并版(不要三者并存):
dsh plugin remove dsh-client-ui-gpt-helper
dsh plugin remove dsh-model-provider-prefix
官方 README 给出的安装方式如下(registry 与源码通道等价树;建议 钉版本 以免 bare name 解析到较旧发行版):
dsh plugin add dsh-client-ui-model-seat@0.2.2 # from the registry (pin it, see below)
dsh plugin add dsh-client-ui-model-seat # from the registry (bare name)
dsh plugin add github:HimA6652/dsh-client-ui-model-seat # from source
dsh plugin add link:/absolute/path/to/dsh-client-ui-model-seat # local checkout
说明:desktop profile 不能由普通 CLI 直接改 profile 文件;若使用桌面宿主,需按仓库 MAINTENANCE.md 中「安装、升级、回滚」使用桌面 host CLI。
典型用法¶
安装并启用 Web 客户端 profile 后,用法即 Composer 输入区上的两个触发器与一张卡片:
- 选模型:点模型触发器 → 左列悬停 Provider → 右列点选模型;或直接在右列搜索框输入关键字跨 Provider 过滤。
- 调思考强度:模型支持 thinking levels 时,点 Effort 触发器 → 拖动粒子滑块或用手柄区按钮;点 Effort 左侧文字可回到双列选模界面。
- 改主题色:按
Ctrl+Shift+Alt+G打开外观面板,编辑明暗侧 token 或导入 JSON;paused: true时关闭全部自定义色(面板总开关)。
开发者若需在不污染本机 ~/.dsh 的前提下验收 bundle,README 提供了临时 DSH_HOME + seatcheck profile + npm run live 的流程;默认 npm run live 不写账户模型选择,--publish 会点击模型行并断言触发器文案变化,仅适合一次性目录。
DOM 与测试可依赖稳定钩子,例如根节点 [data-model-seat="root"]、卡片 [data-model-seat="menu"](含 data-pane、data-ready 等)、列 .ms-col[data-col="providers"|"models"];自 0.1.1 起不再发射旧插件的 data-gpt-helper / data-dsh-pm-* 前缀。
适用场景与注意¶
| 你如果是… | 这个插件提供… |
|---|---|
| 需要在模型旁同时看到 Provider | 一个触发器显示 provider/model,一张卡片双列完成选择 |
| Provider 列表很长 | 悬停左列换右列模型,卡片位置固定 |
| 经常调 reasoning effort | 独立 Effort 触发器 + 粒子滑块 |
| 曾装两个旧插件只能二选一 | 一个座位合并二者能力 |
权限与安全:纯客户端 UI,不访问网络与凭据;安装前仍应检查 lib/client.js 等入口是否符合你的策略。
已知限制(README「Known limitations」):
- 同一
conversation.input.model槽位若另有插件也注册相同 priority,由挂载顺序决定谁生效,本插件不仲裁。 - 列与列之间无键盘导航;改 Provider 依赖悬停与点击;Tab 会离开卡片。
- 卡片切换 pane / Provider 时不做高度动画(有意避免旧 resize 循环);窗口 resize 会重新 clamp 已打开卡片。
- 配色仅存本浏览器 profile 的
localStorage,不随账号跨机器;迁移靠面板 JSON。 - 仅 Web 客户端表面(
dsh.client.platform: "web",桌面应用渲染同一 Web UI);终端表面不受影响。
配置存储(无 profile YAML 键):
| Key | 含义概要 |
|---|---|
dsh-client-ui-model-seat:config:v1 |
{ version: 3, hotkey, paused, crossApply, slots, schemes, sides };不读取旧版 dsh-client-ui-gpt-helper:config:v1 |
加载时、同页 storage 事件、窗口重新聚焦时会重读该记录。
结尾¶
dsh-client-ui-model-seat 把曾互斥的两个模型座位插件收成一套:双列选模、全局搜索、思考强度粒子滑块与双主题外观面板,并用固定几何与内部滚动消掉悬停选 Provider 时的卡片抖动。若你正在 DSH Composer 上长期选模型、调思考档位,可优先用此插件 替代 旧二者,并钉住 @0.2.2 安装。
- 目录页:https://www.skillhub.cn/plugins/HimA6652/dsh-client-ui-model-seat
- GitHub:https://github.com/HimA6652/dsh-client-ui-model-seat