功能特性
上下文缓存
重复的输入前缀按更低价格计费
当多次请求包含相同的开头内容(例如固定的系统提示词、同一份长文档)时,这部分内容可以命中上下文缓存,按更低的"输入(缓存命中)"价格计费,同时降低响应延迟。
适用模型
在模型详情页的"模型价格"中查看是否有缓存命中价格;"模型能力"中标有 内容缓存 的模型支持缓存。
隐式缓存
多数模型会自动缓存重复的前缀,无需修改代码。命中缓存的 token 数可以在返回的用量中查看:
{
"usage": {
"prompt_tokens": 12000,
"completion_tokens": 300,
"prompt_tokens_details": { "cached_tokens": 11520 }
}
}显式缓存
Claude 等模型支持显式标记缓存位置。通过 Anthropic 兼容接口,在需要缓存的内容块上加 cache_control:
import anthropic
client = anthropic.Anthropic(api_key="YOUR_API_KEY", base_url="https://netnexus.top/api")
resp = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
system=[
{
"type": "text",
"text": "(这里是一份很长的产品手册内容……)",
"cache_control": {"type": "ephemeral"},
}
],
messages=[{"role": "user", "content": "手册里的退货政策是什么?"}],
)
print(resp.usage)最佳实践
- 把固定不变的内容(系统提示词、工具定义、长文档)放在消息的最前面,把每次变化的问题放在最后。
- 不要在固定内容里插入时间戳、随机 ID 等每次都会变化的信息,否则缓存无法命中。
- 缓存内容有最短长度要求,过短的前缀不会被缓存。
