总请求次数
{{stats.total_requests?.toLocaleString() || 0}}
总消耗 Token
{{formatTokens(stats.total_tokens)}}
总消耗金额
{{formatCost(stats.total_cost)}}
本地缓存命中率
{{stats.cache_hit_rate || 0}}%
命中 {{stats.cache_hits || 0}} 次
官方缓存命中率
{{stats.upstream_cache_hit_rate || 0}}%
上游服务商缓存
节省 Token
{{formatTokens(stats.cache_saved_tokens)}}
通过缓存节省
缓存节省金额
{{formatCost(stats.cache_saved_cost)}}
用量统计
聚合展示 Token 消耗、模型贡献与缓存收益
Token 总消耗 {{formatTokens(stats.total_tokens)}}
单位:千 Token
模型贡献 Top 5
请求总量
{{stats.total_requests?.toLocaleString() || 0}}
当前时间范围
缓存命中
{{stats.cache_hit_rate || 0}}%
{{stats.cache_hits || 0}} 次命中
节省 Token
{{formatTokens(stats.cache_saved_tokens)}}
缓存收益
模型使用排名
| 排名 | 模型 | 请求数 | Token | 缓存率 |
|---|---|---|---|---|
| {{i+1}} | {{m.model}} | {{m.requests}} | {{formatTokens(m.tokens)}} | {{m.requests?Math.round(m.cache_hits/m.requests*100):0}}% |
| 暂无数据 | ||||
Key 使用排名
| 排名 | Key名称 | 请求数 | Token | 缓存率 |
|---|---|---|---|---|
| {{i+1}} | {{k.api_key_name}} | {{k.requests}} | {{formatTokens(k.tokens)}} | {{k.requests?Math.round(k.cache_hits/k.requests*100):0}}% |
| 暂无数据 | ||||
缓存命中率明细
| 模型 | 请求数 | 本地缓存命中率 | 官方缓存命中率 |
|---|---|---|---|
| {{m.model}} | {{m.requests}} | {{m.local_cache_rate || 0}}% | {{m.upstream_cache_rate || 0}}% |
| 暂无数据 | |||
费用明细
| 模型 | 调用花费 | 本地缓存节省 | 输入/输出/缓存价 |
|---|---|---|---|
| {{m.model}} | ¥{{m.cost || 0}} | ¥{{m.cache_saved_cost || 0}} | ¥{{m.input_price||0}} / ¥{{m.output_price||0}} / ¥{{m.cache_hit_price||0}} |
| 暂无数据 | |||
渠道列表
| ID | 名称 | API地址 | Key | 模型 | 状态 | 操作 |
|---|---|---|---|---|---|---|
| {{c.id}} | {{c.name}} | {{c.api_key_masked}} | {{m}} | {{c.status?'启用':'禁用'}} | ||
| 暂无渠道,请添加 | ||||||
API Key 列表
| ID | 名称 | Key | 日配额(Token) | 并发(次/分) | 状态 | 创建时间 | 操作 |
|---|---|---|---|---|---|---|---|
| {{k.id}} | {{k.name}} | {{k.key}} | {{k.daily_token_limit ? k.daily_token_limit.toLocaleString() : '不限'}} | {{k.rate_limit || 60}}次/分 | {{k.status?'启用':'禁用'}} | {{k.created_at}} | |
| 暂无Key,请生成 | |||||||
Key 统计:{{keyStats.key_info.name}}
请求数
{{keyStats.total_requests}}
Token消耗
{{formatTokens(keyStats.total_tokens)}}
缓存命中率
{{keyStats.cache_hit_rate}}%
节省Token
{{formatTokens(keyStats.cache_saved_tokens)}}
| 模型 | 请求数 | Token | 缓存命中 | 节省Token |
|---|---|---|---|---|
| {{m.model}} | {{m.requests}} | {{formatTokens(m.tokens)}} | {{m.cache_hits}} | {{formatTokens(m.cache_saved)}} |
模型定价(单位:元 / 百万Token)
| 模型 | 输入价格 | 输出价格 | 缓存命中价 | 更新时间 | 操作 |
|---|---|---|---|---|---|
| {{p.model}} | ¥ {{(p.input_price||0).toFixed(4)}} | ¥ {{(p.output_price||0).toFixed(4)}} | ¥ {{(p.cache_hit_price||0).toFixed(4)}} | {{p.updated_at?.substring(0,16) || '-'}} |
暂无定价数据,请添加模型价格
缓存条目数
{{cacheInfo.cached_items || 0}}
Redis内存占用
{{cacheInfo.memory_used_mb || 0}} MB
当前缓存时间
{{cacheInfo.ttl_days || 7}} 天
缓存设置
缓存操作
手动清理所有缓存,清理后重复请求将重新调用上游API
渠道并发状态
| 渠道 | 当前并发 | 最大并发 | 使用率 | 状态 |
|---|---|---|---|---|
| {{c.channel_name}} | {{c.current_concurrency}} | {{c.max_concurrency}} |
{{Math.round(c.current_concurrency/c.max_concurrency*100)}}%
|
{{c.current_concurrency>=c.max_concurrency?'满载':'正常'}} |
| 暂无数据 | ||||
智能路由配置 (auto模型)
| 规则名称 | 优先级 | 匹配条件 | 关键词 | 长度限制 | 目标模型 | 操作 |
|---|---|---|---|---|---|---|
| — | ≥{{rule.min_length}} ≤{{rule.max_length}} — | |||||
| 暂无规则 | ||||||
路由说明:
① 请求带 tools → 匹配 has_tools 条件 ② 关键词扫描最后一条user消息
③ 按优先级从高到低匹配,命中即返回 ④ 无匹配→默认模型
当前可用模型:{{autoModels.join('、') || '加载中...'}}
当前可用模型:{{autoModels.join('、') || '加载中...'}}
模型降级链配置
当源模型无可用渠道或请求失败时,自动降级到目标模型。按优先级排序(数字越小越先尝试)。
| ID | 源模型 | 目标模型 | 优先级 | 操作 |
|---|---|---|---|---|
| {{f.id}} | {{f.source_model}} | {{f.target_model}} | {{f.priority}} | |
| 暂无降级规则 | ||||
📊 实时QPS
{{liveStats.qps.toFixed(1)}}
近60秒
✅ 成功请求
{{liveStats.successCount}}
❌ 错误请求
{{liveStats.errorCount}}
⚡ 平均延迟
{{liveStats.avgLatency}}ms
🎯 缓存命中
{{liveStats.cacheHits}}
🔄 降级次数
{{liveStats.fallbacks}}
📝 输入Token速度
{{liveStats.inputTokenSpeed.toFixed(0)}} t/s
近60秒
📝 输出Token速度
{{liveStats.outputTokenSpeed.toFixed(0)}} t/s
近60秒
实时请求流
{{wsConnected?'● 已连接':'○ 未连接'}}
等待实时事件...
{{formatTime(evt.timestamp)}}
{{evt.type}}
{{evt.data.model || ''}} {{evt.data.channel?'→ '+evt.data.channel:''}} {{evt.data.api_key?'['+evt.data.api_key+']':''}}
Webhook 告警配置
当 Key 用量达到 80% / 90% / 100% 时触发告警,每级每天仅告警一次。
告警记录
| 时间 | Key名称 | 阈值 | 用量 | 配额 | 消息 |
|---|---|---|---|---|---|
| {{a.created_at?.substring(0,19)}} | {{a.api_key_name}} | {{a.threshold}}% | {{formatTokens(a.usage_tokens)}} | {{formatTokens(a.limit_tokens)}} | {{a.message}} |
| 暂无告警记录 | |||||
提示词模板管理
集中管理所有 System Prompt,支持版本历史、一键回滚、模板变量注入 {变量名}
| 名称 | 分类 | 版本 | 更新时间 | 操作 |
|---|---|---|---|---|
| {{p.name}} {{p.description}} |
{{p.category}} | v{{p.version}} | {{p.updated_at?p.updated_at.substring(0,19):'-'}} | |
| 暂无模板 | ||||
智能路由 (auto)
使用 model=auto 时,网关自动分析请求内容并选择最合适的模型:
| 场景 | 路由模型 | 触发条件 |
|---|---|---|
| Function Calling | glm-5.2 | 请求包含 tools 参数 |
| 编程/代码 | glm-5.2 | 关键词: 代码/code/算法/函数/bug/debug/python |
| 分析/推理 | deepseek-v4-pro | 关键词: 分析/推理/基金/投资/策略/评估 |
| 简单任务 | doubao-seed-2.0-mini | 关键词: 翻译/总结/概括 (消息<2000字) |
| 超长上下文 | doubao-seed-evolving | 消息总长>30000字 |
| 默认 | deepseek-v4-flash | 其他所有请求 |
接口信息
API地址: https://{{apiHost}}/v1/chat/completions
模型列表: https://{{apiHost}}/v1/models
请求格式: 兼容 OpenAI Chat Completions API
认证方式: Bearer Token(在Key管理中生成)
使用示例
curl https://{{apiHost}}/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ***" \
-d '{
"model": "deepseek-v4-flash",
"messages": [{"role": "user", "content": "你好"}]
}'
修改管理密码