Skip to Content

Cache de prompts

Le Prompt Caching permet de mettre en cache les préfixes de prompt réutilisés, réduisant la consommation de tokens et la latence de réponse.

Fonctionnement

Lorsque votre requête contient un system prompt long et réutilisé ou des informations de contexte :

  1. Première requête — Tous les tokens sont traités et le préfixe du prompt est mis en cache
  2. Requêtes suivantes — En cas de cache hit, les tokens de la partie mise en cache ne sont plus facturés
  3. Expiration du cache — Le cache a un TTL (généralement 5-10 minutes) ; après expiration, une nouvelle mise en cache est nécessaire

Support du cache

Les ressources de modèles d’OfoxAI sont fournies par des fournisseurs cloud officiels tels que AWS Bedrock, Azure OpenAI, Google Cloud, Alibaba Cloud et Volcengine. Les modèles supportant le Prompt Caching chez ces fournisseurs cloud sont également supportés par OfoxAI.

Fournisseur cloudModèles représentatifsMécanisme de cache
AWS BedrockSérie ClaudePrompt Caching natif
Azure OpenAISérie GPT-4oCache automatique
Google CloudSérie GeminiContext Caching
Alibaba CloudSérie QwenCache de plateforme
VolcengineSérie DoubaoCache de plateforme

Le support de cache spécifique de chaque modèle est soumis à la documentation officielle de chaque fournisseur cloud. OfoxAI transmet les paramètres de cache de manière transparente, sans configuration supplémentaire.

Mode d’utilisation

Protocole OpenAI

Le Prompt Caching des modèles OpenAI est automatique — il s’active automatiquement lorsque des préfixes de prompt répétés sont détectés :

caching_openai.py
# Le system prompt long est automatiquement mis en cache SYSTEM_PROMPT = """Vous êtes l'assistant de support technique d'OfoxAI. Voici les informations produit que vous devez connaître : - OfoxAI est un LLM Gateway supportant plus de 100 modèles - Supporte les trois protocoles OpenAI / Anthropic / Gemini - ... (plus de connaissances produit omises) """ # Première requête : mise en cache du system prompt response1 = client.chat.completions.create( model="openai/gpt-4o", messages=[ {"role": "system", "content": SYSTEM_PROMPT}, {"role": "user", "content": "Quels modèles OfoxAI supporte-t-il ?"} ] ) # Deuxième requête : cache hit, plus rapide et moins cher response2 = client.chat.completions.create( model="openai/gpt-4o", messages=[ {"role": "system", "content": SYSTEM_PROMPT}, # Cache hit {"role": "user", "content": "Comment configurer Claude Code ?"} ] )

Protocole Anthropic

Les modèles Anthropic supportent le contrôle de cache explicite :

caching_anthropic.py
import anthropic client = anthropic.Anthropic( base_url="https://api.ofox.ai/anthropic", api_key="<votre OFOXAI_API_KEY>" ) response = client.messages.create( model="anthropic/claude-sonnet-4.5", max_tokens=1024, system=[{ "type": "text", "text": "Vous êtes un assistant professionnel. Voici la documentation produit...", "cache_control": {"type": "ephemeral"} # Activer le cache explicitement }], messages=[{"role": "user", "content": "Résumez les caractéristiques du produit"}] ) # Voir l'état du cache hit print(f"Tokens d'écriture cache : {response.usage.cache_creation_input_tokens}") print(f"Tokens de lecture cache : {response.usage.cache_read_input_tokens}")

Économies de coûts

Après un cache hit, les tokens de la partie mise en cache sont facturés à un tarif réduit. Le pourcentage d’économie varie selon le modèle :

  • Série Anthropic Claude — Un cache hit peut économiser environ 90 % des coûts d’entrée
  • Série OpenAI GPT — Un cache hit peut économiser environ 50 % des coûts d’entrée
  • Série Google Gemini — Un cache hit peut économiser environ 50-75 % des coûts d’entrée

Le pourcentage réel d’économie dépend du taux de cache hit et des politiques de facturation de chaque fournisseur cloud. Consultez les statistiques d’utilisation dans la console OfoxAI pour plus de détails.

Bonnes pratiques

  1. Placez le texte long en premier — Le system prompt et le contenu de la base de connaissances qui ne change pas doivent être au début des messages
  2. Maintenez le préfixe cohérent — Seuls les préfixes exactement identiques peuvent déclencher un cache hit
  3. Concevez la structure du prompt de manière appropriée — Séparez les parties fixes des parties variables
# Bonne conception : contenu fixe en premier, contenu variable ensuite messages = [ {"role": "system", "content": LONG_STATIC_PROMPT}, # Mise en cache possible {"role": "user", "content": dynamic_question} # Partie variable ] # Mauvaise conception : contenu variable intercalé dans le contenu fixe messages = [ {"role": "system", "content": f"Aujourd'hui c'est le {date}. {LONG_PROMPT}"} # Différent chaque jour, non cacheable ]

Les cache hits peuvent être consultés dans le champ usage de la réponse API, ainsi que dans les statistiques d’utilisation de la console OfoxAI.

Last updated on