dsh-model-manager: Unifying Multi-Vendor Models, Quota, and Actual Usage Into a Single Dashboard

前言

DeepSeek Harness(DSH)支持通过各类模型与渠道插件同时接入多家 API。接入一多,对话框里的模型下拉会把不同供应商的模型混在同一列表里,来源不好分辨,也容易误选。额度分散在各渠道设置页或官方账号里,本地到底消耗了多少 token,若只靠印象或粗略估算,很难按小时、按日做对照。

下面介绍社区插件 dsh-model-manager(维护者 Rexray117,GitHub 仓库 Rexray117/dsh-model-manager,当前版本 1.4.1,MIT 许可证)。它在 DSH 侧栏增加独立全页「模型管理」,不遮挡 Harness 原生界面:按供应商查看模型、屏蔽多余项、设默认模型,并汇总剩余积分/计划额度,以及从会话日志按多种时间粒度统计真实 token 用量。

这是什么

dsh-model-manager 是 DSH 桌面端/Web 端均可使用的插件(分类:模型推理)。定位可以概括为:把散落在各处的模型目录、渠道额度与本地会话计量,收拢成可管理、可量化、可屏蔽的一页控制台。

Host 侧复用 Harness 已有的 llm 与 agentDefaultModel 服务,不重复实现模型逻辑;新接入的供应商或模型插件会自动出现在页面上。数据读写均在本机完成,README 明确说明不上报、不外传页面上的数字。

模型管理

侧栏新增「模型管理」入口,打开全页管理界面。

供应商与模型清单

  • 供应商分为「已启用」(已注册适配器)与「可配置 · 未激活」(缺凭据或配置)两组。
  • 每个供应商展示名称、机器 ID、状态、剩余额度标签、模型数量、配置域(settingsNs)、默认接入地址;同名模型的归属可对照查看。
  • 逐供应商列出模型 ID、描述、输入模态(文本/图像),并标出当前默认项。
  • 支持按供应商名、ID、模型名、模型 ID、描述实时搜索;状态筛选为「全部 / 已启用 / 未激活」。

屏蔽、恢复与默认模型

  • 每行眼睛按钮控制该模型是否出现在对话框模型菜单;表头提供「全部恢复」「全部屏蔽(二次确认)」「显示已屏蔽」;已屏蔽行灰显并标注,屏蔽数量实时显示。
  • 「设为默认」把选中模型写入新会话默认(落盘到 profile 的 cordis.patch.yml);仅允许已注册且存在于供应商目录中的模型,非法调用返回明确错误且不写入错误配置。只影响新会话,当前会话仍在输入框上方模型菜单切换。

屏蔽机制因供应商类型而异(渠道 channel-pack、pi-ai 路由白名单、或其他供应商的本地记录),详见 README「模型屏蔽的两种机制」表;pi-ai 路由屏蔽会重载配置,进行中的请求可能中断,重发即可。

WorkBuddy 双版本

workbuddy 路由同时承载国际版(如 gpt/gemini/claude/grok 系)与国内版(如 glm/hy/kimi/minimax/deepseek 等)模型。页面上模型带「国际版 / 国内版 / 共用」标签,详情页按版本分组并提供分组屏蔽/恢复与版本筛选。

额度与消耗

「额度与消耗」视图汇总各渠道剩余积分/额度及单位(积分、tokens、USD、CNY 等)、账号数、套餐明细与滚动窗口(如 15 天);DeepSeek 官方账号可显示充值与赠送钱包。

  • 计划额度(opencode Go):对 opencode-go 等按订阅计划计量的供应商,卡片头部给出最紧一档剩余百分比(滚动窗口/本周/本月取最小),数据来自 opencode 官方用量接口(按 API key),与本地日志无关;失败时显示原因而非假数据。
  • 今日与近 7 日消耗:全局与逐供应商汇总。
  • 模型消耗速度:明细表按「加权÷日」排序,可切换今日/请求数/名称;含今日 tokens、窗口 tokens、请求数、均 tokens/次、价格倍率、加权消耗速度与吞吐等;价格倍率来自模型显示名中的 x0.5 / x0.05 / 免费 等渠道倍率。
  • 可用天数预估:额度以 token 计价时(如 ZCode),可按近期日均消耗推算约可用天数。
  • 点「刷新额度」重新查询上游;未查询过的渠道会明确标注。缺失数据源时对应字段显示 —,页面不因此报错。

