READMESource: main@c33f0384
模型控制台 · dsh-model-console
一个面板统管 DeepSeek Harness 里所有对话的模型选择:一次性批量切换,也能单独改某一个对话;顺手还能按闲置时间清理用不上的会话。
装在侧边栏「全局面板」里,紧挨着「插件」那一行。
功能
- 统一设置:选一个模型,一键
应用到所有对话,四路并发,失败的那条单独留着继续勾选,点一下重试。 - 逐行切换:每个对话一行,模型按钮点开是可搜索的浮层(按服务商分组、显示计数、当前项打 ✓),有推理等级的服务商旁边多一个等级下拉。
- 子代理树形折叠:每个主对话下挂它自己的子代理,行首
▸ N就地展开/收起。勾主对话 = 连它的子代理一起勾上(收起状态下也算),不会漏删。 - 按闲置时间筛选:
全部时间 / 1 / 3 / 7 / 14 / 30 / 90 天以上没用过,每行副标题显示· 3 天前。 - 批量归档 / 释放:勾选后一键归档(
stopActivity会先把这个会话的 turn、子代理、后台任务停掉,不当场报session-active),已归档的会话收进底部一个灰色的折叠组,在里面勾选就能批量释放回来。 - 用量与花费:每行右侧显示该对话的 token 总量(悬停看输入 / 输出 / 缓存读 / 缓存写四项),下方一张「用量与花费」卡汇总全局 token 与估算金额。用量直接读会话的
tokenUsage投影(session.list本来就带,不额外发 RPC);价格取自插件内置的参考价表,选择器里每个模型后面也会标$输入 / $输出(美元 / 百万 token)。 - 中英双语:跟随界面语言,68 个键两套齐全。
关于价格
DSH 本体不携带任何价格数据:buildModelCatalog() 返回的模型条目只有 id / name / reasoning / badge,dsh-llm-pi-ai 的源码里也写明了它从不读 cost 元数据(replay.ts 会把它清零,没有任何消费方上报花费)。所以面板里的金额只能来自插件自己维护的参考价表:
- 先按 provider + model 精确匹配(同一个 model id 在不同网关账单不同),再退化到按 model id 匹配。
- 表里没有的模型不显示价格,只显示 token 量——宁可不显示,也不编一个数。
- 金额是估算,不是账单;
cacheRead默认按输入价的 10%、cacheWrite按 125% 折算,实际以服务商计费为准。 - 想改价,直接改
client.js里的PRICE/PRICE_BY_PROVIDER两张表,刷新页面即生效。
安装
从插件市场
插件市场(dshmarket)里搜 dsh-model-console,点安装。
从 npm 命令行
dsh plugin --profile <你的 profile> add dsh-model-console
桌面端请注意:应用自己的插件管理器管理的是 desktop profile,命令行装 web profile 不会出现在桌面应用里。桌面端请在 设置 → 插件 里装。
版本兼容
- 声明了
dsh.engines.dsh: ">=0.2.1",装到太旧的宿主上会被拦下,而不是装进去静默坏掉。 - 运行时还做了一次能力探测:宿主没有
uiWorkspace.archiveSession/unarchiveSession时,批量归档、批量释放两个按钮和归档组会直接不渲染;没有remote.session.modelCatalog时页面给出明确报错而不是白屏;侧边栏插槽不存在时主面板照样能挂上。 - 只用到一个外部运行时依赖:
react。
开发
# 本地联调:把这个目录 link 到宿主 profile 的 node_modules 即可热更新
dsh plugin --profile <profile> add link:C:\path\to\model-console
改 client.js 刷新页面就生效,不用重装。
许可
MIT
No comments yet. Be the first to write one.