用 Prompt Caching 降低重复长上下文成本
把稳定的长前缀放到可缓存位置,减少重复请求的延迟与费用。
基于 OpenAI Developers 整理 · Prompt Caching · 官方资料
同一份系统说明、工具定义或长文档被反复送进模型时,Prompt Caching 可以复用已处理前缀。
这篇帮你确认:哪些内容适合固定在前缀,如何观察缓存命中,以及动态用户问题应放在后面。
把稳定内容放在前缀
缓存命中依赖前缀一致。把不变的系统提示、schema、工具说明放在前面;把每次变化的用户问题放在末尾。
稳定前缀 + 变化问题
python
from openai import OpenAI
client = OpenAI()
SYSTEM = "你是文档助手。只根据给定规范回答,不确定就说明不知道。"
response = client.responses.create(
model="gpt-5.6",
input=[
{"role": "system", "content": SYSTEM},
{"role": "user", "content": "规范第 3 节允许哪些错误码?"},
],
)
print(response.output_text)
print(getattr(response.usage, "prompt_tokens_details", None))最容易踩的坑
每次请求都改系统提示
任何前缀字符变化都会打断缓存;把可变部分挪到后缀。
看不到命中指标
检查 usage / prompt_tokens_details 中的 cached tokens 字段(以当前官方字段名为准)。
官方资料
OpenAI DevelopersPrompt caching相关 AI 工具
相关 AI 模型
相关 TodayAI 指南
- 用 Structured Outputs 拿到可解析的模型结果用 json_schema + strict 约束 Chat Completions 输出,让结果可以直接解析进入应用逻辑。
- 用 Gemini Embeddings 做文本向量化按 Gemini API Embeddings 文档:用 embedContent 生成向量,配置 task 前缀或 task_type,并用 output_dimensionality 控制维度。
- 用 Gemini Structured Outputs 约束 JSON 结果按官方 Structured outputs:用 JSON Schema / Pydantic 约束 Gemini 的最终回答格式,提取菜谱等结构化数据并可直接校验。