Passer au contenu principal

Anthropic

Les modèles Anthropic prennent en charge le Prompt caching explicite. Sur cette plateforme, que vous utilisiez le protocole OpenAI chat/completions ou le protocole Anthropic v1/messages, vous pouvez utiliser "cache_control": {"type": "ephemeral"} pour spécifier le contenu à mettre en cache.
{
  "model": "claude-sonnet-4-5-20250929",
  "max_tokens": 4096,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "HUGE TEXT BODY",
          "cache_control": { "type": "ephemeral" }
        },
        {
          "type": "text",
          "text": "Name all the characters in the above book"
        }
      ]
    }
  ]
}
⚠️ cache_control est un champ étendu par nos soins. Il n’est pas inclus dans le protocole officiel du SDK OpenAI ; il doit donc être ajouté explicitement lors de l’appel. Vous pouvez vérifier la création ou l’atteinte du cache via la réponse.
{
  "prompt_tokens": 7039,
  "completion_tokens": 650,
  "total_tokens": 7689,
  "prompt_tokens_details": {
    "cached_tokens": 7019,
    "cache_creation_input_tokens": 7019,  # 👈 cache created
    "cache_read_input_tokens": 0
  }
}
---
{
  "prompt_tokens": 7042,
  "completion_tokens": 572,
  "total_tokens": 7614,
  "prompt_tokens_details": {
    "audio_tokens": 0,
    "cached_tokens": 7019,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 7019 # 👈 cache read
  }
}
⚠️⚠️⚠️ Pour les modèles Anthropic, les exigences minimales en Input Tokens pour utiliser le Prompt caching sont les suivantes :
  • Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.5, Claude Sonnet 4 et Claude Sonnet 3.7 : 1024 tokens
  • Claude Haiku 4.5, Claude Haiku 3.5 et Claude Haiku 3 : 2048 tokens

OpenAI et modèles compatibles OpenAI

En général, ces modèles peuvent prendre en charge la mise en cache implicite. Lorsqu’un utilisateur accède à plusieurs reprises au même modèle avec le même préfixe de Prompt, il existe une certaine probabilité que le cache soit atteint.
// Round 1
{
  "model": "gpt-4",
  "messages": [
    {
      "role": "system",
      "content": "HUGE TEXT BODY: Complete API documentation, code style guide, best practices (5000+ lines)"
    },
    {
      "role": "user",
      "content": "How do I authenticate API requests?"
    }
  ]
}

// Round 2 - Documentation cached
{
  "model": "gpt-4",
  "messages": [
    {
      "role": "system",
      "content": "HUGE TEXT BODY: Complete API documentation, code style guide, best practices (5000+ lines)"
    },
    {
      "role": "user",
      "content": "How do I authenticate API requests?"
    },
    {
      "role": "assistant",
      "content": "Use Bearer token in Authorization header..."
    },
    {
      "role": "user",
      "content": "What about rate limiting?"
    }
  ]
}
Voici un exemple d’utilisation lorsque le cache est atteint :
{
  "prompt_tokens": 3003,
  "completion_tokens": 1564,
  "total_tokens": 4567,
  "prompt_tokens_details": {
    "cached_tokens": 2025 # 👈 cache hitted
  }
}

Gemini

Actuellement, seule la mise en cache implicite est prise en charge. La mise en cache implicite ne nécessite aucun paramétrage manuel ni configuration cache_control supplémentaire. Lorsqu’un utilisateur accède à plusieurs reprises au même modèle avec le même préfixe de Prompt, il existe une certaine probabilité que le cache soit atteint. Points à noter :
  • Le TTL moyen (durée de vie du cache) est de 3 à 5 minutes, mais il peut varier (par exemple, il peut n’être que de quelques secondes)
  • Gemini 2.5 Flash exige une entrée minimale de 1024 tokens, tandis que Gemini 2.5 Pro exige un minimum de 4096 tokens
Voici un exemple d’utilisation lorsque le cache est atteint :
{
  "prompt_tokens": 2004,
  "completion_tokens": 1564,
  "total_tokens": 3568,
  "prompt_tokens_details": {
    "cached_tokens": 1994 # 👈 cache hitted
  }
}
Pour les exemples d’entrée, vous pouvez vous référer à OpenAI et modèles compatibles OpenAI.