Aller au contenu principal

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_tokens dans 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.