dsh-cache-hit-precision:让 DSH 状态栏的缓存命中率显示两位小数

前言

dsh web 的状态栏下方有一行统计信息,缓存命中率是其中一项。这个数值默认不按两位小数显示,想观察它在相邻轮次之间的细微变化时,读数不够用。

要改这类显示,直接修改 dsh 安装目录里的代码是一种做法,但改动会和上游环境混在一起,不好维护。DSH 的理念是「一切皆插件」,这类界面上的小改动正适合用插件解决。下面介绍的就是这样一个小插件:dsh-cache-hit-precision,作者是 luern0313。

插件简介

dsh-cache-hit-precision 面向 dsh web 平台(package.json 中 dsh.client.platform 为 web),当前版本 1.0.0,MIT 协议开源。它做的事用一句话概括:让状态栏下方的缓存命中率显示两位浮点数。

具体来说:

  • 唯一变化的是 stats.cacheHit 这一项:从 tokenUsage 投影重新计算精确百分比,再以两位小数输出
  • 轮次、步骤、耗时、TTFT、token 等统计项照常显示,一律不动
  • 界面文案自动跟随当前语言,支持中文 / English
  • 非侵入:不修改 dsh 安装目录与任何上游包

工作原理

插件利用 dsh 的 slot 阴影机制包装原始的 StatsLine 组件,只替换其中 stats.cacheHit 的本地化参数:从 tokenUsage 投影重新计算缓存命中的精确百分比,再以两位小数输出。

其余数据项不经过处理,直接沿用原始组件的显示逻辑,所以统计行看起来和原来一致,只有命中率一项多了小数位。

安装与启用

插件面向 web 平台,安装命令均带 --profile web。下面三种方式任选其一,安装后需要重启 dsh web 才会生效。

1、GitHub 安装:

dsh plugin --profile web add github:luern0313/DSH-Cache-Hit-Precision

2、本地安装。先克隆仓库,再从本地路径添加:

git clone https://github.com/luern0313/DSH-Cache-Hit-Precision.git
dsh plugin --profile web add ./DSH-Cache-Hit-Precision

3、不使用 pnpm 时可以手动安装。先建立目录,把仓库软链进去:

mkdir -p ~/.dsh/profiles/web/node_modules
ln -sfn /path/to/DSH-Cache-Hit-Precision ~/.dsh/profiles/web/node_modules/dsh-cache-hit-precision

/path/to/DSH-Cache-Hit-Precision 替换为实际的仓库路径。然后在 ~/.dsh/profiles/web/cordis.patch.yml 末尾追加:

- insert:
    - id: cache-hit-precision
      name: dsh-cache-hit-precision

注意区分两个名字:GitHub 仓库名为 DSH-Cache-Hit-Precision,包名为 dsh-cache-hit-precision,手动安装时软链的目标名要用后者。

安装完成后重启:

dsh web

适用场景与注意

适合的人很明确:需要在 dsh web 里精确读取缓存命中率、关心小数位变化的用户。如果你平时不看这个数值,装它的收益有限。

安装前有几点要确认:

1、插件会以当前 dsh 进程的权限运行。安装任何第三方插件前,建议先到 GitHub 仓库通读源码、确认许可证(本项目为 MIT)再决定是否安装。

2、插件声明平台为 web,安装命令均使用 --profile web

3、安装后必须重启 dsh web 才能生效。

小结

dsh-cache-hit-precision 只解决一个问题:把状态栏下方的缓存命中率精确显示到两位小数,其余显示保持原样,也不改动 dsh 的任何安装文件。安装成本就是一条命令加一次重启。

  • 社区插件目录页:https://www.skillhub.cn/plugins/luern0313/DSH-Cache-Hit-Precision
  • GitHub 仓库:https://github.com/luern0313/DSH-Cache-Hit-Precision
羽毛球分组比赛记分
小程序二维码

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

Xiaoye