dsh-webui-perf
awa-123-cw
DeepSeek Harness WebUI 性能优化开关插件:长代码流式渲染/历史加载/高亮缓存优化,设置面板一键开关(with official-package patches)
PROJECT TOPICS
PROJECT README
DeepSeek 余额实时显示插件: 在 dsh Web UI 输入框下方、命中率/输入输出 token 统计条所在的同一行, 实时显示:
🟢 余额 ¥97.69, 红/黄/绿三色直观反映余额充裕状况,点击状态圆点可直接手动强刷查询最新余额)本会话约 ¥3.92, 按模型、按 DeepSeek 官方单价估算)? 定价参考图标: 悬停以 ? 为中心优雅浮现 DeepSeek V4 系列专属定价微卡片(支持 deepseek-v4-flash 与 deepseek-v4-pro),点击直达官方定价页 https://api-docs.deepseek.com/zh-cn/quick_start/pricing/悬停读数可查看左右双栏毛玻璃卡片:
• deepseek-v4-flash: ¥3.92)、换行小字体展示输入/输出与缓存命中统计(如第一行 Token: 输入 124M · 输出 301K 与第二行 命中: 123M (99.3%))。
┌─────────────┐ 按 refreshIntervalMs 轮询 ┌──────────────────┐
│ DeepSeek API│◀────────────────────────────│ 服务器插件(host) │
│ /user/balance│ │ · 余额缓存(带陈旧回退)│
│ │ ?force=1 手动强刷路由 │ · /query-balance 路由│
└─────────────┘ │ · queryBalanceCost │
│ 会话花费投影(含V4谷峰)│
└────────┬───────────┘
│ 只读缓存 / 投影推送帧
┌────────▼───────────┐
│ 浏览器插件(client) │
│ · 双栏悬停卡片 │
│ · 点击指示灯手动强刷 │
│ · 单例轮询器(页面隐藏 │
│ 时暂停) │
└────────────────────┘
clientPollIntervalMs 一次极小 JSON), 不直接访问 DeepSeek;
服务器按 refreshIntervalMs 拉取并缓存(失败保留上次成功值); 花费由投影折叠计算
(与 dsh-token-meter 相同的 O(1) 状态机, 同引用事件零开销), 随既有 session/projection
推送帧实时到达客户端, 无额外网络请求。ctx.credentials), 默认引用
DEEPSEEK_API_KEY(即 $DSH_HOME/.credentials.yaml 或进程环境), 无需在配置里写密钥。DeepSeek Harness 自带的插件管理命令可以为您一键完成下载安装和修改配置文件:
dsh plugin --profile web add dsh-balance
执行完毕后,重启 dsh web 即可生效。
如果您正在使用 Antigravity 等 AI 助手,直接复制以下提示词发给它:
请帮我在当前环境中安装
dsh-balance插件,将其配置写入到我的cordis.yml中并启用它。
如果您下载了源码,可以通过以下命令进行本地链接安装:
dsh plugin --profile web add <本目录绝对路径>
当插件发布新版本后,您可以通过以下命令升级到最新版本:
dsh plugin --profile web remove dsh-balance
pnpm store prune
dsh plugin --profile web add dsh-balance@latest
为什么需要
pnpm store prune? pnpm 会在本地缓存已下载的包。如果不清除缓存,即使 NPM 上已经发布了新版本,dsh plugin add仍然可能安装到旧版本。执行pnpm store prune可以清除过期缓存, 确保拉取到最新版本。
使用 DSH CLI 一键卸载并自动清理配置文件:
dsh plugin --profile web remove dsh-balance
在 Web 界面输入框底部的统计条最右侧,点击 ⚙️ 齿轮图标(或在悬停卡片底部点击 ⚙️ 打开偏好设置),即可呼出可视化配置弹窗:
| 配置分组 | 包含设置项 | 说明 |
|---|---|---|
| 🎯 常规与阈值 | 计价货币、预警阈值、告急阈值、服务端查询间隔、前端读取缓存间隔 | 支持实时红黄绿三色阈值指示条预览;货币切换即时反映到会话消耗与余额展示。 |
| 🔑 API 凭证 | API Key、Base URL、请求超时时间、连通性测试 | 支持自定义 API Key(留空自动继承环境凭证);提供 ⚡ 测试 API 连通性 按钮,一键验证密钥有效性并反馈真实余额。 |
| ⚡ 模型单价 | 各模型(V4 Flash / V4 Pro / Chat / Reasoner)每 1M Token 的命中/未命中/输出单价 | 支持微调模型单价,提供“恢复官方推荐单价”按钮。 |
| 📋 YAML 导出 | 实时生成 cordis.patch.yml 配置代码块 |
随调参实时渲染 YAML 配置文本,支持一键复制到剪贴板,方便将当前参数持久化写入配置文件。 |
提示:在设置弹窗中点击「保存并生效」,修改将立即应用到当前服务与页面,无需手动重启
dsh web!
在 $DSH_HOME/profiles/web/cordis.patch.yml(或指定 profile 的 patch 文件)中覆盖配置。
- id: dsh-balance
config:
apiKey: '' # 留空自动复用 DEEPSEEK_API_KEY
apiKeyRef: DEEPSEEK_API_KEY
baseUrl: https://api.deepseek.com
warningThreshold: 10 # 余额 < 10 元显示黄色预警灯
dangerThreshold: 5 # 余额 < 5 元显示红色告急灯
refreshIntervalMs: 300000 # 服务器向 DeepSeek 拉取余额的查询间隔(单位: 毫秒 ms,300000ms = 5分钟)
clientPollIntervalMs: 30000 # 浏览器从本地读取缓存的刷新间隔(单位: 毫秒 ms,30000ms = 30秒)
timeoutMs: 8000 # 单次网络请求超时时间(单位: 毫秒 ms,8000ms = 8秒)
currency: CNY
prices:
deepseek-v4-flash: { cacheHit: 0.02, cacheMiss: 1, output: 2 }
deepseek-v4-pro: { cacheHit: 0.025, cacheMiss: 3, output: 6 }
deepseek-chat: { cacheHit: 0.1, cacheMiss: 1, output: 2 }
deepseek-reasoner: { cacheHit: 1, cacheMiss: 4, output: 16 }
defaultPrices: { cacheHit: 0.1, cacheMiss: 1, output: 2 }
- id: dsh-balance
config:
apiKey: ''
apiKeyRef: DEEPSEEK_API_KEY
baseUrl: https://api.deepseek.com
warningThreshold: 2.0 # 余额 < $2.0 显示黄色预警
dangerThreshold: 0.5 # 余额 < $0.5 显示红色告急
refreshIntervalMs: 300000 # 服务器拉取余额间隔(单位: 毫秒 ms,300000ms = 5分钟)
clientPollIntervalMs: 30000 # 浏览器读取缓存间隔(单位: 毫秒 ms,30000ms = 30秒)
timeoutMs: 8000 # 请求超时时间(单位: 毫秒 ms,8000ms = 8秒)
currency: USD # 计价货币切换为美元
prices:
deepseek-v4-flash: { cacheHit: 0.0028, cacheMiss: 0.14, output: 0.28 }
deepseek-v4-pro: { cacheHit: 0.0035, cacheMiss: 0.42, output: 0.84 }
deepseek-chat: { cacheHit: 0.014, cacheMiss: 0.14, output: 0.28 }
deepseek-reasoner: { cacheHit: 0.14, cacheMiss: 0.55, output: 2.19 }
defaultPrices: { cacheHit: 0.014, cacheMiss: 0.14, output: 0.28 }
- id: dsh-balance
config:
warningThreshold: 50 # 余额 < 50 元预警(留足多次长任务会话缓冲)
dangerThreshold: 10 # 余额 < 10 元告急
在 $DSH_HOME/profiles/dev/cordis.patch.yml 中:
- id: webserver
config:
host: 127.0.0.1
port: 3081 # 固定测试环境跑在 3081 端口
- id: dsh-balance
config:
warningThreshold: 10
dangerThreshold: 5
如果您正在使用 Antigravity、Cursor 或 Claude 等 AI 助手,可直接复制以下提示词发给它自动完成操作:
请帮我在当前 DeepSeek Harness 环境中安装
dsh-balance插件,将其默认配置写入到我的cordis.patch.yml中并确保已启用。
请帮我修改
dsh-balance插件的配置,将告急阈值(红灯)设置为 10 元,预警阈值(黄灯)设置为 30 元。
我的 DeepSeek 账户使用的是美元计价,请帮我将
dsh-balance插件的货币单位切换为USD,将阈值调整为预警 $2.0、告急 $0.5,并更新对应的每 1M Token 美元定价策略。
请帮我初始化一个 DSH
devProfile,将本地dsh-balance插件链接进去,并将 Web 端口固定为3081,以便于我和日常使用的 3080 端口环境并行测试。
npm test # 运行全部测试
node test/smoke-projection.mjs # 投影折叠(替换语义/模型归属/计价)测试
node test/smoke-client.mjs # 客户端 bundle 注册与渲染冒烟测试(零依赖)
手工验证:
curl http://127.0.0.1:3080/query-balance
# → {"ok":true,...,"isAvailable":true,"thresholds":{"warning":10,"danger":5},"balances":[{"currency":"CNY","total":99.74,...}]}
curl http://127.0.0.1:3080/plugins/dsh-balance/client.js # 客户端 bundle
src/index.js(ESM, 零构建)。client/client.js, 手写的惰性 CJS 工厂格式
(window.__ModuleLoader__.load({id, factory})), 修改后重启 dsh web 生效
(无 monorepo 构建链时不做 bundle 重哈希)。node_modules(schemastery/zod), 与 profile 内同名依赖互不冲突。test/ 目录下提供零依赖单元与冒烟测试,发布 npm 时自动排除测试目录。Q: 插件怎么知道查询的是哪个用户的余额数据?
A: 插件在向 DeepSeek 官方服务器发送查询请求时,会在请求头中携带您的 API Key(即 sk-xxxx)。因为每一个 API Key 在 DeepSeek 官方都是唯一绑定到您的账号上的,所以服务器通过识别这串凭证,就能精准返回您的账号真实余额。
此外,本插件利用了 DSH 原生的凭据管理系统(Credentials),它会自动复用您平时用于聊天的 DEEPSEEK_API_KEY,所以您甚至不需要在插件里重复配置密钥,它就“聪明地”复用了您的身份去查余额了!
Q: 红黄绿状态指示灯的判断规则是什么?
A:
warningThreshold(默认 $ge 10$ 元),账户额度充裕。dangerThreshold $le$ 余额 $<$ warningThreshold(默认 $5 sim 10$ 元),提示余量不多,建议适时充值。dangerThreshold(默认 $< 5$ 元)或余额不可用/异常,警示当前任务可能中断。
各阈值均可在配置文件中自由调节。Q: 8月17日 DeepSeek 官方更新谷峰定价后,插件会自动同步吗?
A: 完全会自动同步! 插件内部已植入时间感知计费引擎(resolveModelPrice)。当时间进入北京时间 2026年8月17日 00:00 后,插件会在会话发生 Token 扣费估算和展示 ? 定价卡片时,自动识别当前处于 ☀️ 峰时(09:00~12:00, 14:00~18:00) 还是 🌙 谷时(其他时段享5折特惠),全自动精准折算与显示,无需人工重启或修改任何配置。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。