Skip to content

v1.3.0 —— 成本估算 · 预算告警 · 导出 · 自动刷新 · 稳健性防呆

Latest

Choose a tag to compare

@GIN0076 GIN0076 released this 01 Oct 12:09

从 v1.0.0 到 v1.3.0,这块「油耗表」从"能看用量"变成"能看钱、能报警、能导出"。

🆕 新增

  • 💰 成本估算:面板内编辑价目表(~/.dsh/token-usage-prices.json,原子写入,写前校验)。
    插件不内置任何价格 —— 没配就不显示金额,未定价的模型单独计数并在面板明示,不拿 0 糊弄。
  • 💸 预算告警:配置文件(~/.dsh/token-usage-config.json)里设日/月预算,
    汇总卡出现「今日 / 本月 / 预算」,超支变红。
  • 📊 统计面补全:缓存写 / 推理 / 缓存命中率;排行榜每行追加金额。
  • 📤 导出:当前区间 CSV(桶 × 模型逐行 + 小计 + 总计)与 JSON,可复制或下载。
  • 🔄 自动刷新:可见时按配置间隔静默重取,隐藏时不发请求(间隔可配 15–3600 秒)。
  • 🏷️ 多维度:排行榜与折线图可切「按模型 / 按厂商」;配了价目表后可按金额排序。
  • 🔎 粒度可见:折线图标题带「共 N 个桶」与区间天数,汇总卡新增「桶数」卡 —— 切换粒度不再"看不出变化"。

🛡 稳健性与口径

  • 「重新统计」二次确认:当存储里存在「日志已不存在」的历史时先要确认 —— 那部分无法重建。
  • 回填失败退避重试(2s/8s/30s/120s)+ 单会话事件缓冲上限 2000(丢最旧不丢数据)。
  • 401/403/405 带诊断体 {error, hint, seen:{host,origin,site,cookie}}(不回显 cookie 值)。
  • 压缩摘要按事件自带的 provider/model 归属;单桶区间折线画点;卸载时最后一拍落盘生效。
  • 删除了旧版「重试也计费」的错误承诺:assistant/attempt 事件在 0.2.0-rc.2 上不携带 usage
    (18 个会话 / 17 条样本 / 0 命中),重试花费上游不报,插件无源可算。

⚙️ 用法变化

  • 汇总卡里的金额 / 预算 / 今日 / 本月要先在「价目表」里填单价(预算在「设置」里填)才会出现。
  • 粒度只管分组,不再自动改区间;区间由预设或自定义日期控制。
  • 配置与价目表都在面板按钮里编辑,不需要手改文件(想手改也行)。

🧪 测试

node stats.fixtures.mjs(63)+ node client.i18n.fixtures.mjs(257)+ node client.smoke.mjs(51)= 371 项,
外加 4 个文件的 node --check;CI 三条全跑。

客户端为离线迷你 React 冒烟(真实渲染 → 汇总卡/双图 → CSV 内容 → 导出弹层 → 价目表读写 →
重建确认 → 错误体透出 → 空态/错误态),像素仍以真机目验为准。