API 成本基础

AI API 到底多少钱?Token、输入输出与缓存计费完整指南

从 Token、Input、Output、Cached Input 到月成本公式,拆开一笔 AI API 账单,并用站内实时价格数据完成可复算案例。

API 价格表通常写着“每 1M Tokens 多少美元”,但真实账单不是拿一个单价乘总字数。一次请求至少要分清普通输入、缓存命中的输入和输出;有些服务还会对长上下文、Batch、缓存存储、图片或音频采用另一套费率。下面直接从可复算的方法开始。

Token 到底是什么

Token 是模型处理文本的计量单位,不等同于“一个汉字”或“一个英文单词”。同一句话交给不同 Provider、不同 tokenizer,Token 数可能不同;代码、标点、空格和特殊格式也会参与切分。因此,网上流传的“中文字数乘某个固定系数”只能做粗估,正式预算应读取 API 响应里的 usage 字段,或使用对应 Provider 的 tokenizer。

一次聊天请求中,常见内容会这样进入账单:

  • Input Tokens:系统提示词、历史对话、检索到的资料、工具结果,以及用户本轮消息。
  • Output Tokens:模型生成的正文,以及部分 Provider 计入输出侧的 reasoning / thinking tokens。
  • Cached Input:满足缓存规则并命中的重复输入前缀;不是“所有历史消息自动打折”。

上下文窗口是“单次能装多少”,Token 价格是“实际用了多少付多少”。支持 1M Context Window,不代表每次都会按 1M Token 收费。

账单的三个组成部分

1. Input:重复历史会持续累加

多轮聊天最容易低估输入。第十轮请求通常不只发送第十条问题,还可能带上前九轮对话、固定系统提示词和检索资料。若每轮都把整份文档重新附上,输入量会随轮次增长。工程上应记录每次请求的 input tokens,而不是只统计用户新输入的字数。

2. Output:单价常高于输入

输出较贵时,“让模型多写一点”会显著改变成本。结构化提取、分类和路由任务通常只需要很短的答案,应设置合理的最大输出长度,并明确要求 JSON 字段或简短标签。长报告则不应盲目截断,而要先估算产出长度,再决定是否分段生成。

3. Cached Input:省钱有条件

缓存适合长而稳定、在大量请求中重复出现的前缀,例如固定规则、产品目录或课程资料。动态内容通常放在末尾,才能提高前缀复用率。还要核对缓存的最小长度、有效期、写入费和存储费;本站价格字段表示缓存命中/读取费率,未必覆盖缓存写入与存储。

一次调用如何计算

在“Cached Tokens 是 Input Tokens 的子集”这一常见口径下,文本成本公式是:

总成本 = [(Input − Cached) × Input Rate + Cached × Cached Rate + Output × Output Rate] ÷ 1,000,000

以下案例使用 GPT-5.6 Luna 的当前默认文本费率:普通输入 $0.2、缓存输入 $0.02、输出 $1.2,单位均为每 1M Tokens。价格来自本站与工具共用的数据源,数据核验日期为 2026-08-13。

示例假设:一次请求共有 3,200 个 Input Tokens,其中 2,200 个命中缓存,并生成 700 个 Output Tokens。这些 Token 数只是教学示例,不代表典型用户的固定用量。

部分计费 Token动态费率本次成本
普通输入1,000$0.2 / 1M$0.000200
缓存输入2,200$0.02 / 1M$0.00004400
输出700$1.2 / 1M$0.000840
合计不适用不适用$0.001084

若相同输入完全不命中缓存,本次约为 $0.001480;在该示例结构下,缓存命中使文本 Token 费用下降约 26.8%。这不是通用折扣率,实际结果取决于重复输入占比、模型费率和缓存附加费用。

怎样估算月成本

先按功能而不是按“整家公司”估算。每个功能分别记录单次输入、输出、缓存比例、日调用量和活跃天数:

月成本 = Σ(各类请求的单次成本 × 日调用次数 × 每月活跃天数)

沿用上面的教学示例,若每天调用 40 次、每月运行 30 天,月文本 Token 成本约为 $1.30。生产预算还应添加失败重试、流量峰值和汇率变化的缓冲,而不是把这个数字当作账单上限。

为说明“输出比例也重要”,下表统一假设每月使用 1,000,000 Input Tokens 和 200,000 Output Tokens、无缓存。模型费率与结果均在构建时读取集中数据源;这是一组相同用量的算术对比,不代表模型能力相同。

模型Input / 1MOutput / 1M该示例月成本
GPT-5.6 Luna $0.2 $1.2 $0.4400
Claude Sonnet 5 $2 $10 $4.00
Gemini 3.5 Flash-Lite $0.3 $2.5 $0.8000
DeepSeek V4 Pro $0.435 $0.87 $0.6090

想替换模型、Token 数、缓存比例和调用频率,直接使用API 成本计算器。它与上表读取同一份价格数据,适合把自己的 usage 统计代入,而不是套用本文示例。

容易漏算的成本

  • 长上下文阶梯价:部分模型超过指定 Prompt 长度后,整个请求的输入或输出费率都会改变,不能按短上下文价格外推。
  • Reasoning Tokens:有的 Provider 将思考 Token 计入输出,即使最终可见答案很短,也可能产生更多输出侧用量。
  • 图片、音频与视频:多模态输入的转换规则和费率可能不同,纯文本公式不能直接照搬。
  • 缓存写入与存储:读取便宜不等于缓存免费;长时间保存大缓存可能有独立费用。
  • 工具和外部服务:搜索、向量数据库、语音、代理网络或第三方工具调用,通常不包含在模型 Token 价里。
  • 重试与无效请求:超时、格式校验失败、Agent 循环和用户重复点击都会扩大实际调用量。
  • 税费与汇率:官方多以美元报价,支付渠道、税费和人民币汇率会影响最终支出。

真正有效的省钱方法

  1. 先测量再优化:保存按功能聚合的 input、cached input、output、请求数和错误率,不记录这些指标就无法定位浪费。
  2. 缩短无效上下文:删除重复指令,先检索再注入相关片段,对旧对话做结构化摘要,但不要为了省钱丢掉任务所需证据。
  3. 稳定前缀以提高缓存命中:把固定说明放前面,把用户变量放后面,并按 Provider 的缓存规则验证真实命中量。
  4. 按任务路由模型:分类、抽取先用低成本模型;复杂推理在置信度不足时升级。路由本身也要做质量测试。
  5. 异步任务评估 Batch:不要求即时返回的批量作业可能有不同费率,但需要接受更长等待时间和不同服务保证。
  6. 限制失控循环:为 Agent 设置最大步骤数、单任务 Token 上限和人工确认点,避免“自动工作”变成“自动烧钱”。

上线前核对清单

  • 用真实请求采样 Token,而非只按字数猜测。
  • 按普通输入、缓存输入和输出分别计费。
  • 确认是否触发长上下文、多模态或服务等级阶梯。
  • 把重试、缓存存储、第三方工具、税费和汇率列为独立项。
  • 设置日预算告警与硬上限,并定期对照 Provider 账单。

最稳妥的流程是:先用计算器做预算,再用一小段真实流量校准,最后才推算整月。价格决定“每 Token 多少钱”,产品设计决定“到底会消耗多少 Token”;后者往往更值得优化。