Tuto — Réduire le coût avec le prompt caching (Claude)
Public visé : développeur qui intègre l'API Claude et veut maîtriser le coût.
Objectif : comprendre et activer le prompt caching pour le chatbot (specs/ia-chatbot.md) et la veille.
Le principe
À chaque appel, un LLM « relit » tout le prompt — et on paie ces tokens à chaque fois. Or, dans un RAG, une grande partie du prompt est stable : le system prompt et souvent le contexte récupéré. Le prompt caching permet de mettre en cache ce préfixe stable : aux appels suivants, il est relu beaucoup moins cher (et plus vite).
[ system + consignes ] ← stable ┐ [ contexte (passages) ] ← semi-stable ├─ mis en cache [ question utilisateur ] ← variable ┘ (hors cache)
Comment ça marche (API Anthropic)
On marque un point de césure de cache sur le dernier bloc à mettre en cache, via cache_control. Tout ce qui précède ce point est caché.
{
"system": [
{
"type": "text",
"text": "Tu es un assistant documentaire. Réponds uniquement à partir du contexte…",
"cache_control": { "type": "ephemeral" }
}
],
"messages": [
{ "role": "user", "content": "….question variable…" }
]
}
On peut aussi marquer la fin du bloc de contexte (passages RAG) s'il est réutilisé d'un appel à l'autre.
Ce qu'il faut retenir sur le comportement
- TTL court (de l'ordre de quelques minutes), rafraîchi à chaque réutilisation. Au-delà, le cache expire et le préfixe est recalculé.
- Seuil minimal de tokens pour qu'un préfixe soit cachable (dépend du modèle).
- Économique : l'écriture en cache coûte un peu plus cher qu'un token normal, mais la lecture est très bon marché → gagnant dès qu'on réutilise le préfixe.
- Les valeurs exactes (TTL, seuils, ratios) évoluent : se référer à la documentation Anthropic à jour.
Bonnes pratiques pour notre RAG
- Ordonner du stable au variable : system → contexte → question.
- Marquer le préfixe stable avec
cache_control. - Regrouper les questions d'une même session pendant que le cache est chaud.
- Mesurer : suivre le ratio de lecture en cache vs écriture (observabilité).
Pour aller plus loin
- Chatbot (où le caching s'applique) :
specs/ia-chatbot.md - Assemblage RAG : RAG de bout en bout
- Cadre (décision « génération Claude + prompt caching ») :
specs/ia-vitrine.md