Guides · Prompt caching
Cache de prompts : réutiliser les longs prompts d'une requête à l'autre
Beaucoup d'applications envoient le même long texte au début de chaque requête : un prompt système, des définitions d'outils, un document de référence ou les tours précédents d'une conversation. Le cache de prompts permet au modèle de réutiliser le travail déjà fait sur ce début commun, si bien que les requêtes répétées commencent à répondre plus tôt. Il fonctionne automatiquement, et chaque réponse indique la part du prompt servie par le cache.
- 01Format d'API: OpenAI et Anthropic
- 02Centres de données dans l'UE
- 03Couvert par un seul DPA
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.inference.eu/v1", api_key=os.environ["INFERENCE_EU_API_KEY"])
# Long, stable prefix first: policy text that is the same for every question
POLICY = open("travel-expenses-policy.md").read()
def ask(question: str):
reply = client.chat.completions.create(
model="gpt-oss-120b",
messages=[
{"role": "system", "content": "Answer questions about the travel policy below. Quote the section number.\n\n" + POLICY},
{"role": "user", "content": question}, # variable part last
],
)
cached = reply.usage.prompt_tokens_details.cached_tokens
print(f"{cached} of {reply.usage.prompt_tokens} prompt tokens came from the cache")
return reply.choices[0].message.content
ask("Can I book business class for a six-hour flight?")
ask("What is the daily meal allowance in Germany?")Comment fonctionne le cache de prompts
Avant d'écrire quoi que ce soit, un modèle traite l'intégralité du prompt. Quand une nouvelle requête commence exactement par les mêmes tokens qu'une requête récente, l'API peut réutiliser l'état déjà calculé pour ce préfixe commun et ne traiter que la partie nouvelle. On parle de cache de préfixe : la correspondance part du premier token et s'arrête à la première différence.
Le cache est automatique pour les modèles compatibles sur chat completions, Responses et Messages, sans champ supplémentaire. Il réside en mémoire dans les mêmes centres de données européens que ceux qui traitent vos requêtes, reste cloisonné entre organisations et expire après une période d'inactivité.
Structurer ses prompts pour le cache
Placez d'abord ce qui ne change pas, et à la fin ce qui varie. Un bon ordre : prompt système, définitions d'outils, longs documents de référence, tours précédents de la conversation, puis le nouveau message de l'utilisateur. Le moindre changement au début, comme un horodatage ou un nom d'utilisateur dans le prompt système, fait manquer le cache pour tout ce qui suit.
Gardez la partie stable identique à l'octet près : mêmes espaces, même ordre des outils, même sérialisation JSON. Dans une application de chat, ajoutez les nouveaux tours au lieu de réécrire l'historique, pour que chaque requête prolonge le préfixe déjà en cache. Envoyez les requêtes liées à peu d'intervalle, tant que le cache est chaud.
Mesurer l'effet
Chaque réponse indique combien de tokens du prompt proviennent du cache. Lisez usage.prompt_tokens_details.cached_tokens dans chat completions, usage.input_tokens_details.cached_tokens dans l'API Responses et usage.cache_read_input_tokens au format Messages. Journalisez cette valeur à côté du total de tokens du prompt pour suivre le taux de réussite par fonctionnalité.
Un taux faible signifie en général qu'un élément du début du prompt change à chaque appel : comparez deux prompts successifs et cherchez la première différence. Les clients au format Anthropic qui ajoutent des marqueurs cache_control aux blocs de contenu fonctionnent tels quels. La façon dont les tokens en cache apparaissent sur votre facture dépend de votre offre ; nous vous la confirmons.
Limites et cas particuliers
Mettre en cache un prompt très court n'a pas d'intérêt : le cache ne s'applique qu'au-delà d'une longueur minimale qui dépend du modèle. Les entrées sont évincées après une période d'inactivité ou en cas de forte charge ; une réussite est probable mais jamais garantie, et votre application doit fonctionner de la même façon dans les deux cas.
Le cache ne modifie pas la sortie. Le modèle lit les mêmes tokens et produit le même type de réponse ; seul le travail sur le préfixe commun est évité. Les données en cache servent uniquement aux requêtes de votre organisation, restent dans l'UE et ne servent jamais à l'entraînement. Les lots en profitent aussi quand de nombreuses lignes partagent le même préfixe.
Prompt caching : questions fréquentes
Les questions que nous posent le plus les achats, les développeurs et les juristes. Il en manque une ? Posez-la-nous directement.
Pages liées
- Chat completionsEnvoyez vos messages à des modèles open-weight au format chat completions d'OpenAI. Traitement dans des centres de données de l'UE, sans entraînement.Endpoints
- Count tokensComptez les tokens d'entrée d'une requête Messages avant de l'envoyer. Point de terminaison count_tokens compatible Anthropic sur inference.eu, traité dans l'UE.Endpoints
- Messages (Anthropic format)Appelez des modèles open-weight au format Messages d'Anthropic sur inference.eu. Compatible avec les SDK Anthropic et Claude Code, traité dans l'UE.Endpoints
- Rate limits and errorsFonctionnement des limites de débit et des erreurs de l'API inference.eu : codes HTTP, objet d'erreur, en-têtes de limite et schéma de reprise fiable.Guides
Faites passer vos charges IA sur une infrastructure européenne
Dites-nous quels modèles vous utilisez et votre volume approximatif. Nous répondons sous un jour ouvré avec un tarif et la suite.
- Réponse sous un jour ouvré
- Tarif adapté à votre volume
- DPA prêt à signer