Le cache en pratique
Voyons comment implementer le prompt caching dans votre code.
Cacher les schemas d’outils
Ajoutez le cache_control sur le dernier outil sans modifier les originaux :
if tools:
tools_clone = tools.copy()
last_tool = tools_clone[-1].copy()
last_tool["cache_control"] = {"type": "ephemeral"}
tools_clone[-1] = last_tool
params["tools"] = tools_clone
Copiez la liste et le dernier outil pour ne pas modifier vos definitions originales.
Cacher le prompt systeme
if system:
params["system"] = [{
"type": "text",
"text": system,
"cache_control": {"type": "ephemeral"}
}]
Comprendre le comportement du cache
- Premiere requete : vous verrez
cache_creation_input_tokensdans le champ usage - Requetes suivantes : vous verrez
cache_read_input_tokens - Contenu mixte : si vous gardez les memes outils mais changez le prompt systeme, vous lirez les outils depuis le cache tout en ecrivant le nouveau prompt en cache
Invalidation du cache
Le cache est extremement sensible aux changements. Modifier un seul caractere dans le schema d’outil ou le prompt systeme invalide le cache. Le contenu sera traite comme neuf.
Mettez en cache ce qui est stable : schemas d’outils et prompts systeme qui ne changent pas entre les requetes. Le contenu dynamique ne beneficiera pas du cache.