按 token 类别计费:一次讲清楚
为什么输入、缓存读取、缓存写入和输出要分开计价,四个模型在每一类 token 上分别按多少积分计费,缓存读取为什么只按输入费率的十分之一算,以及一次真实请求从 token 数到最终积分的完整算法。这里写的是我们自己的计费方式,不是别人的价目表,每一档费率都能拿你自己的账单逐笔核对。
你发到这里的每一个请求都按积分计费,而积分数不等于 token 数。四类 token 是分开计量的 — 未命中缓存的输入、缓存读取、缓存写入和输出 — 因为它们的服务成本本来就不一样,一个混在一起的平均价,等于让一个人的廉价负载去付另一个人的昂贵账单。下面把这套分类计价的算法完整讲一遍,用的全是我们自己公示的数字,最后再把一次真实请求拆开来算给你看。
为什么这几类要分开定价
模型第一次读到的 token、它从缓存前缀里读回来的 token、它写进那份缓存的 token,以及它自己生成出来的 token,这四者背后是四种不同的工作量。生成是最贵的一类:输出 token 是一步一步产生的,任何模型的输出单价都远高于它自己的输入单价。缓存读取是最便宜的一类,因为它背后的活在更早的那次请求里已经做完、也已经付过。缓存写入上游根本不向我们收费,这里按每个模型自己的输入费率公示 — 这是利润里摊开讲的那一半,而不是藏起来的那一半。
一口价的单 token 价格更好打广告,买起来却更不划算。它让命中缓存的负载多付了钱,让生成长答案的负载少付了钱,而最要紧的一点是:它让任何人都没办法拿账单去核对任何东西。最后这一点,正是我们用来要求自己这套计量系统的那条标准 — 每一笔扣款都必须能用旁边那条账目行上存着的价格重新算出来,而一个由两个价格混出来的费率,从构造上就让这件事变成不可能:那个混合值不出现在任何一列里,于是记录里没有任何一样东西可以被重算。所以这里没有任何一类是混价的。每一类都按为它公示的费率计量,而公示的费率就是扣款的费率。
一个 token 值多少,按类别
每个 token 的积分数,按模型和类别列出,直接取自本站其他所有价格都在用的那份目录:
| 模型 | 输入 | 缓存读取 | 缓存写入 | 输出 + REASONING |
|---|---|---|---|---|
| astra | 2.5 | 0.25 | 2.5 | 12.5 |
| sol | 1 | 0.1 | 1 | 5 |
| terra | 0.5 | 0.05 | 0.5 | 3 |
| luna | 0.05 | 0.005 | 0.05 | 0.3 |
一个 sol 输入 token 就是一个积分。这是整张表写作时对齐的锚点,其余每一格都是它自己相对这个锚点的比例:横着读一行,是一个模型的四个价格;竖着读输入那一列,是能力本身值多少钱。表里没有一个数字是为了好看而抹圆的营销数字 — 这些就是计量系统实际套用的倍率,而你的控制台会拿它们把每一笔请求逐项列出来。
缓存读取是十分之一
从缓存前缀里读回来的 token,按所属模型输入费率的十分之一计费 — 上表的缓存读取列,逐个模型看下来就是输入列除以十。这项折扣在控制台里是每一笔请求上单独的一行,而不是摊到你整个月抹平的平均值:一个每一轮都重发同一段长 system prompt 的 agent,应该能一笔一笔地看着省下来的钱到账,并且核得出来。
一次真实请求,从头算到尾
下面这次请求跑在 astra 上:303 个提示 token,没有命中缓存,14 个回答 token。里面的费率是写这篇文章当天 astra 的费率;上面那张表才是活的,两边如果对不上,以表为准。
POST /v1/chat/completions model: astra
类别 token 费率 积分
input 303 x 2.5 = 757.5
output 14 x 12.5 = 175.0
-------
扣除 932.5 -> 933
关于最后那一行,有两件事要说。第一,总数只在最后向上取整一次,而不是每一类各取一次:逐类取整会取四次,等于让你为取整这件事本身付钱。第二,加法用的是精确整数运算,依据的就是账目行上自己存着的那几列价格,所以扣掉的数和账目上写着扣掉的数之间不存在浮点误差 — 那一行可以用手重新算一遍,这正是它能被审计的原因。
结算之前的那笔预留
请求发往上游之前,计量系统会先在你的配额里预留一个估算值,并记下将来结算时要用的价格。这样一批并发的请求就不会把同一笔最后的积分花两次:控制台里的余额在请求开始时就变了,而不是在它结束时才变,所以你看到的那个数字,是别的请求不可能再花一次的数字。
回答返回后,这笔预留按供应商实际上报的用量结算,用的是预留那一刻记下的价格 — 所以请求跑到一半时费率变了,也无法给一个已经在跑的请求重新定价。结算金额永远不会大于它所结算的那笔预留:真实成本超出预留的请求会被拒绝结算并标记为待对账,而不是悄悄多扣你的配额。每一笔预留里没用掉的部分都会立刻退回。
接下来看哪里
同样这套权重,长短两档上下文都在,还写明了每个模型分别适合干什么:模型。一个套餐多少钱、一个积分又是什么:套餐与价格。base URL 和一个可以直接复制的请求:快速上手。
本文为机器翻译,母语审校待完成。以英文版为准。