bowenliang123/dsh-context
bowenliang123/dsh-contextDSH 上下文洞察面板:Context 仪表盘 + /context命令 + Context 浏览器,查看 Context的分类组成、内容详情、演进趋势、压缩/注入事件、统计等一站式 Context 全生命周期管理。
DSH Token 用量统计插件 - 今日 Token 用量按模型分桶、缓存命中率、7 日趋势图、可选顶栏徽标、持久化存储自动清理。
DSH Token 用量统计插件 —— 实时追踪今日与最近 7 日 Token 消耗,按模型分桶展示,提供缓存命中率分析和趋势图表。
DSH 0.1.7 兼容(
>=0.1.7-rc.1):设置命名空间已按 0.1.7 机制适配(宿主导出Config
- volatile 字段),设置入口位于「设置」页的对应分区。
在设置页新增「今日 Token 用量」分区,实时展示:
cacheRead / (uncachedInput + cacheRead) × 100%~/.dsh/storages/dsh-token-usage-xc/<YYYY-MM-DD>.json| 来源 | 说明 |
|---|---|
| session/event | 监听 assistant/message 事件的 usage 字段 |
| 模型归属 | 直接读取事件的 message.source.model |
| 会话水位 | 按 seq 去重,避免重复计数 |
为什么不自己解析 session.jsonl.zstd?
该文件是多 zstd 帧拼接,需要像持久化后端那样扫描帧边界逐帧解码。插件统一走sessionQuery,避免重复实现这套复杂逻辑。
# 使用 DSH CLI
dsh plugin --profile web add dsh-token-usage-xc
# 或使用 npm
npm install dsh-token-usage-xc
安装后重启 DSH,在设置页可看到新增的「今日 Token 用量」分区。
| 选项 | 默认值 | 说明 |
|---|---|---|
| enabled | true | 启用统计 |
| refreshIntervalSec | 60 | 前端刷新间隔(10-3600秒) |
| backfill | true | 启动时回填今日用量 |
| headerBadge | false | 会话顶栏显示总 Token 徽标 |
提供 RPC 接口供其他插件调用:
// rpc.call("/api", "dsh-token-usage-xc/today", {}) → 物理路由 POST /api/dsh-token-usage-xc/today
// (0.2.24 起首选;dsh <0.1.5 或宿主带 profile 补丁时旧通道 rpc.call("/dsh-token-usage-xc","today") 亦在)
{
available: boolean;
date: string; // 'YYYY-MM-DD'
totalTokens: number;
requests: number;
models: {
model: string;
modelName: string | null;
provider: string;
uncachedInputTokens: number;
outputTokens: number;
cacheReadTokens: number;
cacheWriteTokens: number;
totalTokens: number;
requests: number;
}[];
}
// rpc.call("/api", "dsh-token-usage-xc/last7days", {})
// 返回最近 7 日的汇总数据