dsh-whale-ricebowl:给小鲸鱼挂件加一层「装饭喂鱼」

前言

在 DSH 里用「小鲸鱼记账挂件」(dsh-whale-widget)时,右下角能看到余额和 token 消耗,但消耗数字和界面动效往往是分开的。若希望在同一套挂件旁,用「米饭库存」把每轮真实 token 消耗可视化,并在没饭时给出讨饭、饿坏了等反馈,就需要在宿主之上再叠一层逻辑,而不是改挂件本体。

dsh-whale-ricebowl(README 中的「白饭预言家」)是 LuChen0820 维护的 DSH 工作流类插件:依赖宿主挂件,为每个对话维护独立的「装饭 → 每轮吃 → 报账 → 讨饭」流程。未安装 dsh-whale-widget 时,本插件不显示任何内容。

这是什么

一句话:给 DSH 小鲸鱼记账挂件增加的附加层,按真实 token 消耗「吃米饭」,并在每轮结束报账;饭吃完会讨饭,久不喂会进入「饿坏了」状态。

维度 说明
维护者 LuChen0820
仓库 github.com/LuChen0820/dsh-whale-ricebowl
目录页 skillhub.cn/plugins/LuChen0820/dsh-whale-ricebowl
许可 MIT(package.json 当前版本 0.5.9)
定位 不是饱食度养成、不自动装饭、不读对话内容、不联网上传;与同类 dsh-whale-food-expack(喂饭 + 饱食度)玩法不同,两者都会在鲸鱼旁摆碗,README 建议只装一个

核心功能

下面按 README 已写明的行为归纳,便于对照是否满足你的需求。

装饭与计量

1 碗默认对应 100 万 token(可在 assets/config.json 的 tokensPerBowl 调整)。装饭菜单三档:小碗 20 万、半碗 50 万、一碗 100 万。主碗加最多 4 个碗位 UI 最多显示 5 碗;超过继续记账,界面不变,下方标签仍显示剩余碗数。

每个 DSH session(对话)独立一锅饭:已装、已吃、剩余;切换对话各吃各的;数据在浏览器 localStorage(键前缀 dshwr-),刷新保留。

每轮吃饭与报账

  • DSH turn/start 后,真实 token 到账时触发吃饭动画(咧嘴、木勺舀饭、饭团进嘴、咀嚼;音效由 WebAudio 现场合成)。
  • 计费口径:本轮 assistant/message 事件中 usage.inputTokens + usage.outputTokens 累计;inputTokens 为非缓存输入(Anthropic 口径),不把 cacheReadTokens 算入;需改口径可改 lib/state.js 顶部 COUNT_CACHE_READ。
  • 宿主半端折叠会话事件,浏览器轮询 /dsh-whale-rice/turn.json;饭账仅存本地。
  • turn/end 后气泡报账,例如「这轮吃了 5.4K · 剩 3 碗」。v0.5.0 起吃饭为串行咀嚼队列,米饭下降与口数同步;短回合也会在结束后补演至少一口再报账。大约每 1800 token 一口,单轮最多 6 口(biteTokens 可配)。

讨饭与饿坏了

剩余为 0 时自动讨饭 10 次(文案随机,不连续两次相同);之后安静等待 10 分钟进入「饿坏了」:立绘发灰、标签「饿坏了…」,不喂则持续灰态(0.5.8 起按对话持久化)。点碗加饭立即恢复。

设置与画面

右键饭碗可开关:没饭时讨饭、吃饭动作、音效、米粒特效、数字标签;可查看「本对话饭账」或清空饭账。嘴部叠加层按宿主默认立绘 DSniang1.png 标定;换自定义立绘可改 assets/config.json 的 mouth,或关闭吃饭动作。

安装与启用

前置:DSH 0.2.x(README 在 0.2.0-rc.2 实测)与宿主 dsh-whale-widget@^0.4.2。

先安装小鲸鱼记账挂件:

dsh plugin --profile web add dsh-whale-widget

再安装本插件。当前 README 推荐从 GitHub 安装(npm 尚未发布时):

dsh plugin --profile web add github:LuChen0820/dsh-whale-ricebowl

npm 发布后可用:

dsh plugin --profile web add dsh-whale-ricebowl

本地开发目录:

dsh plugin --profile web add link:C:/path/to/dsh-whale-ricebowl

官方 Electron 桌面端:tapIndex 不生效,本插件通过 webserver/index-inject 结构化注入;安装方式与鲸鱼挂件一致,使用 desktop profile。改动宿主相关逻辑需完全重启桌面应用;只改 assets/ 样式或动画时刷新页面即可。

安装与运行均在本机 DSH 进程权限下执行;安装前建议阅读仓库源码与 MIT 许可证,确认符合你的环境策略。

典型用法

经过上面的安装步骤后,可按 README 中的顺序操作:

  1. 点饭碗装饭:小碗 / 半碗 / 一碗。对话开始前也可先装,饭先进入「待装饭」,第一轮 turn/start 时倒进当前对话。
  2. 正常对话:每轮 token 消耗驱动吃饭动画,米饭减少。
  3. 每轮结束:查看报账气泡中的本轮消耗与剩余碗数。
  4. 没饭:观察讨饭与 10 分钟后的「饿坏了」;需要时再加饭。
  5. 若默认 1 碗 = 100 万 token 导致碗面变化不明显,可把 tokensPerBowl 改为例如 100000(10 万一碗),改完刷新页面。

开发者本地预览(不替代真实 DSH 页面验证):

npm run demo

浏览器打开 http://127.0.0.1:19480/,左侧按钮可模拟装饭、回合消耗与音效。

适用场景与注意

适合谁:已使用 dsh-whale-widget、希望在同一挂件旁用「米饭」隐喻每轮 token、并需要 per-session 饭账与讨饭反馈的 DSH 用户。

务必注意:

  • 本插件是宿主附加层,找不到宿主 DOM 锚点(window.__dshWhaleRoot 等)时会静默隐藏并在 console 提示,不会白屏;上游改 DOM 可能导致错位。
  • 只订阅 DSH 会话状态与 usage 相关事件,不读对话正文;不向外部服务器发送饭账数据。
  • 与 dsh-whale-food-expack 同时安装会检测并提示,建议只保留其一。
  • 社区目录 skillhub.cn 为独立生态站点,与 DeepSeek / 幻方无官方从属关系;插件亦非 DeepSeek 官方产品。

结尾

dsh-whale-ricebowl 在不动小鲸鱼挂件本体的前提下,把「装饭—按真实 token 吃—报账—讨饭」做成可配置的桌面叠加层,适合需要 per-dialog 饭账与动效反馈的场景。进一步了解实现与配置见 GitHub README,收录信息见 SkillHub 目录页。

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

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

小夜