Optimiser le taux de cache
Structurer vos prompts pour le cache
Le cache de l’API Grok fonctionne par correspondance de préfixe : les tokens sont cachés dans l’ordre, du début du prompt vers la fin. Si vous modifiez un token au milieu du prompt, tous les tokens suivants perdent leur cache. Cette mécanique impose une structuration rigoureuse de vos prompts pour maximiser le taux de cache.
La règle d’or : ne pas modifier l’historique
Le piège le plus courant en production est de modifier l’historique des messages d’une conversation entre deux requêtes. Si vous reformatez un message précédent, ajoutez un horodatage variable, ou changez l’ordre des messages, le cache est invalidé pour toute la portion modifiée et ce qui suit.
Ce qu’il faut éviter
# MAUVAIS : horodatage dans le system prompt
messages = [
{"role": "system", "content": f"Date: {datetime.now()}. Vous etes un assistant."},
# ...
]
Le timestamp change à chaque requête, ce qui invalide le cache dès le premier token du system prompt.
La bonne approche
# BON : contenu statique en premier, variables a la fin
messages = [
{"role": "system", "content": "Vous etes un assistant specialise en support client."},
# Historique de conversation INCHANGE
{"role": "user", "content": "Question precedente..."},
{"role": "assistant", "content": "Reponse precedente..."},
# Seul le dernier message est nouveau
{"role": "user", "content": "Nouvelle question de l'utilisateur"}
]
Architecture de prompt optimisée pour le cache
Organisez vos prompts selon ce principe : le contenu le plus stable en premier, le contenu le plus variable en dernier.
Structure recommandée
- System prompt (stable) : instructions générales, persona, règles
- Contexte de référence (stable) : documentation, base de connaissances
- Historique de conversation (incrémental) : ajout uniquement, jamais de modification
- Message courant (variable) : la nouvelle requête de l’utilisateur
Avec cette structure, le cache couvre les parties 1, 2 et 3, et seule la partie 4 est facturée au tarif standard.
Techniques avancées
Prompts longs et stables
Si votre application utilise un long contexte de référence (documentation produit, FAQ, spécifications techniques), placez-le juste après le system prompt. Ce bloc sera caché dès la deuxième requête de chaque conversation.
Partage de cache entre conversations
Le header x-grok-conv-id regroupe les requêtes d’une même conversation. Mais le cache peut également fonctionner entre conversations différentes si elles partagent le même préfixe de prompt (même system prompt, même contexte de référence). Cela signifie que dans une application avec un system prompt commun, les utilisateurs bénéficient mutuellement du cache.
Ne pas tronquer l’historique prématurément
Lorsque la conversation devient longue, vous pourriez être tenté de tronquer les premiers messages pour rester sous la limite de contexte. Mais cette troncature invalide tout le cache. Préférez une approche par résumé :
# Au lieu de tronquer l'historique :
# messages = messages[-10:] # MAUVAIS: casse le cache
# Resumez les anciens messages dans le system prompt :
messages = [
{"role": "system", "content": "Instructions... Resume des echanges precedents: ..."},
# Messages recents non modifies
{"role": "user", "content": "..."},
{"role": "assistant", "content": "..."},
{"role": "user", "content": "Nouvelle question"}
]
Mesurer et améliorer
Suivez votre taux de cache quotidien pour détecter les régressions :
- Taux < 30 % : vos prompts sont probablement mal structurés ou contiennent des éléments variables en début de séquence
- Taux 30-60 % : correct pour des conversations courtes, améliorable avec un system prompt plus long et stable
- Taux > 60 % : bon résultat, typique d’applications avec des prompts bien structurés
- Taux > 80 % : excellent, vos économies sont significatives
Points clés à retenir
- Le cache fonctionne par correspondance de préfixe : ne modifiez jamais les tokens en début de prompt
- Structurez vos prompts du plus stable au plus variable
- N’ajoutez jamais de données variables (horodatage, identifiants) dans le system prompt
- Préférez le résumé à la troncature pour conserver le cache des conversations longues
- Surveillez votre taux de cache quotidien comme indicateur de performance financière