主题
语言
·1 分钟阅读

提示缓存:如何降低重复提示的成本

GetVibe API 上的提示缓存如何工作:OpenAI 模型自动缓存,Claude 使用 cache_control,cacheReadMult 的含义,以及如何保持可缓存的前缀。

提示缓存:如何降低重复提示的成本

大模型的流量大多是重复的。聊天机器人每一轮都重发相同的系统提示,智能体则重发工具定义和到目前为止的全部对话。提示缓存让模型从缓存中读取这段重复的前缀,而缓存输入按正常输入价格的一小部分计费。本文介绍提示缓存在 GetVibe API 上的工作方式,以及如何充分利用它。

缓存输入怎么计费

目录中的每个文本模型都公布了缓存条款。在 https://getvibeapi.com/api/catalog 中,每个模型变体都包含:

  • cachedInputUsd:每 1M 缓存输入 token 的价格。
  • cacheReadMult:缓存价格相对于正常输入价格的比例。
  • cacheWriteMult:写入缓存相对于正常输入的计费方式。

撰写本文时,几乎所有文本模型都标注 cacheReadMult: 0.1(一个缓存输入 token 的价格是普通输入的十分之一)和 cacheWriteMult: 1。唯一的例外是 Claude Fable 5.1,读取为 0.025,写入为 1.25。这些数值可能变化,请从目录或各模型页面读取,不要写死在代码里。

模型价格(输入 · 输出)
Claude Opus 5.5$0.1067 输入 · $0.5334 输出 每百万 token
GPT-6 Sol$0.1096 输入 · $0.548 输出 每百万 token
DeepSeek V4.1 Flash$0.0112 输入 · $0.0445 输出 每百万 token

模型页面在这些价格旁边列出了缓存输入价格。

OpenAI 模型:自动缓存

在 /v1/chat/completions 上,OpenAI 系列模型会自动缓存。当多个请求以相同的稳定前缀开头时,这段前缀会从缓存中读取。不需要任何特殊字段,关键是请求的开头不要变化。我们逐字节转发请求体,不重新排列字段,所以你这边完全相同的前缀,到上游时依然相同。

Claude:cache_control 断点

Claude 只有在请求中带有显式 cache_control 断点时才会缓存,仅仅重复前缀并不会开启缓存。把断点放在不变部分的末尾:

curl https://getvibeapi.com/v1/messages \
  -H "x-api-key: $GETVIBE_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-opus-5.5",
    "max_tokens": 256,
    "system": [
      {"type": "text", "text": "A large fixed instruction worth caching...",
       "cache_control": {"type": "ephemeral"}}
    ],
    "messages": [{"role": "user", "content": "Question about the instruction"}]
  }'

如果你没有自己设置断点,网关会在 /v1/messages 和 /v1/chat/completions 上替你插入一个。如果你自己管理断点,你的标记会原样保留。

可缓存提示的五条规则

  1. 稳定内容在前,变化内容在后。系统提示、工具定义和参考文档放在最前面,用户的新消息放在最后。
  2. 前缀中不要放时间戳或请求 ID。开头附近只要有一个字符变化,后面的所有内容都会失效。
  3. 工具定义保持固定顺序。从无序映射生成工具列表,会让前缀每次调用都不同。
  4. 追加历史,不要改写。会总结或重排之前轮次的智能体会破坏缓存。新的轮次应追加在末尾。
  5. 固定使用一个模型。缓存属于某个模型,对话中途切换模型就要从头开始。

验证是否生效

查看响应中的 usage 对象。OpenAI 格式下,缓存 token 位于 prompt_tokens_details.cached_tokens;Anthropic 格式下,查看 cache_read_input_tokens 和 cache_creation_input_tokens。控制台的用量视图也会按模型显示缓存命中比例。如果相同请求的缓存计数一直为零,说明前缀中有内容在变化。

下一步

阅读缓存文档,为 Claude Code 配置自定义端点(智能体从缓存中受益最多),或在模型页面比较缓存价格。

提示缓存大模型 API 成本缓存输入价格Claude cache_controlOpenAI 提示缓存降低大模型 API 成本

免费试用 GetVibe API

通过一个 OpenAI 兼容的 API 接入 GPT、Claude、Gemini 等模型,支持信用卡或加密货币支付。

相关文章

提示缓存:如何降低重复提示的成本 | GetVibe API