Token 费用账本:输入和输出分别计算
只统计请求数无法预测模型费用,因为每次输入和输出长度不同,价格也可能不同。缓存、批处理和额外推理计费还可能改变账单。
问题从哪里出现
只统计请求数无法预测模型费用,因为每次输入和输出长度不同,价格也可能不同。缓存、批处理和额外推理计费还可能改变账单。
理解核心机制
把输入与输出 token 分开乘以对应单位价格,使用 Decimal 保留十进制计算规则。下面的价格是明确虚构的教学参数,不对应任何供应商报价。
动手做一个小实验
Python 3.11 或更新版本,仅使用标准库;将示例保存为 demo.py 后执行 python3 demo.py。数字与样本均为教学演示,不代表真实模型或服务器的测量结果。
from decimal import Decimal
input_tokens, output_tokens = 12000, 3000
input_per_million = Decimal("1.00") # fictional teaching price
output_per_million = Decimal("4.00")
cost = (Decimal(input_tokens) * input_per_million
+ Decimal(output_tokens) * output_per_million) / Decimal(1_000_000)
assert cost == Decimal("0.024")
print("hypothetical cost:", cost)适用边界与常见误区
部署时应对照实际合同和供应商账单,明确币种与计费项目。不能把本地估算当作最终账单,也不能忽略失败重试造成的额外用量。
继续练习
增加缓存命中和重试两个维度,分别记录原始用量、估算费用与实际账单,并检查差异来源。