dsh-simple-cost:侧栏余额与会话逐轮计费

前言

在 DeepSeek Harness(DSH)里跑长对话时,上下文用量条能告诉你 token 规模,但钱包还剩多少、这一会话已经花了多少钱、某一轮是否踩在高峰单价上,往往要另开页面或自己心算。社区插件 dsh-simple-cost(维护者 lhylhy2024,分类:客户端)把账户余额、峰谷时段提示、本会话累计费用和逐轮费用收进界面三个固定落点,并对超过可配置 token 阈值的单轮提供按钮触发的 AI 分析。除 DSH 本身外无额外依赖。

这是什么

dsh-simple-cost 是 DSH 的 bundle + 客户端挂件:Host 半边读取会话事件流与账户接口做计费,浏览器半边通过同源回环 HTTP 拉状态并渲染 UI。它不发布到 npm,源码与说明在 GitHub,目录页见 SkillHub。社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

界面上的三个落点

设计取向是侧栏只保留「余额 + 时段」,会话相关数字放进对话流,避免重复。

落点 Slot 内容
侧栏底部用户栏正上方 sidebar.footer.action 账户余额(¥ / $,含赠送余额);高峰/空闲时段徽标;距下次切换的分钟数
会话页底部居中信息条 conversation.composer.dock 本会话累计花费(如「本会话 ¥1.2345」);累计 token 与轮数仍由 DSH 自带 ContextMeter 显示
每一轮回答的动作行 conversation.chat.assistant-actions 「用量 xxM tok」后的本轮费用;总 token ≥ 阈值时出现「AI 分析」按钮(自绘 A 图标)

计费口径

依据 DeepSeek 官方价目表,插件内置版本戳 PRICE_VERSION = 2026-09-10(README 记载抓取日期 2026-10-13)。核心公式:

cost = 命中输入/1e6 × P_hit + 未命中输入/1e6 × P_miss + 输出/1e6 × P_out

要点如下:

  1. P_* 由 (模型, 高峰|空闲) 决定;空闲价为高峰价的 50%(官方两套并列价目表,非折扣表述)。
  2. 高峰时段:北京时间周一至周五(不含中国法定节假日)09:00–12:00、14:00–18:00;其余为空闲,含周末全天与法定节假日全天。
  3. 缓存写入(cacheWriteTokens)按未命中输入计价;思考 token(reasoningTokens)计入输出计费。
  4. CNY 与 USD 为两套独立价目表,按余额接口返回的 currency 选表,不做汇率换算。
  5. 时段归属按该轮开始时间判定。

内置价目表(元 / 百万 tokens):

模型 命中·空闲 命中·高峰 未命中·空闲 未命中·高峰 输出·空闲 输出·高峰
deepseek-flash 0.02 0.04 1 2 4 8
deepseek-v4-pro 0.15 0.30 4.5 9.0 13.5 27.0

官方调价时,维护者需改 index.js 顶部的 PRICES / HOLIDAYS 并更新 PRICE_VERSION;界面不主动提醒价目变动。

为什么逻辑在 Host 半边

浏览器半边拿不到逐轮 token(只在 Host 会话日志 ctx.sessions.get(id).snapshotEvents() 里)、账户凭证(ctx.deepseekAccount 文档写明仅 Host 可拿请求凭证),也无法调用生成类 LLM(客户端 Remote 的 llm 仅有发现/列表接口)。第三方插件又不能注册新的 Remote namespace,因此采用回环路由:

浏览器 client.js  ──fetch 同源──▶  Host index.js
                                        GET  /dsh-simple-cost/state?sessionId=
                                        POST /dsh-simple-cost/analyze

路由仅接受 127.0.0.1 / ::1。会话作用域 slot 上的组件自带 sessionId,不依赖 URL 中的会话标识。

安装与启用

本插件不在 npm 上发布。README 给出两种方式:

① 从仓库目录安装——克隆到本地后,让 DSH 按目录安装:

git clone https://github.com/lhylhy2024/dsh-simple-cost.git
plugin_manager { action: "install_bundle", target: "<克隆下来的绝对路径>" }

② 插件市场——提交至 awesome-dsh-plugin 精选列表后,可在 DSH 内置 dshmarket 一键安装。

安装后刷新页面即可看到三处落点。修改 client.js 后刷新即可;修改 index.js 需重启 DSH 进程。当前 package.json 版本为 0.1.0,许可证 MIT。

典型用法

  1. 安装并刷新 DSH Web 客户端,在侧栏账户区上方查看余额与当前峰谷状态及下次切换倒计时。
  2. 打开任意会话,在输入框下方信息条查看「本会话」累计费用。
  3. 在助手回复动作行查看该轮「约 ¥x.xxxx」;若本轮总 token 达到插件阈值,点击 A 触发 AI 分析(由 Host 调用 ctx.llm.stream 完成)。

余额优先请求 GET https://api.deepseek.com/user/balance(可区分充值/赠送、多币种);失败时回退 DSH 平台钱包(无赠送余额拆分)。可用环境变量 DEEPSEEK_BASE_URL 覆盖 API 基址。

适用场景与注意

适合需要在 DSH 内持续对照钱包、会话总花费与单轮成本的开发者。插件以当前 DSH 进程权限运行,安装前应阅读源码与 MIT 许可证,并理解其会访问你的 DeepSeek 账户接口。

已知限制(摘自 README):法定节假日表内置至 2026 年,跨年需补表;调休上班的周末仍按空闲计价(与官方文案「周一至周五(不含法定节假日)」一致);逐轮费用独立四舍五入到 4 位小数后再求和,与账单可能有极小差异;AI 分析使用 maxTokens=6000 等策略以避免思考占满预算。

结尾

dsh-simple-cost 把余额、峰谷、会话与逐轮计费嵌回 DSH 界面,并用 Host 回环路由补齐客户端拿不到的数据与 LLM 能力。进一步了解可访问 SkillHub 目录页 与 GitHub 仓库。

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

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

小夜