Skip to Content

提示缓存

支持缓存的模型与路由可以减少重复输入前缀的处理。它不是“答案缓存”:相同提示词仍可能得到不同回答,也仍会产生输出用量。

组织稳定前缀

把复用的系统指令、工具定义和参考资料放在前面,将每次变化的问题放在后面,并保持前缀内容与顺序稳定。时间戳、随机 ID 和用户特有信息放得过早,都可能降低复用效果。

不同租户的上下文仍要分别鉴权,不能为了提高缓存命中而扩大私有资料的访问范围。

自动缓存与显式缓存

方式应用需要做什么必须验证什么
自动前缀缓存复用相同的受支持前缀模型、路由、最低可缓存输入及命中计数
Anthropic 风格显式缓存在支持的位置添加 cache_control所选模型对标记和前缀的支持

下面仅适用于明确支持 cache_control 的 Messages 模型与路由。安装 anthropic,设置 FENNO_API_KEY、FENNO_MODEL,并将自己的可复用资料写入 FENNO_REFERENCE_TEXT:

import os from anthropic import Anthropic client = Anthropic( base_url="https://api.fenno.ai", api_key=os.environ["FENNO_API_KEY"], max_retries=0, ) response = client.messages.create( model=os.environ["FENNO_MODEL"], max_tokens=256, system=[{ "type": "text", "text": "You are a support assistant. " + os.environ["FENNO_REFERENCE_TEXT"], "cache_control": {"type": "ephemeral"}, }], messages=[{"role": "user", "content": "Summarize the support rules."}], ) print(response.usage)

很短的测试前缀可能不满足缓存条件;加了标记也不能证明已经写入或读取缓存。本页不意味着 Fenno 提供独立的 Gemini cachedContents 管理 API。

验证实际命中

协议返回时可参考的用量字段
Chat Completionsusage.prompt_tokens_details.cached_tokens
Responsesusage.input_tokens_details.cached_tokens
Messagesusage.cache_read_input_tokens、usage.cache_creation_input_tokens

字段缺失不能当作命中证据。对符合条件的重复请求做对比,并查看自己的用量记录。不要跨模型承诺相同的保留时长、前缀长度阈值或折扣。

成本与使用边界

  • 缓存 token 可能已经包含在输入 token 总数中,估算时不要重复减除。
  • 缓存读、写和普通输入的价格可能不同,应以 Fenno 账单明细为准,不能照用其他服务商的价格示例。
  • 不要把缓存当成持久会话存储,也不要据此推断数据留存政策。
  • 模型拒绝缓存字段时,应删除该字段或选择已验证的模型,不要改填无关的供应商专用参数。

继续阅读成本管理和 Messages。