额度与积分口径与各供应商自身接口一致;「余额查询失败」表示接口暂时不可用,可稍后刷新重试。

用量统计

五种时间粒度:小时 / 日 / 周 / 半月 / 月,同一份数据切换查看;空时段补零以保持趋势线连续。默认聚焦 opencode-go,可切换到任意有用量记录的供应商或「全部」。

口径为真实计量,不是估算:逐个读取会话日志 ~/.dsh/sessions/**/session.v4.jsonl.zstd(依赖 Node ≥ 22.15 内置 zstd 解压),只取 assistant/message 事件里的 usage.inputTokens + outputTokens 与 message.source.{provider,model},因此 API 直连供应商(如 opencode-go、pi-ai 路由)同样被统计。页面底部会标明本次统计涉及的会话数与请求数。

按文件 mtime + size 做增量缓存:首次扫描约 3–4 秒,之后刷新约 30–60 毫秒;会话写入中会重扫最近 2 个文件,避免漏掉进行中的会话。「加权÷日」= tokens × 价格倍率,用于横向比较消耗速度,不是货币金额。

安装与启用

插件要求 DSH 0.2.x(用到 llm、agentDefaultModel、connection 等稳定服务),平台支持 Windows / macOS / Linux;dependencies 为空,不引入第三方 npm 包。安装后侧栏即出现入口,Host 路由随插件加载生效,无需重启应用。

推荐从 Releases 下载 dsh-model-manager-1.4.1.zip(版本号以 Releases 页为准),解压到本机目录后,在 DSH 插件管理界面选择本地目录安装,或使用命令:

plugin_manager action=install_bundle target=<解压后的绝对路径>

若遇 npm 镜像缺少平台包,可指定官方源:registry=https://registry.npmjs.org/。

源码修改后,在 DSH 插件管理里关闭再启用该插件即可热重载,无需重启应用。

注意:插件以当前 DSH 进程权限运行,会读本机会话日志、~/.dsh/.credentials.yaml 中的 API key(仅 Host 进程内用于查询额度)及 profile 配置。安装前应自行审阅 仓库源码 与 MIT 许可证,确认符合你的环境与安全要求。

典型用法

  1. 安装并启用插件后,从侧栏打开「模型管理」。
  2. 在模型视图中按供应商浏览目录,用搜索/筛选定位模型;对不需要出现在下拉菜单的模型点眼睛屏蔽,或将常用模型「设为默认」。
  3. 切换到「额度与消耗」,查看各渠道剩余额度与近 7 日消耗;需要时点「刷新额度」拉取上游。
  4. 在「用量统计」中选择供应商与时间粒度,对照柱状图与明细表查看 tokens 与请求数;口径以会话日志为准,可与渠道 App 内积分显示分开理解。

Host 暴露的 HTTP 接口(均需经 Harness 浏览器鉴权)包括:GET /api/model-manager/summary、GET /api/model-manager/models?provider=<id>、POST /api/model-manager/default、GET /api/model-manager/quota?days=7、POST /api/model-manager/quota/refresh、GET /api/model-manager/usage?provider=<id>&days=30、GET /api/model-manager/plan?force=1、POST /api/model-manager/hidden 等,供页面同源 fetch 使用。

适用场景与注意

适合同时接入多家模型/渠道插件、希望统一看清来源、精简模型菜单、对照额度与本地真实 token 用量的 DSH 用户。未激活供应商需先在对应设置页补全凭据,否则无法列举模型(页面显示 —)。

DSH 生态理念是「一切皆插件」;社区目录页 skillhub.cn 上的插件条目 为独立站点收录,与 DeepSeek / 幻方无官方从属关系,安装来源以你信任的仓库与 Release 为准。

结尾

经过上面的步骤,dsh-model-manager 把模型目录、屏蔽与默认、渠道额度、opencode Go 计划窗口以及基于会话日志的多粒度用量,集中在一页完成。若要进一步了解实现与数据表,可直接阅读 GitHub README 与仓库内 index.js、quota.js、usage.js、session-scan.js 等模块说明。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye