bowenliang123/dsh-context
bowenliang123/dsh-contextDSH 上下文洞察面板:Context 仪表盘 + /context命令 + Context 浏览器,查看 Context的分类组成、内容详情、演进趋势、压缩/注入事件、统计等一站式 Context 全生命周期管理。
在 DSH 设置里加一页「用量查询」:把每次模型调用记进本地账本,按天、接口、模型汇总请求数、Token 与费用估算,支持单价修改与 CSV 导出。
给 DSH(DeepSeek Harness)设置加一页「用量查询」:把官方接口和第三方接口的每一次模型调用都记下来,按天、按模型、按接口汇总请求次数、Token 与费用估算。
界面照 DeepSeek 官方用量页做的:三张统计卡、橙色消费柱状图、按模型的蓝色面积图,外加最近请求明细和单价编辑。


deepseek-account 为官方,your-relay-a 之类的第三方接口单独归类),可一键筛选。$DSH_HOME/sessions 下已有的会话日志,把历史用量补进账本;之后只读新增部分,增量很便宜。$DSH_HOME/storages/dsh-usage-insights/,不联网、不上传任何数据,也不读消息正文。dsh plugin --profile desktop add link:/path/to/dsh-usage-insights
然后在 DSH 里打开「插件市场 → 已安装」,启用 dsh-usage-insights,刷新页面即可在设置侧栏看到「用量查询」。
也可以热挂载(无需重启):
curl -X POST http://127.0.0.1:<port>/dsh-market/toggle \
-H 'content-type: application/json' \
-d '{"name":"dsh-usage-insights","enabled":true}'
费用 = 缓存命中 tokens × 命中价 +(未命中输入 + 缓存写入)× 输入价 + 输出 tokens × 输出价,单位元 / 百万 tokens。
内置价目(元 / 百万 tokens):
| 模型 | 缓存命中 | 未命中输入 | 输出 |
|---|---|---|---|
| DeepSeek Flash | 0.02 | 1 | 4 |
| DeepSeek Pro | 0.15 | 4.5 | 13.5 |
官方 DeepSeek 模型按北京时间(UTC+8,无夏令时)判定峰时,峰时单价翻倍。
未知模型按 DeepSeek Flash 价估算。
| 文件 | 内容 |
|---|---|
storages/dsh-usage-insights/events.jsonl | 每次调用的账本(追加写,按 id 去重) |
storages/dsh-usage-insights/pricing.json | 用户自定义单价 |
storages/dsh-usage-insights/backfill.json | 历史回填游标(文件大小 + mtime) |
账本记录形如:
{"id":"<sessionId>#<seq>","ts":1760000000000,"provider":"deepseek-account","model":"deepseek-flash","input":1000,"output":500,"cacheRead":20000,"cacheWrite":0,"total":21500,"kind":"turn","sid":"...","seq":12}
不记录 prompt、回复内容、工具调用参数,也不记录 API Key。
均挂在 http://127.0.0.1:<port> 下,供设置页调用,也可自己 curl:
GET /dsh-usage/api/v1/summary?days=30&provider=all&model=allGET /dsh-usage/api/v1/pricingPOST /dsh-usage/api/v1/pricing { "model": "deepseek-flash", "hit": 0.02, "miss": 1, "out": 4 },{ "reset": true } 恢复默认GET /dsh-usage/api/v1/export?days=30 → CSVPOST /dsh-usage/api/v1/backfill → 重新扫描历史这些接口和 DSH 其他本地接口一样不做登录校验,
POST只校验同源。别把 GUI 端口暴露到公网或局域网。
dsh-usage-insights/
├── index.js # Host:事件采集、回填调度、路由挂载
├── client.js # Client:设置页 + 侧栏图标
├── cordis.patch.yml # 纯 insert,可被插件市场热挂载
├── lib/
│ ├── paths.js # DSH_HOME / 存储目录
│ ├── ledger.js # 账本读写、去重、容量上限
│ ├── pricing.js # 价目表、峰时判定、费用计算
│ ├── sessions.js # 多帧 zstd 会话日志解析 + 增量回填
│ └── aggregate.js # 汇总:区间、序列、按模型/接口、最近请求
├── docs/ # 截图
└── package.json
MIT