strawberry0321/dsh-gal 预览 preview

strawberry0321/dsh-gal

| 功能 | 说明 | |---|---| | 实时余额 | 官方余额接口,60 秒刷新;失败时保留上一次的值 | | 今日已用 | 优先官方用量接口;没有平台令牌时用「余额差额记账」推算 | | 每轮消耗 | 监听会话事件流,按 (会话, 轮次) 聚合真实 usage,对话结束即结算(重启后的第一条也会弹) | | 点击立绘 | 随机语音 + 随机立绘 + 台词以打字机效果逐字显示、居中(字号自适应,短句最多 28px) | | 语音顺序 | 默认洗牌池:一轮里每条台词各出现一次,全部放过才重洗,短期内不会重复;可切成纯随机 |

catalog descriptioncatalog 简介 / catalog description:dsh-gal —— DeepSeek Harness 的立绘挂件:实时显示余额与今日消耗、每轮对话结束结算 token 与花费、点击立绘随机播语音并逐字显示台词,立绘包/语音包都能换

Project Overview项目介绍

This is an interactive sprite plugin for DeepSeek Harness (DSH). It displays real-time DeepSeek API balance and daily usage, settles per-round consumption after chats, supports clicking to swap sprites and play voices, and allows custom assets. Use it when you need to monitor API consumption and add fun interaction to DSH. It requires a pre-configured API key, and you need to restart DSH after installation.

这是DeepSeek Harness的可交互立绘挂件插件。可实时显示DeepSeek账户余额与今日用量,对话结束结算本轮消耗,支持点击换立绘、播放语音,支持自定义素材。需监控API消耗同时添加界面趣味交互时使用,注意需先配置好DeepSeek API密钥,安装后需重启DSH。

Or use CLI install (for developers)或使用命令行安装(适合开发者)

CLI Install命令行安装

dsh plugin --profile web add github:strawberry0321/dsh-gal

strawberry0321/dsh-gal 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

该插件架构基本完善,如dsh无破坏性更新,此插件长期可用,语音包持续更新ing

dsh-gal · DSH 立绘挂件

dsh-gal:DSH 界面里的立绘挂件

DeepSeek Harness 界面里放一个会说话的立绘:实时显示 DeepSeek 余额今日已用, 每轮对话结束报出本轮 消耗与花费,点击立绘随机播放语音、随机换立绘

立绘包、语音包、图标、对话框都是普通文件夹,可以自己换。

dsh-gal:点击立绘后在对话框里逐字显示台词,再点对话框切换成余额页

功能

