你充了 100 块,高强度用了一周,余额没了。打开账单一看:输入 token 几百万,输出 token 几十万,还有一栏叫"缓存命中"——这到底是什么?为什么有时候输入便宜得离谱,有时候又贵得肉疼?中转站标着"官网 2 折",它到底靠什么赚钱?这篇文章把计费逻辑拆到底。
文章目录
- 一、Token 是什么:大模型为什么按这个收钱
- 二、为什么输出 token 比输入 token 贵得多
- 三、缓存命中:同一个 prompt,为什么便宜了十倍
- 3.1 缓存是怎么工作的
- 3.2 缓存命中的三个条件
- 3.3 缓存命中的定价冲击
- 四、实操建议:怎么降低你的 API 费用
- 1. 把 system prompt 放在请求的最前面
- 2. 精简 system prompt,但不牺牲质量
- 3. 控制输出 token 上限
- 4. 选模型时看"缓存命中价"而不只看"标准价"
- 5. 评估中转站时,直接问:缓存命中怎么计价?
- 参考
一、Token 是什么:大模型为什么按这个收钱
Token(令牌/词元)是大模型处理文本的最小语义单元。它不是"一个字",也不是"一个单词",而是模型分词器(Tokenizer)切出来的一个片段。
举个例子,"我喜欢吃苹果"这句话,经过分词后可能是:
["我", "喜欢", "吃", "苹果"] → 4 个 token英文同理,“I love apples” 大概被切成:
["I", " love", " apples"] → 3 个 token一个经验值:中文约1 个 token ≈ 0.7 个汉字,英文约1 个 token ≈ 0.75 个单词。
为什么用 token 而不是字数?因为模型内部的计算粒度是 token。每个 token 在经过所有神经网络层时都对应着一组矩阵运算,消耗的算力正比于 token 数量。用 token 计价,本质上是在为算力付费。
API 计费中,token 被分为两类:
| 类别 | 含义 | 谁产生的 |
|---|---|---|
| 输入 token(Input / Prompt tokens) | 发送给模型的所有上下文,包括 system prompt、历史对话、用户当前问题 | 你 |
| 输出 token(Output / Completion tokens) | 模型生成的每一个字(包括它"思考"的内容) | 模型 |
这两类 token 的价格完全不同。
二、为什么输出 token 比输入 token 贵得多
翻开任何一家大模型厂商的定价页,你都会看到同一个规律:输出价格是输入的 3~5 倍。
下面是一组主流模型 2025 年的公开定价(每百万 token,单位:人民币):
| 模型 | 输入价格 | 输出价格 | 输出/输入倍数 |
|---|---|---|---|
| GPT-4o | ¥17.5 | ¥70 | 4× |
| GPT-4.1 | ¥14 | ¥56 | 4× |
| Claude Sonnet 4 | ¥21 | ¥105 | 5× |
| Claude Opus 4 | ¥105 | ¥525 | 5× |
| DeepSeek-V3 | ¥1.4 | ¥5.6 | 4× |
| DeepSeek-R1 | ¥2.8 | ¥11.2 | 4× |
| 豆包 Lite | ¥0.8 | ¥1.6 | 2× |
注:价格为 2025 年 5 月查询的公开定价,实际以各平台官网为准。
为什么输出更贵?两个原因:
1. 输入可以并行处理,输出是逐 token 串行生成的。当你把一整段 prompt 发给模型,模型可以对所有输入 token 同时做注意力计算(一次性看完你给的全文)。但生成时必须一个一个 token 往外蹦——每生成一个 token,都要基于前面所有已生成的 token 重新计算。这个过程叫自回归生成(Autoregressive Generation),天然无法并行。
打个比方:输入像是把一份文件复印 1000 页——可以同时开 10 台复印机。输出像是手抄一份 1000 页的文件——必须一个字一个字抄,没法加速。
2. 输入可以从内存中复用,输出每次都是新的。这就是下一节要讲的缓存机制——系统 prompt 和历史对话如果能被缓存,输入成本会断崖式下降。但输出 token 永远没有"缓存"一说。
三、缓存命中:同一个 prompt,为什么便宜了十倍
3.1 缓存是怎么工作的
设想一个场景:你和一个大模型聊了 50 轮。每发一条新消息,你的请求中都会包含前面 49 轮的全部对话历史。这 49 轮历史每次都要重新计算一遍,你每次都在为"模型反复阅读同一段文字"付钱。
Prompt Caching(提示词缓存)就是来解决这个问题的。
它的原理不复杂:模型服务端在收到请求时,会检查请求内容的前缀部分是否和之前的某次请求一模一样。如果匹配上了,这部分内容就不需要重新计算——直接从缓存中读取已算好的中间结果(KV Cache),只对新增的部分做计算。
请求 1:system prompt + 问题A → 全部计算,缓存 system prompt 请求 2:system prompt + 问题B → 命中缓存!system prompt 免费/折扣价,仅计算 问题B 请求 3:system prompt + 问题A + 追问 → 命中缓存!前两个部分折扣价,仅计算"追问"3.2 缓存命中的三个条件
不是所有相同文本都能命中缓存,各厂商的判定规则大致是:
- 前缀匹配:缓存只对请求最前面的连续 token 生效。如果你在开头加了一句"你好",哪怕后面的 system prompt 完全没变,整个缓存也不会命中。
- 严格相等:一个空格、一个标点不同都不行。缓存匹配比较的是 token ID 序列,差一个 token 都会导致未命中。
- 有时效窗口:缓存在服务端只保留一定时间。Anthropic 是 5 分钟,OpenAI 的 Automatic Caching 模式在频繁使用时可以维持更久,DeepSeek 则对 128KB 以内无变化的上下文前缀自动触发缓存。
关键:把最稳定、最不常变的内容放在请求的最前面(system prompt → 历史对话 → 最新问题),是提高缓存命中率的核心策略。
3.3 缓存命中的定价冲击
缓存命中后,这部分输入 token 的价格会大幅下降:
| 厂商 | 标准输入价 | 缓存命中价 | 折扣 |
|---|---|---|---|
| Anthropic (Sonnet 4) | ¥21/M | ¥2.1/M | 90% off |
| Anthropic (Opus 4) | ¥105/M | ¥10.5/M | 90% off |
| DeepSeek-V3 | ¥1.4/M | ¥0.14/M | 90% off |
| OpenAI (GPT-4o) | ¥17.5/M | ¥8.75/M | 50% off |
两张表放在一起看,一个有意思的事实浮现了:
一个高缓存命中率的普通模型,实际输入成本可能低于低命中率的更便宜模型。
举个例子:GPT-4.1,标准输入 ¥14/M。如果你的聊天场景缓存命中率达到 70%,有效输入价格会接近 DeepSeek-V3 的标准价格。而 DeepSeek-V3 本身缓存命中价只要 ¥0.14/M——便宜到几乎可以忽略不计。
算一笔真实的账:
假设你写了一个 AI 客服,system prompt 有 2000 token,每次对话平均 10 轮,每轮用户问题 100 token:
- 第一轮请求:2000(system)+ 100(用户)= 2100 token(标准输入价)
- 后续 9 轮:2000 token 全部从缓存读取(缓存命中价),仅 100 token 新输入(标准价)
| 场景 | 输入总费用 |
|---|---|
| 无缓存 | 2100 × 10 × 标准价 = 21,000 token × ¥21/M =¥0.44 |
| 有缓存(Anthropic) | 第 1 轮全价:(2100 × ¥21/M) + 后 9 轮 system 缓存:(2000×9 × ¥2.1/M) + 新输入:(100×9 × ¥21/M) = ¥0.044 + ¥0.038 + ¥0.019 =¥0.10 |
费用直接少了 77%。如果你的应用有大量重复上下文(客服、代码助手、角色扮演),缓存命中率就是你费用的决定因素。
四、实操建议:怎么降低你的 API 费用
不管你用直连还是中转站,以下策略都能立竿见影地省钱:
1. 把 system prompt 放在请求的最前面
缓存只对连续前缀生效。确保你的请求结构是:
system prompt(固定) → 历史对话(相对固定) → 当前问题(变化)不要在开头塞"今天是 2025 年 5 月 29 日"这种每天变化的内容——这会破坏整个缓存链。
2. 精简 system prompt,但不牺牲质量
一个 5000 token 的 system prompt 和 2000 token 的能做到同样效果,前者每次请求多烧你 3000 token。用具体的示例替代冗长的规则描述,更短的 prompt 往往效果更好。
3. 控制输出 token 上限
max_tokens参数是省钱利器。如果你的场景只需要简短回答,不要把 max_tokens 设到 4096。设一个合理的上限,既能防止模型拖沓,又能省输出费用。
4. 选模型时看"缓存命中价"而不只看"标准价"
如果你的应用多轮对话占比高,Anthropic 和 DeepSeek 的 90% 缓存折扣会让你实际支出远低于定价表上的数字。OpenAI 的缓存折扣只有 50%,在这方面劣势明显。
5. 评估中转站时,直接问:缓存命中怎么计价?
如果客服含糊其辞说"按实际用量",追问一句"缓存命中的输入 token 有折扣吗?"——对方的回答质量直接反映这个中转站的透明度水平。
参考
https://zhuanlan.zhihu.com/p/2019895121458542180
Token、输入输出与缓存——AI开发计费全解 - 技术栈