inference.eu

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.

  1. 01Format d'API: OpenAI et Anthropic
  2. 02Centres de données dans l'UE
  3. 03Couvert par un seul DPA
cached_prompt.py
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.

Poser une question

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