功能 说明
实时余额 官方余额接口,60 秒刷新;失败时保留上一次的值
今日已用 优先官方用量接口;没有平台令牌时用「余额差额记账」推算
每轮消耗 监听会话事件流,按 (会话, 轮次) 聚合真实 usage,对话结束即结算(重启后的第一条也会弹
点击立绘 随机语音 + 随机立绘 + 台词以打字机效果逐字显示、居中(字号自适应,短句最多 28px)
语音顺序 默认洗牌池:一轮里每条台词各出现一次,全部放过才重洗,短期内不会重复;可切成纯随机
没有内容表时 该语音没有台词可显示,对话框改为显示「余额 / 今日已用」;语音与随机立绘照常
点击对话框 整块切成「余额 / 今日已用」,并把消失倒计时重置为 dialogHoldSeconds(默认 3 秒,无音效
自动消失 语音播完后停留 3 秒再淡出(可配 dialogHoldSeconds);本轮收据固定停 5 秒
回归默认立绘 对话框消失后切回立绘包的默认立绘(可配 spriteRevertOnHide
自动播放 可设定每 X 分钟自动换立绘 + 播语音(默认关闭)
拖拽 / 缩放 立绘与对话框各 1–10 档,用 / + 按钮调,默认 5 档
对话框底图 设定面板里一键换图:更换图片… 选自己的图,空白底图 换成自带的纯白面板,恢复默认 还原;换完立即生效,不用重启
多包管理 立绘包与语音包分别选择,可以「A 的立绘 + B 的语音」

安装

前置:已在 DSH 里配置好 DEEPSEEK_API_KEY 凭据。

Releases 下载 dsh-gal.tgz (不带版本号的那个,永远指向最新版),然后按本地文件安装:

dsh plugin --profile desktop add C:\path\to\dsh-gal.tgz

必须重启 DSH Desktop:宿主路由和注入脚本在进程启动时装配,只刷新页面不够。

用网页端(npx @deepseek-ai/dsh web)的话,把命令里的 --profile desktop 换成 --profile web —— 网页端读的是 web profile,装到 desktop 里网页端看不到挂件 (宿主路由不会注册,页面里也不会注入脚本)。两个 profile 各自维护自己的插件, 两端都想用就两端各装一次;素材包、设置、余额记账是共用的(都在 %USERPROFILE%\.dsh 下)。

# 验证:配置树里应该出现这一行
dsh --profile desktop --dump-config | Select-String dsh-gal

# 卸载(会同时清掉 dependencies 和 bundles 两处记录)
dsh plugin --profile desktop remove dsh-gal

使用

操作 结果
点击立绘 随机语音 + 随机立绘 + 台词逐字显示;语音播完后 3 秒淡出
点击立绘(语音包没有内容表) 语音照常播、立绘照常换,对话框显示「余额 / 今日已用」;同样等语音播完再计时
点击对话框 切成「余额 / 今日已用」,倒计时重置为 dialogHoldSeconds(默认 3 秒)
拖动立绘 移动挂件,位置自动保存(改窗口大小也不跑偏)
悬浮立绘 右上角淡入 ⚙ 设定按钮
一轮对话结束 对话框自动弹出,显示「消耗 128.5K token」「花费 ¥0.28」(黑色、居中、停 5 秒);不播语音、不换立绘

位移小于 5px 算点击,超过算拖拽。打字中再次点击会打断当前这句、直接开始下一句。

设定面板

点 ⚙ 弹出(半透明白色,默认在立绘上方)。共 7 组:

# 项目 默认 说明
1 立绘缩放 5 档 1–10 档, / + 按钮
2 音量 50% 0–100%
3 语音语言 日文 点击在「日文 / 中文」间切换,只影响台词文字
4 自动播放语音 关闭 打开后可设「每 X 分钟」自动播放,默认 1 分钟
5 对话框 5 档 / 开启 / 上方 / 0% 缩放(1–10 档)、开关、位置(上方或下方)、不透明度
6 立绘包 neri 下拉选择,切换后立即随机抽一张
7 语音包 neri 下拉选择,可以和立绘包不同

「对话框」一组里还有 对话框底图更换图片… 挑一张自己的图(PNG / JPEG / WebP / GIF), 空白底图 换成随插件自带的纯白面板,恢复默认 还原成自带立绘。三者都立即生效, 不必重启 DSH;想微调裁切和留白就改 ui\dialog.json(见 docs/customize.md)。

「3 语音语言」下面还有 语音顺序洗牌池(默认)/ 纯随机,点一下切换,立刻生效。 想让某几句多放或少放,在语音包目录里放一个 weights.json(见 docs/customize.md)。

自定义立绘包 / 语音包

把文件夹放进用户目录(升级不会被覆盖),设置面板里就会多出这个选项:

%USERPROFILE%\.dsh\dsh-gal\packs\
└── mychar\
    ├── sprites\   01.png  02.png ...     ← 立绘
    ├── voices\    my0001.wav ...         ← 语音
    ├── script.csv                        ← 可选:语音 → 台词对照表
    └── pack.json                         ← 可选:显示名 / 默认立绘 / 裁切
  • 两个文件夹也可以叫 立绘\ / 语音\(或 立ち絵\ / ボイス\),插件都认,不用改名。
  • 只放 sprites\ 就是立绘包,只放 voices\ 就是语音包。
  • 语音包不放 script.csv 就是「只有语音没有台词」:点击立绘照常出声、照常换立绘, 对话框改为显示「余额 / 今日已用」。
  • 立绘的透明边距会自动裁掉,不需要自己切图。
  • 默认立绘:由 pack.jsondefaultSprite 指定;没写就按自然顺序自动选第一张 —— 所以任何立绘包都一定有默认立绘,什么配置都不写也能用。

完整格式(script.csv 列名、pack.json 字段、换对话框底图、定价表)见 docs/customize.md

文档

文档 内容
docs/usage.md 对话框的三张内容页、字号自适应、位置自适应规则、更多 FAQ
docs/customize.md 素材包完整格式、dialog.json、定价表、全部配置项
docs/development.md 余额/花费算法、HTTP 接口、两类自检、打包发布、目录结构

疑难

  • 点了立绘没声音、或者立绘不换图 / 设定里换立绘包没反应:都是同一个原因 —— 页面繁忙时浏览器会饿死低优先级的图片和媒体请求(实测 stalled 十秒以上, 一发消息就一起放行,所以症状看起来像「要聊一句才生效」)。 现在语音、立绘、对话框底图、设定图标都先用 fetch 取字节,再交给 blob: 播放 / 渲染; 取不到字节就退回原来的直连方式,不会白屏也不会静音。 控制台里出现 [dsh-gal] …字节读取失败语音播放被拒绝 就是这条路径在报错,欢迎带日志提 issue。

角色

角色 默认立绘 获取方式
neri neri 默认立绘 随插件自带
Mashiro 精简版 Mashiro 默认立绘 Releasesmashiro-pack.zip
noir音效 noir 默认立绘 Releasesnoir-pack.zip
Karuha Karuha 默认立绘 Releaseskaruha-pack.zip

下载解压到 %USERPROFILE%\.dsh\dsh-gal\packs\,刷新页面即可在设定面板的「立绘包 / 语音包」里选用。

Mashiro 有两份

  • mashiro-pack.zip —— 精简版(推荐):37 张立绘 + 135 条语音,台词逐条筛过。
  • mashiro-pack-full.zip —— 完整版:原台词过于伤感,不建议使用,296 条语音原样留存。 包 id 是 Mashiro-full,和精简版可以同时装,在设定面板里分开选。
上一个 Prev dsh-skill-evolution 下一个 Next dsh-restart-btn