很多人第一次接 DeepSeek,脑子里想的是「一次调用多少钱」,结果拿到账单发现金额对不上。问题在于官方不是按「次」报价的,而是按 token 分输入、输出两段计价,一次请求里还夹着系统提示、上下文重发、缓存命中这些变量。这篇不给你写死的数字,而是把「一次调用」拆成可核对的几块,告诉你去站内哪个页面看当时的单价,自己套出属于你的那一次。
很多人第一次接 DeepSeek,脑子里想的是「一次调用多少钱」,结果拿到账单发现金额对不上。问题在于官方不是按「次」报价的,而是按 token 分输入、输出两段计价,一次请求里还夹着系统提示、上下文重发、缓存命中这些变量。所以先别急着找一个「每次多少钱」的数,那个数不存在。
这篇不给你写死的数字,而是把「一次调用」拆成可核对的几块,告诉你去站内哪个页面看当时的单价,自己套出属于你的那一次。单价的实时数值统一到 /official-api/providers/deepseek 核对,中转站的口径另说。
为什么官方不按「次」报价
模型是按处理的文本量收费的,同样一句「帮我改个错别字」和「总结这篇长文」,消耗量差几十倍。按次定价对双方都不合理:短请求的开发者会觉得亏,长请求的供应商会赔。所以官方给的是每百万 token 的输入价、输出价,单位是量不是次数。
具体当前值到 /official-api/providers/deepseek 看当时的数字,别背别人文章里的旧数据。这是判断一切费用问题的前提。
还有一种情况要分开:部分中转站会包装成「按次」卖。那是把 token 量折算后加了自己的倍率,跟官方的口径不是一回事。比价前先对齐是哪种口径,混着比一定错。
| 口径 | 计费单位 | 适合谁 |
|---|---|---|
| 官方直连 | 按 token,输入输出分开 | 能自己记日志、愿意算量的团队 |
| 中转按量 | 按 token,但带自己倍率 | 接入快、不想管账号的团队 |
| 中转按次 | 折算成次,单次价看起来固定 | 调用量小、图省心的个人 |
一次调用的钱由哪几块拼起来
- 输入部分
- 你发过去的所有文本都算,包括系统提示词、历史对话、这次的问题、塞进去的文档片段,不是只算最后那句
- 输出部分
- 模型生成的内容单独按输出价算,通常比输入贵,所以让它少说废话本身就是省钱
- 缓存部分
- 命中的前缀走缓存价,没命中的按正常输入价,能省多少取决于前缀稳不稳定
- 附加部分
- 工具调用、联网、图片理解这类能力如果开了,往往有单独口径,别默认包含在文本价里
把「一次」换算成钱的四步
- 记 token在请求日志里记下这次调用的输入 token 和输出 token,两个数字分开记。合在一起后面没法拆,也没法判断是哪块涨了。
- 取单价到 /official-api/providers/deepseek 拿当前输入单价和输出单价。注意单位是每百万 token,换算时别漏掉这个量级。
- 分开算输入量乘输入价,加输出量乘输出价。缓存命中的那部分要单独拎出来按缓存价算,混在一起算会偏高。
- 加倍率如果走的是中转站,再乘它的倍率。倍率的对照方法看 /pricing-alignment-basics,别只看宣传页的折扣数。
这四步做完,你手里就是一个可复算的式子。下次账单对不上,把日志里的两个 token 数代回去,差在哪一块一眼能看出来。
同样的提问,为什么账单不一样
很多人拿同一句话测两次,发现金额不一样,第一反应是计费出错。多数情况不是,是下面几个变量在动。
- 上下文长度不同:多轮对话每轮都要把前面的历史重发一遍,第 10 轮的输入量可能是第 1 轮的很多倍
- 输出长度不受控:没设 max_tokens 或者没在提示里限制篇幅,模型可能一口气写很长
- 缓存命中率波动:前缀一改,整段缓存作废,本来走缓存价的部分全变成正常输入价
- 重试与超时:请求失败后重发,前面那次如果已经产生输出,那部分照样计费,细节看 /retry-billing-limits
所以同一次提问金额浮动是正常的。想比对就先固定提示词前缀和输出上限再测,否则两次跑的根本不是同一个实验。这条的例外是:你确实想让模型自由发挥,那就接受波动,别拿这个当对账依据。
自查清单:接之前先确认这几件事
- 确认单价来源是官方页面还是中转站页面,两者口径不同不能混用
- 确认调用里有没有隐藏的重复输入,比如每次请求都把整份知识库塞进去
- 确认输出有没有上限,长文生成任务尤其要设
- 确认有没有开缓存,前缀稳不稳定,不稳定的话别把省钱指望在缓存上
- 定期对一次账:把用量日志的 token 累计乘单价,跟实际扣费比一遍,差得多就往前翻请求记录
| 症状 | 先去哪看 | 常见原因 |
|---|---|---|
| 账单比估算高一截 | 用量日志的输入 token | 历史对话或文档片段被重复发送 |
| 单次金额忽高忽低 | 日志里的输出 token | 输出长度不受限或缓存没命中 |
| 换了个接入点就变贵 | 中转站倍率说明 | 口径从官方换成了按次或带倍率 |
| 免费额度用完后才开始扣 | 账号计费页 | 额度只覆盖一部分用量类别 |
常见问题
DeepSeek API 是按次收费还是按 token 收费?
官方是按 token 收费的,输入和输出分开计价,不是一次请求一个固定价。所以你问「一次多少钱」,答案取决于这次请求里塞了多少字、模型回了多少字。想拿到自己场景下的真实单次成本,先记两天用量日志,再用站内官方价格页的单价乘一遍,比问别人准。
为什么我算出来的钱和账单对不上?
最常见的三个原因是缓存命中没单独算、多轮对话的历史输入被漏算、以及输出长度超出预期。另外如果你走的是中转站,中间还有一层倍率。建议先把一次调用的输入和输出 token 分别记下来,逐项对上,差得多的部分再回去翻具体请求。具体单价以站内官方价格页当时显示的为准。
想让单次调用便宜点,最先动哪里?
优先级一般是:先把输出长度控住,因为输出单价通常更高;再把每次请求都要重发的系统提示和历史压一压;然后才考虑缓存这类需要前缀稳定的手段。如果这些做完还是贵,那说明任务本身就该换个更轻的模型,这时候该做的是选型而不是抠单价。不同任务省钱的空间差别很大,没有通用答案。