Skip to content

提示词缓存 ​

利用提示词缓存(Prompt Caching)减少重复内容的处理成本,并通过请求 ID 保持会话路由一致性。

什么是提示词缓存 ​

许多模型厂商(如 Anthropic Claude、OpenAI)原生支持提示词缓存。当相同的上下文内容被反复发送时,厂商会从缓存中复用计算结果,从而降低延迟并减少 Token 费用。

缓存使用限制 ​

缓存无法跨账号共享——这是厂商侧的限制,与平台无关。作为 Tokens Router,同一账号的前后两次请求不保证一定路由到同一个后端渠道;如果两次请求被分配到不同渠道,已建立的缓存将无法复用,可能导致缓存命中率降低、成本上升。

保持路由一致性 ​

为解决上述问题,您可以在请求中携带上一次请求的 ID,系统会尽量将新请求路由到同一个渠道,从而复用已有缓存。支持以下两种方式:

Header值来源有效期
X-Request-Id上一次响应的 X-Calgine-Request-Id Header5 分钟
X-Response-Id上一次响应 JSON 中的对话 ID(如 Claude 的 message.id)5 分钟

示例 ​

python
import anthropic

client = anthropic.Anthropic(
    base_url="https://api.calgine.com.cn/anthropic",
    api_key="API_KEY",
)

# 第一次请求
response = client.messages.create(
    model="claude-opus-4-5-20251101",
    max_tokens=1024,
    messages=[{"role": "user", "content": "你好!"}],
)

# 获取响应 ID,用于后续请求保持路由一致
response_id = response.id

# 第二次请求:携带上一次响应 ID
response2 = client.messages.create(
    model="claude-opus-4-5-20251101",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "你好!"},
        {"role": "assistant", "content": response.content[0].text},
        {"role": "user", "content": "继续我们的对话……"},
    ],
    extra_headers={"X-Response-Id": response_id},
)
bash
# 第一次请求后,从响应头中获取 X-Calgine-Request-Id
# 第二次请求时携带该 ID
curl https://api.calgine.com.cn/anthropic/v1/messages \
  -H "x-api-key: API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "X-Request-Id: 上一次响应的 X-Calgine-Request-Id" \
  -H "Content-Type: application/json" \
  -d '{"model": "claude-opus-4-5-20251101", "max_tokens": 1024, "messages": []}'

子任务扩展 ​

部分模型(如视频生成、图像编辑等)支持基于已有任务进行继续扩展操作,例如在已生成的视频末尾追加内容,或对已生成的图像进行二次编辑。这类操作通常需要在新请求中提供原始任务的 task_id,具体参数请参考对应模型的使用文档。