dsh-client-ui-model-seat:Composer 模型座位与思考强度的一体化客户端控件

前言

在 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 的模型选择与思考强度控制,合并成单一模型座位插件。

维护者与来源:

运行要求: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 输入区上的两个触发器与一张卡片:

  1. 选模型:点模型触发器 → 左列悬停 Provider → 右列点选模型;或直接在右列搜索框输入关键字跨 Provider 过滤。
  2. 调思考强度:模型支持 thinking levels 时,点 Effort 触发器 → 拖动粒子滑块或用手柄区按钮;点 Effort 左侧文字可回到双列选模界面。
  3. 改主题色:按 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
羽毛球分组比赛记分
小程序二维码

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

小夜