大模型token计费标准

成本与用量

面向初入行开发者,讲清 token 计费的口径、换算与成本估算方法,并给出一套可复用的估算与核对流程。

第一次接大模型 API,最容易懵的不是代码,而是账单:明明只调了几百次,为什么费用和自己心算的差一截?通常是计费口径没对齐——输入输出分开算、按什么单位算、哪些部分不计费,各家的写法都不一样。这篇不背价格表,而是把口径讲清、把估算步骤拆开,让你在写代码前就能算出一个八九不离十的区间,并在月底能对得上账。

第一次接大模型 API,最容易懵的不是代码,而是账单:明明只调了几百次,费用和自己心算的差一截。问题通常出在计费口径——输入输出分开算、按什么单位标价、哪些部分不计费,各家写法都不一样。下面不背价格表,而是把「大模型token计费标准」这件事拆成能自己动手的估算流程,让你在写代码前算出八九不离十的区间,月底对账时也知道差在哪。

先说清一个前提:这篇给的是方法和判断标准,不替任何平台下结论。所有会变动的数字,都要到站内对应页面核对当时的版本。方法本身不会过时,数字会。

先搞清「按什么算钱」:计费单位与口径

大部分平台把输入和输出分开计价,两边的单价通常不一样,这也是新手最容易踩的坑:拿一个均价去乘总 token 数,算出来的结果既不是账单也不是估算,只是巧合。动手之前,先把你要用的平台口径抄成一张小卡,后面每次估算都对着这张卡做。

口径维度常见写法动手确认什么
计费单位按千 token 或按百万 token 标价单价后面跟的单位是什么,别只看数字
输入/输出分开定价,输出侧通常更贵两边的单价都要取,不能只取一个
特殊能力缓存命中、批量任务、工具调用可能独立计价先列清单,再逐条判断你的业务会不会用到
币种与结算标价币种和实际结算币种可能不同到站内价格页核对当时的币种与换算说明

Token 到底怎么数:中文、英文与代码的差异

token 不等于字数。中文一个字经常要拆成不止一个 token,英文一个单词也可能被切成几段,标点和空格同样占位。同一个平台上,一段中文说明书和一段等长的英文技术文档,token 数就不会一样;换成 JSON 或代码,密度还会再高一些。

  • 中文正文:按字符数估会明显偏低,实算往往更高
  • 英文与数字:短单词可能一个 token,长单词会被拆开
  • 代码和 JSON:括号、引号、缩进都在计 token,别只看行数
  • 别背固定系数,把真实请求样本拿去站内 token 换算工具跑一遍更准
  • 同一段文本换模型族后计数也会变,估算要绑定你实际调用的那个模型

最省事的做法:从线上日志或测试用例里抽十条真实请求,逐条量出 token 数,取平均和最大值。这比找任何「换算口诀」都靠谱,因为量的就是你自己的文本分布。

一次请求由哪几块 token 组成

很多人估算时只算了用户那句话,忽略了前面还挂着一大坨。一次请求的输入侧,通常包含系统提示词、历史对话、当轮问题、外部参考资料;输出侧只有模型生成的那部分。把这几块分开量,你才知道钱花在哪。

系统提示词
每次请求都会带,本身可能很长,属于固定成本
历史对话
多轮场景下会反复带入,轮次越多输入侧膨胀越明显
当轮问题
用户这一句,通常占比不大但别漏算
外部参考资料
塞进上下文的知识片段,长度完全由你控制
输出侧
只有模型生成部分,长度受最大输出设置约束

一个常见误区:以为省钱靠换模型,其实先看输入侧。系统提示词砍掉一半、历史只带最近几轮、参考资料按需检索而不是整篇塞入,这些动作对账单的影响往往比换模型更直接,而且不影响效果太多。

估算四步法:从用量假设到费用区间

到这一步,你已经知道单价口径和 token 构成,可以开始算了。重点是把「一个数」改成「一个区间」,因为调用量、输入长度本身就有波动,给单点值只会让后面核对时更被动。

  1. 定任务量写出每天调用次数、每次输入和输出的大致 token 区间,例如「每天几百次,输入几百到上千 token,输出几十到几百 token」,不要拍一个精确值。
  2. 查单价到站内官方 API 价格页按当时的数字取值,确认对应模型的输入、输出两个单价,同时核对单位与币种。
  3. 分项相乘再求和输入总量乘输入单价,输出总量乘输出单价,相加得到基础费用;缓存、批量等特殊口径单独列一行,别混进基础项。
  4. 加波动系数把重试率、上下文增长、输出变长都折成一个上浮比例,得出费用上限;下限用最理想的调用量估。上下限之间的区间,才是可以拿去汇报的数字。

这四步做完,你会得到一个月度费用的区间。它的价值不在于精确,而在于让你提前知道「这个功能大概在什么量级」,以及哪一项一旦失控会最先炸。

把总量换算成「一次任务多少钱」

月度总量对工程同学不直观,对业务同学更不直观。换成「一次任务多少钱」就好沟通多了:一次客服问答、一份文档总结、一轮代码补全,各自花多少。这个换算只对输入输出长度相对固定的任务成立,长度忽长忽短的任务不适用,硬算会误导判断。

