La mise en cache des prompts dépend du fournisseur et du modèle. Les fournisseurs non pris en charge ignorent les indications de cache ou effectuent le routage sans tarification du cache. Consultez le tableau tarifaire de la page du modèle pour connaître les tarifs de lecture et d’écriture du cache.
Éléments à mettre en cache
Mettez en cache le contenu qui reste stable d’une requête à l’autre :- longues instructions système
- documents RAG réutilisés
- exemples few-shot
- définitions d’outils
- grands résultats d’outils réutilisés au tour suivant
Paramètres du cache
Phaseo accepte un paramètre de compatibilitécache_control de premier niveau dans les requêtes Chat Completions, Responses et Anthropic Messages :
ttl: "5m" pour un contexte partagé de courte durée et ttl: "1h" si le fournisseur et le modèle prennent en charge des entrées de cache plus longues. Les fournisseurs compatibles traitent le contrôle de cache de premier niveau comme une politique automatique ou par défaut.
Vous pouvez également placer cache_control directement sur les blocs texte, image, résultat d’outil et définition d’outil pris en charge pour définir des points de coupure explicites du cache :
provider_options :
scope prises en charge :
Le
cache_control défini sur un bloc prévaut sur la politique par défaut.
Chat Completions
Utilisez/v1/chat/completions avec des clients de chat compatibles avec OpenAI.
Responses
Utilisez/v1/responses pour les nouvelles intégrations texte compatibles avec OpenAI et les flux d’agents.
provider_options.google.cached_content :
Anthropic Messages
Utilisez/v1/messages avec un client compatible avec Anthropic.
- blocs de texte
system - blocs texte et image des messages
- blocs de résultat d’outil
- définitions d’outils
Champs d’utilisation et de tarification
Lorsqu’un fournisseur renvoie des données d’utilisation du cache, Phaseo les normalise dans des champs communs.
Les écritures dans le cache coûtent généralement plus cher que les jetons d’entrée classiques. Les lectures coûtent généralement moins cher. Le tarif exact dépend du fournisseur, du modèle et du TTL.
Vérifications pratiques
Après avoir activé la mise en cache des prompts :- Envoyez une requête pour créer ou amorcer le cache.
- Envoyez une deuxième requête avec le même contenu pouvant être mis en cache.
- Vérifiez les champs de lecture et d’écriture du cache dans les données d’utilisation de la réponse et les détails de la requête.
- Comparez la latence et le coût sur plusieurs appels, pas uniquement lors du premier.
Affinité au fournisseur
Par défaut, Phaseo utilise l’utilisation du cache de prompts du fournisseur comme signal de routage. Lorsqu’un fournisseur renvoie des jetons d’entrée mis en cache, les requêtes ayant la même clé de cache ou le même contexte initial privilégient ce fournisseur pendant 15 minutes. Cela évite de payer un autre fournisseur pour reconstruire le même cache de prompts. Si vous incluezsession_id, une lecture du cache observée crée également une affinité de session.
De plus, Phaseo conserve cette affinité pendant la fenêtre de session active tout en
autorisant le basculement si le fournisseur est indisponible ou n’est plus conforme à la politique.
Définissez provider.cache_aware_routing sur false pour désactiver cette option sur une requête. Définissez
routing.session_affinity sur false lorsque la requête contient session_id
mais que vous souhaitez conserver le routage normal fondé sur le contexte.