跳转到主要内容
一句话总结。 模型在两次请求之间什么都不记得,所以每次请求都要把全部上下文再发一遍:系统提示、文档、整段对话历史。带着 15 万 token 的上下文发 50 次请求,同样的 15 万 token 你就要付 50 次钱。能把账单降下来的有三件事:缓存(Claude、GPT、DeepSeek 的重复上下文便宜 10 倍以上)、更小的上下文、长请求不涨价的模型。下面是具体算账和做法。 所有金额按 RuAPI 价格页 2026 年 11 月 7 日的标准价计算,你的账户可能更便宜。本文写给自己调 API 的人:机器人、长历史聊天、文档分析、智能体。Claude Code 和 Cline 另有一篇 —— Claude Code 和 Cline 省钱。

长上下文为什么贵

一次请求的费用 ≈(输入 token × 输入价)+(输出 token × 输出价)。回答通常很短,几百到几千 token;输入却每一轮都在变长:新问题和上一轮回答都加进历史,然后全部再发给模型。 例子:一个聊天机器人,系统提示里放了 10 万 token 的文档。用户问 30 个问题,光文档就是 30 × 10 万 = 300 万输入 token,哪怕每个问题只有一行。所以长上下文要省钱,先从输入下手。

一次请求多少钱

输入 15 万 token、回答 2 千 token 的一次请求。「有缓存」指其中 14 万 token 和上一次请求相同、从缓存读取,1 万是新的。 Claude 的 1 万新 token 按写入缓存的价格算(普通输入的 1.25 倍),GPT 和 DeepSeek 按普通输入算。claude-haiku-5-5 在 15 万 token 时已经超过 10 万的门槛,按高档计价(见下一节)。 两点结论:一是在这个例子里,缓存能把这几个模型的账单降到原来的 1/4~1/5.5;二是长上下文下不同模型的价格能差到 40 倍,这个差距比短测试里看起来更要紧。

哪些模型过了门槛会涨价

有些模型是分档计价:整个提示短于门槛时按低档;超过门槛,整次请求都按高档算,不是只算超出的部分。缓存里的 token 也计入门槛。价格为每 100 万 token,输入 / 输出: 不分长短一个价的:deepseek-flash、deepseek-v4-pro、claude-sonnet-5-5、claude-opus-5-5、glm-5.3、kimi-k3.1-pro、gemini-3.8-flash、gemini-2.5-flash-lite。 表里只是举例。除了 gpt-5.4-mini、gpt-5.4-nano(一个价)以外,GPT-5.x 和 GPT-6 模型都有 27.2 万的门槛,gemini-2.5-pro 是 20 万;完整名单和两档价格见 价格页。 实际效果:上下文从 15 万翻倍到 30 万 token,不走缓存时 deepseek-flash、claude-sonnet-5-5 的费用大约是原来的 2 倍,gpt-6-luna、gpt-5.4 却是原来的将近 4 倍:上下文变长了,整次请求还跳到了高档。到 30 万 token 时,deepseek-flash(每次 $0.053)已经比 gpt-6-luna($0.074)便宜。
如果你的请求长度正好在门槛附近(比如 Haiku 的 9 万到 11 万 token),把历史裁短一点留在门槛以下,或者换不分档的模型。账单能差好几倍。

六个省钱办法

1. 打开缓存

Claude、GPT、DeepSeek 从缓存读的重复上下文,比普通输入便宜 10 倍以上。GPT 和 DeepSeek 自动缓存。Claude 通过原生 Anthropic 接口,或在 OpenAI 兼容格式里加 cache_control 标记来缓存;RuAPI 也能替你加标记。检查缓存是否命中:控制台 → 使用日志 → 记录详情 →「缓存 Tokens」。详见 提示缓存。

2. 别改提示的开头

只有请求从第一个 token 起和上一次完全一样,缓存才会命中。开头改了一处,整段长上下文就要按全价重新付。常见原因:
  • 系统提示里放了当前日期、时间或随机 ID;
  • 工具列表每次请求都不一样(顺序变了、加了或删了工具);
  • 文档每次插入的顺序不同;
  • 程序在历史最前面加了一条附注。
规则很简单:不变的放前面(说明、工具、文档),会变的放后面。新消息只往后加,中间什么都不改。

3. 压缩旧历史

过了 20 到 30 轮,把前面的对话换成一段简短摘要,最近几条消息原样保留。摘要可以交给便宜的模型来写,比如 deepseek-flash。别太频繁,几十轮做一次就行,不要每轮都做:压缩会改变提示开头,缓存要重新写一次。

4. 只发需要的,不发全部

回答只需要大文档或知识库里的一节时,不要整份发过去。把文本切成小段,按语义找出相关的几段(同一个 key 就能用 text-embedding-3-small、text-embedding-3-large),只发这几段。5 千 token 的请求比 30 万 token 便宜几十倍,模型也不容易被无关内容带偏。

5. 按上下文长度选模型

  • 长对话、角色扮演、客服、写草稿:deepseek-flash,多长都是一个价,上下文最多 100 万 token。
  • 单价最低、任务简单:gemini-2.5-flash-lite,多长都是一个价,上下文最多 100 万 token。
  • 27.2 万 token 以内、要用 GPT:gpt-6-luna,我们这里最便宜的 GPT。
  • 提示短、必须用 Claude:claude-haiku-5-5,提示保持在 10 万 token 以内。
  • 长文档精细分析、要求准确:claude-sonnet-5-5 加缓存,长请求不涨价,缓存能省掉大头。
真实负载下的质量和价格对比见 DeepSeek 还是 Claude。

6. 问题一口气问完

对同一份长文档有好几个问题时,连着发,中间别停:Claude 的缓存默认在最后一次请求后保留 5 分钟,停久了长上下文又要按全价付一次。问题事先就知道的话,可以一次请求全问,让模型列表作答,长文档只发一次。

常见问题

跟着你这个词一起发给模型的,还有整段对话历史和系统提示,模型不会在请求之间保存它们。使用日志 里能看到输入了多少 token。历史越长,后面每个问题越贵。
算。门槛按整个提示计算:普通 token 和缓存读取的 token 都算。提示超过门槛,整次请求(包括缓存部分)都按高档计费。
按单价算是 gemini-2.5-flash-lite:上下文最多 100 万 token,多长都是一个价。要更强一点的模型,用 deepseek-flash,同样 100 万 token、一个价。同一份文档有几个问题,就连着问,让重复的上下文从缓存读。
两个都要。缓存让重复上下文变便宜,但每一轮还是要为它付钱,而且上下文一长就容易越过分档门槛。每几十轮压缩一次,能让上下文本身变小。只是别每轮都压缩,不然缓存永远命中不了。
打开 使用日志 → 记录详情。重复请求时「缓存 Tokens」一栏是空的或很小,说明提示开头每次都在变(见办法 2),或者两次请求间隔超过 5 分钟(Claude 默认)。

继续阅读

提示缓存

Claude、GPT、DeepSeek 的缓存怎么工作,怎么检查命中。

Claude Code 和 Cline 省钱

编程智能体的同类做法:缓存、/compact、选模型。

DeepSeek 还是 Claude

同一天的工作量,按不同模型的价格算。

价格

所有模型、分档和缓存价格。