dsh-speed-gauge:在 DSH 标题栏看生成速度(tok/s)

前言

在 DSH 里跑长回复或工具链时,你往往只能凭体感判断模型「快不快」:任务栏没有统一的 tok/s,usage 又是事后汇总。想对比不同模型、不同 prompt,或排查主线程卡顿对输出的影响,缺少一个始终贴在会话旁的观测面。

下面介绍社区插件 dsh-speed-gauge(维护者 MoreanP2003):装在标题栏,点一下展开半圆表盘和 30 秒趋势曲线,按秒级窗口看当前会话的生成速度,并可随时收起。

这是什么

dsh-speed-gauge 是 DeepSeek Harness(DSH)的客户端插件(同时涉及 host 与 Web UI 表面):监听 llm/stream,以约每秒 50 次的采样频率估算 tok/s,在会话内容列顶部浮层展示,不占用独立窗口。

插件市场暂未上架;安装需按 README 中的 Releases、npm 等方式手动添加。

核心功能

资料中明确列出的能力如下。

实时与趋势

  • 0–500 tok/s 半圆表盘,指针平滑跟随。
  • 30 秒流动趋势曲线,连续左移,便于看起伏。
  • 平均速度与峰值均基于最近 30 秒窗口;峰值滑出窗口后自动回落。

统计口径

  • 总输出优先累加官方 usage 的 outputTokens。
  • 实时速度:对 llm/stream 增量(正文、思考正文、工具调用参数)计字符率,再除以每 token 字符数;比例系数用官方 usage.outputTokens 在线标定;无 usage 的流按字符数估算。

与会话集成

  • 按会话隔离:切换会话或子代理时,面板数据跟着切换。
  • 面板宽度跟随内容列;标题栏「速度仪表盘」按钮可随时展开/收起,状态会记住。
  • 配色跟随宿主(深色浅字、浅色深字)。

实现要点(兼容性相关)

  • 面板在 Worker + OffscreenCanvas 中绘制;若页面 CSP 不允许 Blob Worker,会退回一行文字展示。
  • DOM 类名以 dsg- 开头,只操作自建节点,便于与其它插件共存。

安装与启用

安装前请知悉:插件以当前 DSH 进程的权限运行,安装前应自行查看源码与 MIT 许可证,确认可接受其监听流式输出与提供 Web 接口的行为。

环境要求(来自 README / package.json)

  • DSH >= 0.2.1(在 0.2.1-rc.2 上开发与验证),需宿主提供 webServer 与 llm/stream 钩子。
  • Node.js >= 20。
  • React 18 由宿主提供,插件不重复打包。

方式一:GitHub Releases 安装包(README 推荐)

到 Releases 下载发布包(README 示例文件名为 dsh-speed-gauge-1.0.0.tgz),在包所在目录执行:

dsh plugin --profile desktop add ./dsh-speed-gauge-1.0.0.tgz

方式二:npm(一条命令)

桌面端与网页版分别执行:

dsh plugin --profile desktop add dsh-speed-gauge
dsh plugin --profile web add dsh-speed-gauge

包页面:https://www.npmjs.com/package/dsh-speed-gauge。

桌面端 CLI 路径

桌面应用需使用应用自带的 CLI;普通 shell 里的 dsh 可能无法管理 desktop profile。Windows 示例:

"<安装目录>\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add <包或目录>

安装后在应用内重载一次或重启,标题栏应出现「速度仪表盘」按钮。

更新与卸载

dsh plugin --profile desktop add <包或目录>
dsh plugin --profile desktop remove dsh-speed-gauge

典型用法

  1. 安装并重载后,点击标题栏「速度仪表盘」展开面板,再点一次收起。
  2. 观察半圆表盘上的当前 tok/s 与右侧 30 秒曲线、平均/峰值。
  3. 需要清空当前会话累计与峰值时,使用面板右侧「归零」。

网页版或反向代理

自定义路由默认只接受回环地址。若通过网页版或反向代理访问,在启动 DSH 的环境中设置:

DSH_SPEED_GAUGE_ALLOW_REMOTE=1

调试采样(可选)

默认不写采样日志。需要时在环境中设置 DSH_SPEED_GAUGE_LOG=1,日志写入系统临时目录。

适用场景与注意

适合谁

  • 需要在同一会话内直观对比生成快慢、观察速度波动的 DSH 用户。
  • 调试流式输出、标定 tok/s 口径,或验证主线程卡顿是否影响采样(README 称逐 chunk 计数、主线程卡顿也不掉帧)。

使用注意

  • 插件市场尚未上架,版本以你安装的 Release 或 npm 包为准;package.json 中当前版本为 1.0.4,与 README 安装示例中的 1.0.0 .tgz 文件名可能不一致,以 Releases 页实际文件名为准。
  • 远程访问必须显式开启 DSH_SPEED_GAUGE_ALLOW_REMOTE=1,避免在非预期网络暴露观测接口。
  • 社区目录与 GitHub 星标等元数据会变动;撰写时 GitHub 显示约 1 star,不作为功能评价依据。

结尾

dsh-speed-gauge 把生成速度从「事后看 usage」变成「会话旁实时看表盘与曲线」,采样频率和 30 秒窗口在 README 里写得很具体,适合作为 DSH 观测类插件的起点。

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

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

Xiaoye