前言¶
DeepSeek Harness(DSH)的 Web 客户端在模型选择菜单中集成了推理等级控制。默认的档位选择器在界面中占据固定空间,交互方式较为传统。dsh-effort-slider 插件针对这一模块进行了重构,在保留官方菜单结构的前提下,将档位选择替换为紧凑的滑块组件。
核心功能¶
该插件主要实现了以下交互与视觉改进:
- 菜单结构复刻:保持官方模型选择菜单的原有布局,菜单内仍显示“模型”与“推理等级”两行选项。
- 折叠式子面板:点击“推理等级”后,展开子面板,内部呈现滑块控件。该面板折叠在主菜单内,不会占用输入框周围的空间。
- 阻尼动效:拖动滑块时,彩色填充与滑块头呈现平滑的缓动效果;松手后,滑块会自动吸附到最近的挡位。
- 乐观更新:提交选择时采用乐观更新策略,在等待 RPC 响应期间不会出现挡位闪回旧值的情况。
- 自适应挡位:滑块支持的挡位数量(如 off/high/max、low/high/xhigh/max 等)由配置决定,支持任意数量。
- 视觉反馈:滑块根据挡位位置改变光效与色彩。越靠右色彩越强、光效越亮。最右侧挡位通常进入彩虹动态特效;最左侧挡位整体呈现灰暗无光状态。
安装与启用¶
使用官方插件命令进行安装:
dsh plugin --profile web add @qqqw114/dsh-effort-slider
安装完成后,重启 dsh web 进程,并在浏览器中执行 Ctrl+F5 强制刷新页面以加载新组件。
实现原理¶
插件通过覆盖 DSH 的渲染槽位来实现替换效果。
- 槽位注册:插件注册到
conversation.input.model单槽,设置priority: -100。由于 DSH 采用优先级渲染机制(数值越低越优先),此设置确保了插件组件在官方模型选择组件之前渲染,从而接管该区域的输出。 - 数据流:尽管渲染组件被替换,数据读写仍通过官方的
modelDirectories服务完成。选择推理等级时,同样调用官方的selectModelRPC。 - 菜单结构:插件复刻了官方的两层导航结构(根菜单 → 模型 / 推理等级),仅在“推理等级”的子面板内容上替换为自定义的阻尼滑块。
生态与链接¶
该插件遵循 MIT 许可证,由用户 QQQW114 维护。