几乎所有模型价格表都只列两个数字:每百万 token 的输入价和输出价。但真实账单通常有五到六行,真正决定你付多少钱的,往往是标题里没写的那几行。
计费单位是 token,不是字数、字符或请求数。英文散文大约每 token 0.75 个词,代码、JSON、非拉丁文字和长标识符的 token 化效率都更差,且不同模型家族的 tokenizer 各不相同。价格按每百万 token 报价,是因为单个 token 的价格全是零。计费模型不区分 token 是否真正贡献了答案——检索文档里没被读到的 token、框架自动追加的工具 schema、每轮对话重复发送的系统提示,全部按输入计费。账单超预期最常见的原因不是模型贵,而是提示词变长了。
可计费的账单行:
• 未缓存输入(每 token 最便宜但数量通常最大)
• 缓存输入(命中前缀缓存,费率远低于未缓存)
• 缓存写入(部分供应商首次写入缓存会加价)
• 输出(价格通常是输入的数倍)
• 推理 token(隐藏思考过程按输出价计费,是账单远超预期的常见原因)
• 图像/音频输入(按张/秒或按公式折算 token)
• 托管工具调用
• 文件存储
• embedding 等非 token 行
单次请求成本公式:cost = (P_in × T_in_uncached + P_cache × T_in_cached + P_write × T_cache_written + P_out × (T_visible_out + T_reasoning)) / 1e6。提示词缓存、缩短输出、级联调用、重试,本质上都是在攻击公式中的某一项。
输出比输入贵,是因为读取提示词是单次并行扫描,而生成是逐 token 串行前向传播,无法并行化。实际含义是:多发输入便宜,多要输出昂贵。10,000 token 提示词配 100 token 回答,通常比 1,000 token 提示词配 1,000 token 回答更便宜也更快。
看价格表时,要算混合价而不是标题价:按实际输入输出比例 r,有效单价为 (r × P_in + P_out) / (r + 1)。先查缓存读取折扣倍数,再确认推理 token 是否计费,注意单位是每百万还是每千。唯一有意义的数字,是用你的 token 数算出的单次请求成本。
供应商的价格页都是快照,价格会随模型迭代持续变动。任何记录都应标注日期和来源,超过一个季度的报价只能当估算值。跨供应商比较同一模型,要同时对比所有账单行,而不是只看标题那对数字。
#开发者 #工具 #LLM #AI #Token #成本优化 #API
@DevToolboxHub