任务类型输入侧主要构成估算要点
单轮问答系统提示词加当轮问题输入侧几乎固定,可按平均值算
多轮客服系统提示词加历史加当轮问题按平均轮次算,轮次分布广就要分段估
长文总结整篇文档加指令输入随文档长度线性涨,要按长度分档
代码补全上下文代码加当前片段代码 token 密度高,务必实测量取

换算出单次成本之后,再横向对比不同模型就有意义了。差距出现在哪一环——是输入侧的系统提示词太重,还是输出侧生成太长——一眼能看出来。这时再去决定要不要换模型、要不要压缩上下文,依据就具体了。

上线前必须留哪些用量记录

估算做得再好,没有记录也没法验证。上线前先想清楚要记什么,否则月底只能对着账单猜,估算能力永远停在原地。记录粒度建议到单次调用,聚合之后的平均数据没法倒推是哪一步超支。

  • 请求时间:用于按天聚合,看趋势而不是只看总数
  • 模型标识:同一功能可能切过模型,混在一起算不准
  • 输入 token 与输出 token:分开记,对应两个单价
  • 是否命中缓存或走批量:独立计费口径要能单独统计
  • 是否重试、是否失败:重复消耗往往藏在这里
  • 请求耗时与状态码:异常请求可能也计费,需要单独对账

如果平台侧只提供聚合用量,那就自己在中转层或日志里补记。哪怕先记时间和 token 两列,也比什么都没有强。记录的目的是让每一次估算都有反馈,估算和实际越对越近,这个循环才有意义。

月末核对:账单和估算对不上的排查顺序

对不上很正常,关键是按固定顺序排查,而不是东看一眼西看一眼。下面的顺序从最常见、最容易犯的错开始,多数差异在前两步就能定位。

  1. 查单位与币种先确认单价的单位是千还是百万,币种和结算币种是否一致;这类错会让结果差出好几个量级。
  2. 查独立计费口径核对缓存、批量、工具调用等是否有单独计价,是否被漏算或重复算进基础项。
  3. 查重复消耗看重试、超时重发、失败重放的比例;重试一次就是一次完整计费,容易积少成多。
  4. 查长度漂移对比上线前后的输入长度,看上下文是否在悄悄变长、系统提示词是否被加料。
  5. 回写估算模型找到差异原因后,把对应参数改回估算表,下一次估算才会更准。

排查时别急着下结论说「平台算错了」。先把自己的用量记录和账单逐项对齐,差异通常来自自己的调用行为和假设偏差,而不是计费系统。

哪些情况下这套估算不成立

这套方法有明确边界,用错场景会得出错误的安心感。下面几种情况,不能直接用 token 单价乘总量。

  • 按次计费或订阅制套餐:不看 token,看调用次数或席位,估算逻辑完全不同
  • 有阶梯价或活动折扣:实际扣费随用量档位变化,要用分段函数而不是单一单价
  • 赠送额度与试用期:这段时间的账面消耗不代表长期成本,对账时要把赠送部分剥离
  • 流式输出中断或被限速截断:计费口径各家不同,得按平台说明确认实际计入多少
  • 输入输出长度剧烈波动的任务:单次成本换算失效,只能按月总量做区间估计

遇到这些情况,处理办法是回到平台说明逐条确认口径,并在估算表里单独开一行,不要硬套通用公式。口径本身就是标准的一部分,把它当例外而不是特例,账才算得清。

计费标准的核心不是记住数字,而是知道每个数字的口径、边界和更新位置。
下一步把你要用的模型单价、单位和币种对着站内价格页核一遍,再顺手用换算工具跑十条真实请求样本,你的第一个费用区间今天就能搭出来。

常见问题

中文一个字算几个 token?

没有统一答案,取决于模型用的分词方式。中文常见是一个字对应一个到多个 token,标点和数字也可能被单独切分。别背固定倍数,拿你实际会发送的文本去站内换算工具跑一遍,得到的数字才作数。

输入和输出的费用为什么差那么多?

输入是一次性读取,输出是逐字生成,算力开销和耗时都不同,所以多数平台分开定价。计价时常是输出侧单价明显高于输入侧,估算时要分别乘各自的量,不要用一个平均价糊过去。

估算出来的数字和实际账单差一截,正常吗?

正常,差异通常来自几个地方:单位看错、缓存或批量走的另一套口径、重试带来的重复消耗、以及实际输入比假设长。按这几项逐一排查,能把大部分差额解释清楚,剩下的写进上浮系数里。

只做估算不做记录行不行?

短期可以,长期不行。没有单次调用记录,你无法判断超支发生在哪个任务、哪个模型、哪一轮上下文。等到账单翻倍时只能靠猜,估算模型也就永远校准不准。

免费额度会算进成本吗?

会,只是扣的是额度不是钱。做成本测算时要把免费额度部分单独标出来,否则一旦额度用完转入付费,你会发现实际支出比预期高一截。成本口径和额度口径最好各记一列。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。