第一次拿到 API 报价单,最容易犯的错是只记住一个「每百万 token 多少钱」,然后拿它去乘自己估的字数。真跑起来发现账单对不上,又说不清差在哪。这篇不讲某家多少钱,只讲 Token 计费的收费口径:计费单位是什么、输入输出为什么分开、哪些项目另外算钱,以及去哪查当前的真实数字。
第一次拿到 API 报价单,最容易犯的错是只记住一个「每百万 token 多少钱」,然后拿它去乘自己估的字数。真跑起来发现账单对不上,又说不清差在哪。这篇不讲某家多少钱,只讲 Token 计费的收费口径:钱按什么算、哪几项分开计价、账单上哪几个数字要盯,以及去哪查当下的真实数字。
先给一个判断:Token 计费的本质是「按处理量分段计价」,不是「按你写了多少字收费」。所以任何只报一个单价、不谈输入输出拆分的说法,都不足以让你算出成本。下面四节按你能落地的顺序排:先认单位,再看双价,再查隐藏行,最后做自查。
先搞清计费单位:钱是按 token 算的,不是按字算的
很多人一上来就问「我这篇两千字的文档要多少钱」,这本身就是个问错的问题。中文一个字、英文一个词、一个标点、一段代码符号,切出来的 token 数都不一样,而且各家切法不一致。你要么接受「估不准」这个前提,要么拿自己真实的文本去切一遍再算。
- 粗略体感:中文大约一字对应一个多 token,英文一个词可能拆成两三个 token,真实切法以各家分词器为准;要估算就到 /tools/token-price-calculator 用你自己的文本试算。
- 请求里带的结构化内容都算输入:system 提示、历史对话、工具定义、附件文本,别只算你「想问的那句话」。
- 同一段话在不同模型下切出来的 token 数可能不同,跨模型比价时要按各自的切法分别算。
- 不适用的情况:按次、按秒、按张计费的服务不是这套口径,先到 /ai-dict/category/basics 把单位认全再谈价格。
输入和输出是两个价:别用同一个数字乘两遍
同一模型通常输入一个价、输出一个价,输出普遍更贵。所以「生成得多」比「读得多」更烧钱:喂长文档做总结,成本大头在输入;让它写长代码、写长文,大头在输出。自己算成本时,必须把输入 token 和输出 token 分开乘各自的单价再相加,混在一起算出来的数基本没法用。
| 任务形态 | 成本大头 | 容易算错的地方 |
|---|---|---|
| 长文档总结、翻译 | 输入 | 只算了问题那句,没算附件和上下文 |
| 写长文、写代码 | 输出 | 用输入单价乘了输出量 |
| 多轮客服对话 | 输入+输出 | 历史对话每轮都重算输入 |
| 批量分类、打标 | 输入 | 忽略了批量口径与阶梯 |
要拿当下的数字,到 /official-api 找对应厂商页核对输入、输出两档单价,别用记忆里的旧价格。核对时顺手确认一下该页是否标注了缓存、批量等特殊口径,否则你算出来的还是半成品。
除了单价,账单上还有几行常常被忽略
很多人对不上账,问题不在单价,而在账单里那些不起眼的行。缓存命中与否会走不同的计价档,写缓存和读缓存的价通常跟普通输入不一样,这四项要分开记。部分平台对长上下文、批量任务、推理型输出也有单独口径,单价看着一样,实际计费倍率不同。
- 第一步:确认模型与单价到 /official-api 找到你实际调用的那个模型,记下输入、输出两档价,别拿相近模型的价替代。
- 第二步:确认输入输出比例把最近一批真实请求的输入、输出 token 拉出来看比例,估算是输入为主还是输出为主。
- 第三步:确认特殊口径核对缓存写入、缓存读取、批量、长上下文这几项是否走单独计价,有就单独列一行。
- 第四步:确认阶梯与免费额度低档位常带免费额度或阶梯价,用超之后按哪一档续,得自己到 /price-watch 确认。
- 第五步:做分段测算用 /tools/model-cost-calculator 按你的用量分段跑一遍,看拐点在哪。
排查顺序建议固定下来:先确认模型和单价,再确认输入输出比例,最后才怀疑是不是别的地方多收了。反过来查,容易在价格上绕半天,结果问题出在缓存没命中。
一分钟自查:把这几个数记下来再去比价
比价前先记四个数:本次输入 token、本次输出 token、缓存写入量、缓存读取量。缺一项,后面怎么算都对不上。然后做一张小表,横轴放候选模型,纵轴放上面四个量乘各自单价,比只看「每百万多少」靠谱得多。
- 四个基础量先记全,再谈单价。
- 第一次接入前,拿典型任务跑一遍,把估算和实际账单对一次,差得多就回头查口径而不是查价格。
- 候选模型超过三个时,用表格横向比,别靠脑子记。
- 不适用的情况:流量极小、以调试为主时,纠结口径的收益还不如先把功能跑通,等量上来再精细化。
账单对不上时,九成问题出在口径,而不是出在你选贵了。下一步想拿你自己业务的真实用量做一次完整测算,可以从模型成本计算器入手,再对照官方 API 页和价格追踪页核对当时的数字。→
常见问题
token 计费到底按什么单位收钱?
基本单位是 token,钱 = 输入 token 数 × 输入单价 + 输出 token 数 × 输出单价,再加上缓存等其他项目的费用。所以你不能拿「字数」直接乘单价,得先把你实际发出去的文本和提示词切一遍,看真实 token 数是多少。
为什么我按单价乘字数,算出来和账单差很多?
常见三个原因:一是字数换成 token 本身有偏差,中文尤其明显;二是你只算了问句,没算 system 提示、历史对话和附件这些一起发出去的输入;三是输出可能比你预想的长。按输入输出分开记账,再对一次就能看出差在哪。
输入和输出的价格是一样的吗?
通常不一样,同一模型输出单价往往高于输入。具体差多少要看厂商当时的公布价,到站内官方 API 页面按模型逐个核对。如果任务以长文档读取为主,成本重心在输入;以生成长内容为主,输出那一边会更快吃掉预算。