Votre facture d'IA a triplé du jour au lendemain. Le modèle, le volume de trafic et même le texte des prompts sont restés les mêmes ; le coupable était une seule ligne de code qui a cassé le cache de prompt d'OpenAI.
Pourquoi le cache est important
Le cache de prompt du fournisseur vous permet d'économiser de l'argent en évitant le retraitement de toute requête commençant par un préfixe identique octet par octet. Si les premiers tokens correspondent à un appel précédent, le fournisseur réutilise la représentation déjà calculée de ces tokens et ne facture que le nouveau suffixe. La règle est stricte : la correspondance doit être exacte, et non simplement similaire. Un seul token différent au début détruit l'intégralité de la correspondance du cache.
L'erreur qui a tué le taux de réussite
Dans notre agent, nous avions placé un horodatage actuel tout en haut du prompt système pour donner au modèle une notion de « présent ». Comme l'horodatage change chaque seconde, la séquence de premiers tokens était unique pour chaque requête. Le cache ne trouvait jamais de correspondance, chaque appel subissant donc le prix complet pour les 18 000 tokens statiques qui suivaient — schémas d'outils, extraits de documentation, exemples few-shot et instructions fixes. Le résultat a été un taux de réussite du cache de 0 % et une facture qui a triplé.
Réorganiser pour favoriser la mise en cache
La solution est simple : gardez tout ce qui ne change jamais au début du prompt et placez toutes les données volatiles à la fin.
Préfixe statique (mettable en cache)
- Définitions d'outils
- Documents de récupération (retrieval)
- Exemples few-shot
- Instructions système fixes
Suffixe volatile (non mettable en cache)
- Heure actuelle
- Identifiants de session
- Messages utilisateur
- Contexte en direct
Si le modèle a besoin de l'heure, ajoutez-la après le bloc statique au lieu de la placer au début. Le cache peut alors réutiliser la lourde partie statique tout en vous permettant de fournir un contexte frais à la fin.
Les tueurs cachés dans la pile
Même lorsque le template semble correct, des middlewares ou des SDK peuvent ajouter silencieusement des métadonnées — IDs de requête, horodatages ou autres en-têtes — avant que la charge utile (payload) n'atteigne l'API. Certains pipelines de déploiement mélangent également les définitions d'outils à chaque déploiement. Ces changements invisibles altèrent la séquence d'octets et sabotent le cache sans aucun changement de code dans votre propre constructeur de prompts.
Surveillez le taux de réussite du cache
Considérez le taux de réussite du cache comme une métrique de santé primaire pour tout agent d'IA. Une chute soudaine signale que quelque chose dans les premiers octets de la requête est devenu variable. Les outils de surveillance qui affichent le pourcentage de réussite vous permettent de repérer les anomalies de coût avant qu'elles n'explosent.
À retenir
La mise en cache des prompts repose sur un préfixe immuable. Tout ce qui change — même un seul horodatage — au début de chaque requête annule le cache et peut tripler votre facture. Placez le contenu statique en premier, le contenu volatile en dernier, auditez votre chaîne d'outils pour détecter d'éventuels préfixes cachés et surveillez les taux de réussite du cache. Une structure de prompt disciplinée protège à la fois les performances et votre rentabilité.
