用量与分析
「数据」菜单下有两个视角看同一份账本:「用量」(/admin/usage)是逐条调用记录,用于对账、排障和清理;「分析」(/admin/analytics)是聚合看板,用于看趋势、找大户。数据源都是用量日志表:每一次底层模型调用记一行,不只是用户可见的聊天回复,标题生成、查询路由、压缩摘要、记忆抽取、嵌入、图片、审校、深度研究的规划与核验等内部调用也各记一行(它们同样产生费用,应计入用户成本)。
用量报表(数据 > 用量)
每条 API 调用一行,按调用时间倒序,每页 50 条。
表格列
| 列 | 内容 |
|---|---|
| 调用时间 | 精确到秒,按界面语言格式化 |
| 用户 | 邮箱(无邮箱时显示 ID) |
| 关联对话 | 对话标题,点击直达管理员会话查看页;对话发生在工作空间时,下方附「空间」徽标;**对话已被删除时显示「已删除」**而非悬空 ID |
| 模型 | 模型显示名 |
| 渠道 | 实际服务本次请求的上游渠道;走了兜底渠道时附橙色「兜底」徽标 |
| 用途 | 见下表;失败请求在用途旁附红色「错误」徽标,点击查看详情 |
| 输入 / 输出 | 本次调用的输入与输出 token 数 |
| 费用 | 按模型配置价算出的本次调用费用(美元) |
| 操作 | 行内删除按钮 |
用途(purpose)取值
| 用途 | 含义 |
|---|---|
| 对话 | 用户聊天的主模型调用,一次多轮工具循环里的每次上游调用各记一行 |
| 图片 | 图片生成(绘图模式与聊天中的图片工具共用) |
| 嵌入 | RAG 文档入库与查询的向量化调用 |
| 标题生成 / 查询路由 / 上下文压缩 | 任务模型的内部小调用 |
| 记忆抽取 / 记忆裁决 | 记忆系统的异步任务调用 |
| 跨厂商降级 | 历史跨厂商回放时的转换调用 |
| 图片提示词 | 绘图前的提示词润色 |
| 研究规划 / 研究核验 / 研究交叉验证 | 深度研究管线的任务模型调用 |
| 内容审核 | 「模型」模式审核的判定调用 |
verify | 审校模式下审计模型的核查调用 |
费用按模型编辑页配置的单价计算:文本模型分输入 / 输出 / 缓存读 / 缓存写四档(每百万 token 单价),图片模型按张计价,货币为美元。只记账、不在这里扣减,积分扣费是另一层(见用户、配额与积分)。
筛选与统计
| 筛选器 | 说明 |
|---|---|
| 时间范围 | 最近 1 / 7 / 30 / 90 天(滚动窗口) |
| 用户 | 邮箱或 ID 子串,输入 400ms 后自动查询 |
| 模型 | 下拉选择单个模型,或「全部模型」 |
| 状态 | 全部 / 仅错误 |
表格上方两张统计卡实时反映当前筛选的总费用与记录数。任何筛选变化都会回到第一页。
工作空间归属
共享工作空间里的调用遵循"谁发送谁付费":成员在共享对话中续聊,配额与积分消耗记在发送者自己名下,用量行同时记录所属空间并在关联对话下方显示「空间」徽标。给团队做成本分摊时,按用户筛选看到的就是每个人的真实消耗,空间徽标用来区分个人使用与协作使用。
删除记录
- 行内垃圾桶:删除单条记录。
- 「删除筛选结果」:批量删除当前筛选命中的全部记录,确认弹窗会显示命中条数;不可撤销。
用量日志不只是报表:服务重启后,用户的窗口配额计数和时效积分消耗都从这张表重新播种。清理近期(仍在配额窗口内)的记录,可能让相关用户的"已用次数 / 已用积分"被低估。清理历史归档数据没有影响,建议只按较早的时间范围批量删除。
错误请求与失败载荷日志
错误也入账
上游调用失败(连接错误、401 / 403 / 429 / 5xx 等)时同样记一行,标记为错误状态,token、费用、积分全部为零。这让失败次数可统计、可按「仅错误」筛选,渠道质量问题一眼可见。
配套的口径保证:错误行不占用户任何额度。它被排除在配额窗口回填、用户侧可见的用量计数和分析看板之外,失败请求既不消耗用户的免费次数,也不会把"调用数 / 活跃用户"灌成与 token / 费用不一致的水分。计费时点遵循"发出即算,失败不算":
| 情形 | 计次 | 扣积分 |
|---|---|---|
| 正常完成 | 是 | 是 |
| 用户中途停止(已产出内容) | 是 | 按已产出部分实扣 |
| 上游报错(含兜底也失败) | 否 | 否 |
| 发送前被拦(配额超限 / 内容审核) | 否 | 否 |
失败载荷详情(仅管理员可见)
点击错误行的「错误」徽标,弹窗展示排障所需的全部现场:
| 区块 | 内容 |
|---|---|
| 上游报错 | 上游返回的原始错误(状态码 + 响应体,超长截断) |
| 请求方法与 URL | 实际发往上游的方法与完整地址 |
| 请求头 | 发出的请求头快照 |
| 请求体 | 发出的请求体快照(JSON 格式化) |
快照经过脱敏:Authorization、API Key、token、secret、password、cookie 等敏感字段一律替换为 [redacted],内嵌的 base64 图片数据被摘除为占位说明,请求体默认截断到 128 KB、单值截断到 8 KB。这些详情只经管理员接口下发:终端用户遇到同一失败只会看到泛化的错误提示,不会看到上游原文。
排障常用姿势:状态筛「仅错误」+ 模型筛选,逐条打开错误详情,把请求体原样复制到 curl 里对上游复现,即可快速区分"渠道 Key 失效 / 上游改了协议 / 请求内容超限"。
兜底徽标
模型配置了兜底渠道时,主渠道失败会自动改走兜底重试一次。走过兜底的调用在渠道列带橙色「兜底」徽标(一轮工具循环内任何一次子请求切了兜底,整轮都标记)。「兜底」徽标频繁出现,说明主渠道不稳,该修渠道了。
分析看板(数据 > 分析)
看板把同一份日志聚合成趋势视图,所有统计排除错误行,调用数、活跃用户与 token / 费用总是一致口径。
窗口与指标
- 时间窗口:右上角选择最近 1 / 7 / 30 / 90 天(滚动窗口,接口最大支持 365 天)。
- 指标切换:调用次数 / 令牌 / 费用,一个开关驱动页面上所有图表;令牌 = 输入 + 输出之和。
KPI 卡
| 卡片 | 含义 |
|---|---|
| 总调用次数 | 窗口内成功调用总数 |
| 总令牌数 | 输入 + 输出 token 总和 |
| 总费用 | 按模型配置价累计的费用(美元) |
| 活跃用户 | 窗口内产生过成功调用的去重用户数 |
趋势图
竖向柱状图展示窗口内的整体走势:选 1 天窗口时按小时分桶,其余按天分桶;悬停任意柱子显示该时段的精确数值。
Top 模型 / Top 用户
两张并排卡片分别列出窗口内消耗最高的前 8 个模型与前 8 个用户(按费用排序,费用相同按调用量):
- 每行一个横向占比条(相对当前指标的最大值),右侧数值;
- 行尾附一条迷你趋势线(sparkline),与趋势图共用分桶,一眼看出该模型 / 用户的消耗是持续的还是突发的;
- 用户行显示邮箱,模型行显示模型名称。
费用异常排查的典型路径:分析页发现某用户费用突增,记下邮箱,切到「用量」页按该用户筛选,逐条看它在调什么模型、什么用途、单次多少 token,必要时进入关联对话核实内容。
运营场景速查
| 场景 | 操作路径 |
|---|---|
| 用户反馈"一直失败" | 用量页筛该用户 + 「仅错误」,打开错误详情看上游原文;若行带「兜底」徽标,说明主渠道也在失败 |
| 某渠道疑似失效 | 用量页筛「仅错误」,看错误行集中在哪个渠道;修复渠道 Key 或给模型配兜底渠道 |
| 内部用途费用偏高 | 分析页切「费用」指标,若标题生成 / 压缩等任务调用占比高,到全局设置换一个更便宜的任务模型 |
| 给团队分摊成本 | 分析页 Top 用户找大户,用量页按用户筛选逐条核对,空间徽标区分个人与协作消耗 |
| 免费额度疑似被刷 | 记住错误行与被审核拦截的消息都不计次;真实消耗以本页记录为准,按用户 + 时间范围筛选统计 |
在线用户判定
在线状态显示在「用户 > 用户」列表:每行邮箱前有一个状态点,绿色为在线、灰色为离线;用户信息弹窗里还能看到「最近活跃」的精确时间。判定规则:
- 用户最近 5 分钟内发出过任意带认证的请求,即视为在线。
- 服务端在处理请求时刷新用户的最近活跃时间,为了控制写入频率至多每分钟刷新一次,因此在线判定有最多约 1 分钟的滞后。
- 判定完全基于请求触达,没有独立的心跳通道:用户开着页面但长时间无任何操作(不发消息、不切页面)会逐渐显示为离线,这属于预期行为。
用户列表的"在线"是此刻的近实时状态;分析看板 KPI 里的"活跃用户"是统计窗口内产生过模型调用的去重人数。前者答"现在有谁在",后者答"这段时间谁在用"。