大模型 API 成本分摊与对账:按 Key、项目和分组拆账,每月怎么核对
按项目分摊大模型 API 费用,前提是一个项目一把 Key:每次调用的花费都记在 Key 名下,操作日志可以按令牌、模型、分组筛选并导出 CSV,数据看板汇总各 Key 和分组的消费。本文给出拆账口径、每月对账步骤、导出注意事项和发票申请方式。
按项目分摊大模型 API 的费用,前提是一个项目一把 Key:每次调用的花费都记在发起请求的 Key 名下,控制台「操作日志」可以按令牌、模型、分组筛选,并导出成 CSV;「数据看板」按令牌、分组和模型汇总消费,方便看结构。每月初导出上个月的消费记录和退款记录,按「令牌」列汇总、减去退款,就是各项目的费用;再用「筛选时段消耗」核对消费总数、用充值记录核对到账,最后把 CSV 归档。需要发票时,国内发票和海外 Invoice 都可以开。
先把 Key 分好
拆账能拆多细,取决于 Key 分得多细。一个项目、部门或客户一把 Key,名称写清归属,比如「客服机器人-生产」「市场部-文案」。几个项目共用一把 Key,平台就没法替你分开了。怎么按成员、项目、环境分 Key,见团队和多个项目共用一个账号。
数据从哪里来
| 数据 | 在哪里看 | 用途 |
|---|---|---|
| 每次调用的花费 | 「操作日志」里的消费记录,可以导出 CSV | 对账的依据 |
| 退回的金额 | 「操作日志」里的退款记录,可以导出 CSV | 绘图、音乐、视频这类异步任务失败,或完成后按实际用量结算时退回的钱,对账时从消费里减掉 |
| 按令牌、分组、模型的汇总 | 「数据看板」的「令牌与分组」 | 看结构、定分摊比例;只算消费、不扣退款,仅供参考 |
| 充值和到账 | 「充值」页的「全部记录」,分在线订单和到账记录 | 核对到账,复制订单号申请发票 |
| 单次请求的 tokens | 每次响应里的 usage 字段 | 在自己的系统里按终端用户或功能做更细的分摊 |
导出用量
- 打开控制台「操作日志」,时间范围选要对账的整月。
- 日志类型选「消费」,只导出调用产生的扣费记录。
- 需要只看某个项目时,在「令牌名称」里填这把 Key 的名称;也可以按模型、分组筛选。
- 点右上角「导出」,下载 CSV。
- 日志类型换成「退款」,其他条件不变,再导出一次。两次导出的文件名相同,下载后分别改名,比如 usage.csv 和 refunds.csv。
导出的 CSV 每行一次调用,包括时间、类型、模型、分组、令牌、提示 tokens、补全 tokens、缓存读取和写入 tokens、花费(¥)、用时、请求 ID 等列。几点要注意:
- 单次最多导出 20,000 条;超过时只导出最近的 20,000 条,页面会提示。调用量大的账户按周、按天或者按 Key 分几次导出。
- 日期和时间按你浏览器所在的时区计算:选「11 月 1 日到 11 月 30 日」,就是你本地时间的 1 日 0 点到 30 日 23:59:59。跨时区的团队对账前先约定时区。
- CSV 里的「分组」列是分组 ID,页面上显示的是分组名称,对照如下:
| 分组 | 分组 ID | 标签 | 说明 | 模型数 |
|---|---|---|---|---|
| 标准 | default | 最低价混合渠道 | 支持全部模型的综合线路,价格最低;部分 GPT、Claude 线路为非官方渠道 | 618 |
| Azure | azure | 云厂商 | 微软 Azure OpenAI 官方线路,价格优惠,企业级稳定 | 116 |
| Azure 优质 | azure-plus | 云厂商 | Azure OpenAI 优质线路,支持 o 系列推理模型 | 135 |
| OpenAI 官方 | openai | 官方转发 | OpenAI 官方接口转发 | 169 |
| OpenAI 官方优质 | openai-plus | 官方转发 | OpenAI 官方转发中最快最稳的线路,支持 o 系列、实时语音等 | 174 |
| 官方原价·企业 | official | 官方转发 | 按官方原价计费的企业线路,OpenAI 与 Claude 官方来源,优先保障稳定 | 309 |
| Claude 官方 | claude-official | 官方转发 | Anthropic 官方接口转发;新模型上线初期并发可能受限 | 47 |
| Claude 原价 | claude-list | 官方转发 | Anthropic 官方转发,按官方原价计费 | 47 |
| Claude 优质 | claude | 混合渠道 | 高性价比 Claude 线路;含非官方渠道,价格可能随时调整 | 40 |
| Claude 经济 | claude-lite | 混合渠道 | 价格最低的 Claude 线路,非官方渠道 | 27 |
| Gemini 优质 | gemini | 官方转发 | Google Gemini 官方转发,支持视频理解 | 70 |
| Gemini 高配 | gemini-pro | 官方转发 | Google Gemini 官方转发的高配额线路 | 70 |
| 国产模型 | cn | 最低价 | DeepSeek、通义千问、Kimi、GLM、MiniMax 等国产模型特价线路 | 195 |
| 国产模型 2 | cn-2 | — | 国产模型备用线路 | 18 |
| 经济按量 | economy | 混合渠道 | 非官方渠道,按量计费,价格优惠 | 42 |
| 经济按次 | economy-call | 混合渠道 | 非官方渠道,按次计费,长文本更划算 | 54 |
| Stable Diffusion | sd | — | Stable Diffusion 系列绘图线路 | 5 |
| 视频线路 1 | video-1 | 混合渠道 | Veo、Grok 视频生成线路;非官方渠道 | 6 |
共 18 个分组,数据来自实时价目表。
拆账口径
| 口径 | 怎么算 | 说明 |
|---|---|---|
| 按项目(Key) | 按「令牌」列汇总消费的「花费(¥)」,减去退款 | 最常用;Key 名称就是项目名 |
| 按分组 | 按「分组」列汇总 | 一把 Key 配了多个分组时,每次请求记在实际使用的分组下 |
| 按模型 | 按「模型」列汇总 | 用来发现哪个模型花得最多 |
| 按终端用户或功能 | 在你自己的系统里按 usage 记账 | 平台只记录到 Key 这一层 |
用 Excel 的数据透视表就能汇总;数据量大的,用几行脚本更快:
import csv
from collections import defaultdict
# 列名和导出文件的表头保持一致;换成「分组」或「模型」就是按分组、按模型汇总
GROUP_BY, COST = "令牌", "花费(¥)"
totals = defaultdict(float)
def add(path, sign):
# 导出的文件带 BOM,用 utf-8-sig 读取
with open(path, encoding="utf-8-sig", newline="") as f:
for row in csv.DictReader(f):
totals[row[GROUP_BY]] += sign * float(row[COST])
add("usage.csv", 1) # 日志类型选「消费」导出的文件
add("refunds.csv", -1) # 日志类型选「退款」导出的文件
for name, cost in sorted(totals.items(), key=lambda kv: -kv[1]):
print(f"{name}\t{cost:.2f}")脚本里的列名要和导出文件的表头一致:把「令牌」换成「分组」或「模型」,就是按分组、按模型的汇总。部分退款记录没有分组,按分组汇总时会单独列成一项。
每月对账步骤
- 次月初导出上个月整月的消费记录和退款记录,记录多的分几次导出。
- 按「令牌」列汇总消费、减去退款,得到每个项目的费用;再按「分组」「模型」看结构,标出变化大的项目。
- 核对总数:在操作日志选同样的时间范围,打开「显示统计」,「筛选时段消耗」是这段时间消费记录的花费合计(不扣退款),应该和消费 CSV 的花费合计一致。
- 核对到账:在「充值」页打开「全部记录」,到账记录里列出在线支付、兑换码和管理员调整余额,和财务的付款记录对一遍。
- 归档:CSV 和汇总表存进你们自己的财务系统或网盘,不要只依赖平台上的记录。
- 需要发票的,从「全部记录」里复制订单号,按下面的方式申请。
如果你们自己的系统也按 usage 记了账,可以再按请求 ID 抽查几条,确认两边的 tokens 和花费一致。
让下个月更好对
- 新项目先建 Key 再上线,不和别的项目混用。
- 不用的 Key 停用而不是删除:停用的 Key 在数据看板里还显示原来的名字;删除后只显示「已删除的令牌」和编号,之后产生的退款记录里也没有令牌名称。
- 每把 Key 设额度上限,单个项目超支不会拖累整个账户的余额。
- 一把 Key 配了多个分组的,切换到备用分组的请求按备用分组的价格计费,对账时按「分组」列单独看一眼,见大模型 API 高可用。
发票
国内发票和海外 Invoice 都可以开:加客服微信 JsnonoChat,发送订单号即可申请。订单号在控制台「充值」页的「全部记录」里复制。计费方式、充值和发票的总体说明见计费说明,批量采购和对公付款见企业服务,计费规则的细节见计费与用量。
常见问题
用量可以按项目拆开吗?
可以,前提是一个项目一把 Key。每次调用的花费都记在发起请求的 Key 名下:导出消费记录按「令牌」列汇总,再减去同一把 Key 的退款记录,就是各项目的费用。
导出有条数限制吗?
单次导出最多 20,000 条,记录更多时只导出最近的 20,000 条,页面会提示。按周、按天或按 Key 分几次导出就能拿全。
数据看板和操作日志的数字对不上怎么办?
以操作日志为准。看板按整点小时汇总,每隔几分钟写入一次,最新的调用会晚一点计入,仅供参考。
能按我们自己的客户或终端用户拆账吗?
平台只记录到 Key 这一层,不知道你的终端用户是谁。要么在你自己的系统里按每次响应的 usage 记账,要么给需要单独结算的大客户单独建一把 Key。
可以开发票吗?
可以。国内发票和海外 Invoice 都能开,加客服微信 JsnonoChat 并提供订单号即可申请。