Skip to content

Runbook:用量与计费异常

计费异常包括请求成功但没有记录、重复记录、Token 不对、模型价格不对、用户扣费与账号成本不一致,以及统计报表延迟。

先固定一条请求

准备:Request ID、用户、Sub2API Key、Group、Account、时间、入口模型、上游模型、是否流式。不要先看整天总额,因为多个问题可能叠加。

三个模型名

字段含义
requested model用户请求的名字
upstream model实际发给供应商的名字
billing model查价格并计费的名字

映射错误可能让请求成功但使用错误价格。每次修改模型映射都要同时验证这三个字段。

排查顺序

  1. Usage Log 是否存在且 Request ID 唯一。
  2. 请求最终状态是否成功,流是否完整结束。
  3. 输入、输出、cache read/create、图片/视频用量是否被解析。
  4. billing model 是否存在价格。
  5. Group、用户、账号倍率是否符合配置。
  6. 用户实际费用、账号成本和上游账单单位是否一致。
  7. usage worker、聚合任务 heartbeat 和队列是否正常。
  8. 时区和报表时间范围是否一致。

常见情况

请求成功但 usage 为零

  • 第三方上游未返回 usage。
  • SSE 结束前客户端或上游断开。
  • 兼容转换没有识别供应商字段。
  • 特殊端点使用不同用量字段。

不要在未知 usage 时静默按零收费。应隔离该上游,明确估算/拒绝策略后再上线。

价格缺失

先停止扩大影响,补充价格前确认币种、单位、输入/输出/缓存和服务等级。不要仅按模型名称相似复制价格。

重复或缺失记录

检查客户端重试、网关重试、Request ID、支付/usage 幂等和异步写入失败。区分“请求发送两次”和“同一请求记账两次”。

报表与实时日志不同

聚合有刷新窗口;先比较相同时间范围、时区、过滤条件和数据源。检查 aggregation heartbeat 和 raw/preagg 查询模式。

处置原则

  • 先暂停错误价格的 Group、模型或账号,不要删除历史。
  • 导出受影响 Request ID、用户和金额。
  • 修复后用固定 prompt 做可重复验证。
  • 调账必须记录原因、原值、新值、操作者和审批。
  • 涉及用户余额时先确定影响范围,再统一沟通。

恢复验收

同一测试请求只产生预期记录;requested/upstream/billing model 正确;Token 与上游响应相符;用户费用、账号成本和倍率可解释;原始与聚合报表最终一致。

本文档用于帮助你理解、部署和运维 Sub2API。使用前请确认上游服务条款与当地法律要求。