前言¶
在 DeepSeek Harness(DSH)里调模型的推理档位,常见做法是点输入框旁的模型席按钮,在菜单里逐档选择。档位多时要点好几下,颜色和强度也不会随档位连续变化。社区维护者 eloimovo 的 better-dsh-codex-effort-slider 把那颗席按钮换成一条可拖动的连续滑条:拖动即改档,填充色从蓝过渡到紫罗兰,高档位带紫色星云与星尘粒子,并接管官方模型选择面板(仍保留 provider → 模型两级结构)。下面介绍它做什么、怎么装、怎么用,以及改源码时要注意的配置与限制。
这是什么¶
better-dsh-codex-effort-slider 是面向 DSH Desktop 的客户端插件(dsh-plugin),当前版本 1.3.10,MIT 许可,零运行时依赖。它在输入区仍显示一颗「模型名 · 档位名 ⌄」按钮,点开是自建的两级浮层(provider 列表 → 模型列表与搜索),滑条在面板内连续调节推理等级;收起态与官方布局一致,不会与官方席按钮并排出现(插件以 priority: -1 遮蔽官方占用同一槽位的控件)。
宿主需暴露 slots、sessions、remote、remote.session、modelDirectories 等服务,以及 conversation.input.model、conversation.input.overlay、conversation.input.right 三个槽。README 写明已在 DSH Desktop 0.2.0-rc.2(Windows) 实机验证。
核心功能¶
连续滑条与视觉反馈¶
- 一条连续滑条,而非离散按钮;颜色与粒子由滑块位置驱动,与模型实际有几档解耦。
- 一档一色:填充从蓝渐变到紫罗兰,右端对应当前位置;官方那一行的档位文字随位置变色(
Off保持官方灰)。 - 越往右越「通电」:高档位出现紫色星云与星尘,粒子数量与横穿速度随位置变化。
- 深浅主题跟随 DSH(
body[data-ds-dark-theme]);面板使用与官方菜单相近的毛玻璃(blur(40px) saturate(150%))与半透明底。
模型席与档位行为¶
- 点模型只切换模型、不关闭面板;滑条立即跟到新模型,默认落在中间档(奇数档取正中,偶数档取「中间的下一个」,例如 4 档 → 第 3 档)。
- 拖动或点轨道改档:拖动过程中不写宿主,松手或停手 260ms 后再落地一次。
- 点档位名可展开弹层,每行显示档位名与原始 API 取值(如
max)。 Esc逐层关闭:弹层 → 二级页 → 整面板;点面板外或再点按钮关闭。- 读不到目录、宿主未列出 provider、加载失败时,面板会显示原因原文(含宿主逐 provider 报错);任一步无法识别则 fail-open,不破坏官方界面。离线测试套件 911 项通过。
安装与启用¶
安装后须完全退出并重开 DSH Desktop(仅关窗口不够;宿主在启动时加载插件)。
方式一:插件面板(推荐)¶
DSH Desktop → 设置 → 插件 → 添加插件,填写以下三者之一:
- 本地目录路径(解压 Release zip 或 clone 后的根目录)
github:eloimovo/better-dsh-codex-effort-slider- npm 包名(走 registry)
也可从 GitHub Releases 下载 better-dsh-codex-effort-slider-<version>.zip,解压后把目录路径填进面板。
方式二:一键脚本¶
当设置里没有「插件」面板时(例如 dsh-base 禁用 plugin-manager),在仓库根目录执行:
install.cmd # 装进 desktop profile
install.cmd -Profile tui # 装进别的 profile
install.cmd -Uninstall # 卸载
脚本会备份 profile 的 package.json、添加 link: 依赖、写入 dsh.profile.bundles、在 profile 的 node_modules 下建链接(Windows 为 junction)。
方式三:命令行(非 desktop profile)¶
desktop profile 由 Electron 独占,命令行会被拒绝。其它 profile 可用:
dsh plugin --profile tui add link:"<插件的绝对路径>"
dsh plugin --profile tui add github:eloimovo/better-dsh-codex-effort-slider
升级与卸载¶
- 升级:在面板重装或指向新目录,再完全退出并重开 DSH Desktop。
- 卸载:面板卸载,或
install.cmd -Uninstall。手工建的 junction 用cmd /c rmdir <junction>;不要用Remove-Item -Recurse,以免顺着链接删掉插件源目录。
典型用法¶
收起态示例(输入框右侧一颗按钮):
[ DeepSeek-V41-Flash Max ⌄ ]
点开后的常见操作:
| 操作 | 结果 |
|---|---|
| 点 provider 行 | 横向进入该 provider 的模型列表(带搜索) |
| 点某个模型 | 只切模型,滑条跟到新模型并落中间档 |
| 拖滑条 / 点轨道 | 改档位,松手或停手 260ms 后写入宿主 |
| 点档位名 | 展开档位列表(名称 + API 取值) |
面板右缘与输入框右缘对齐,底边在按钮上方 8px;页面滚动或缩放时只重新定位、不自动关闭。
本地预览 UI(无需 DSH)可先构建再打开预览页:
npm run build
npm run preview
浏览器打开 preview/panel.html;截图用参数示例:preview/panel.html?shot=1&level=max(?dark=1 深色,?level=<档位 id> 定位档位)。
配置(编译期)¶
插件没有运行时设置界面,常量改源码后需重新构建并重启 DSH:
| 常量 | 文件 | 作用 |
|---|---|---|
ENABLE_OFFICIAL_MENU_SLIDER |
lib/client.js |
默认 false:自建浮层接管官方席;true 为改造官方菜单内滑条的老模式(二者互斥) |
STARFIELD_DURATION_SPREAD |
lib/client.js |
星尘时长浮动,默认 ±8%;0 则同速 |
TRACK_HEIGHT / KNOB_SIZE |
lib/client.js |
轨道高与旋钮直径,默认 28px |
COLOR_TEXT_VIOLET 等 |
lib/client.js |
档位文字与填充色;改色前见仓库 ARCHITECTURE.md 对比度说明 |
GLASS_VARS |
lib/client.picker.src.js |
面板模糊、底色、阴影 |
改完 lib/client.picker.src.js 后执行 npm run build 生成 lib/client.picker.js。若只改 picker 未动 lib/client.js,浏览器可能因 ?rev= 缓存旧 chunk,可硬刷新(Ctrl+Shift+R)或重启 DSH,或更新 lib/client.js 的时间戳。
开发环境需要 Node >= 22(仅构建与测试;插件本体在宿主内运行,无 npm 运行时依赖)。
适用场景与注意¶
适合谁:在 DSH Desktop 上频繁切换模型与推理档位、希望 Codex 式连续滑条与视觉反馈的开发者。仍可用官方 /model 命令切模型;接管官方席按钮后,官方模型菜单入口不再从该按钮进入。
权限与安全:插件随当前 DSH 进程加载,与宿主同权限。安装前建议阅读 GitHub 仓库 源码与 MIT 许可证,从 Releases 或可信来源安装。
常见问题(摘自 README):
- 装完无变化:先完全退出重开;在 设置 → 插件 查看详情是否有
error(如package.jsonBOM 会导致整包被丢弃)。 - 「宿主没有列出任何 provider」:模型目录为空,需检查 设置 → 模型 / 账号。
- 「还没有会话」:新会话壳上尚无会话 id,发一条消息或打开已有会话即可。
- 官方 DOM 语义变更时插件会静默退回不做修改(依赖
aria-haspopup等锚点,不依赖哈希 class)。
已知限制:需重启 DSH 才加载客户端 bundle;模型与档位列表以宿主目录为准;8 档模型的满能量观感按连续曲线有意与部分参考实现不同(见仓库 MODIFICATIONS.md)。
链接¶
- 社区目录页:skillhub.cn/plugins/eloimovo/better-dsh-codex-effort-slider
- 源码与文档:github.com/eloimovo/better-dsh-codex-effort-slider
社区插件目录由 SkillHub 等站点维护,与 DeepSeek / 幻方无官方从属关系;DSH 本身遵循「一切皆插件」的扩展方式,可按需选用本插件替换输入区推理档位交互。