cache_control
:
cache_control
. Cela permet la réutilisation de ce texte volumineux à travers plusieurs appels API sans le retraiter à chaque fois. Changer seulement le message utilisateur vous permet de poser diverses questions sur le livre tout en utilisant le contenu mis en cache, conduisant à des réponses plus rapides et une efficacité améliorée.
Comment fonctionne la mise en cache des prompts
Lorsque vous envoyez une requête avec la mise en cache des prompts activée :- Le système vérifie si un préfixe de prompt, jusqu’à un point d’arrêt de cache spécifié, est déjà mis en cache à partir d’une requête récente.
- S’il est trouvé, il utilise la version mise en cache, réduisant le temps de traitement et les coûts.
- Sinon, il traite le prompt complet et met en cache le préfixe une fois que la réponse commence.
- Les prompts avec de nombreux exemples
- De grandes quantités de contexte ou d’informations de base
- Les tâches répétitives avec des instructions cohérentes
- Les longues conversations multi-tours
tools
, system
, et messages
(dans cet ordre) jusqu’au bloc désigné avec cache_control
inclus.Tarification
La mise en cache des prompts introduit une nouvelle structure de tarification. Le tableau ci-dessous montre le prix par million de tokens pour chaque modèle pris en charge :Model | Base Input Tokens | 5m Cache Writes | 1h Cache Writes | Cache Hits & Refreshes | Output Tokens |
---|---|---|---|---|---|
Claude Opus 4.1 | $15 / MTok | $18.75 / MTok | $30 / MTok | $1.50 / MTok | $75 / MTok |
Claude Opus 4 | $15 / MTok | $18.75 / MTok | $30 / MTok | $1.50 / MTok | $75 / MTok |
Claude Sonnet 4 | $3 / MTok | $3.75 / MTok | $6 / MTok | $0.30 / MTok | $15 / MTok |
Claude Sonnet 3.7 | $3 / MTok | $3.75 / MTok | $6 / MTok | $0.30 / MTok | $15 / MTok |
Claude Sonnet 3.5 (deprecated) | $3 / MTok | $3.75 / MTok | $6 / MTok | $0.30 / MTok | $15 / MTok |
Claude Haiku 3.5 | $0.80 / MTok | $1 / MTok | $1.6 / MTok | $0.08 / MTok | $4 / MTok |
Claude Opus 3 (deprecated) | $15 / MTok | $18.75 / MTok | $30 / MTok | $1.50 / MTok | $75 / MTok |
Claude Haiku 3 | $0.25 / MTok | $0.30 / MTok | $0.50 / MTok | $0.03 / MTok | $1.25 / MTok |
- Les tokens d’écriture de cache de 5 minutes coûtent 1,25 fois le prix des tokens d’entrée de base
- Les tokens d’écriture de cache de 1 heure coûtent 2 fois le prix des tokens d’entrée de base
- Les tokens de lecture de cache coûtent 0,1 fois le prix des tokens d’entrée de base
Comment implémenter la mise en cache des prompts
Modèles pris en charge
La mise en cache des prompts est actuellement prise en charge sur :- Claude Opus 4.1
- Claude Opus 4
- Claude Sonnet 4
- Claude Sonnet 3.7
- Claude Sonnet 3.5 (déprécié)
- Claude Haiku 3.5
- Claude Haiku 3
- Claude Opus 3 (déprécié)
Structurer votre prompt
Placez le contenu statique (définitions d’outils, instructions système, contexte, exemples) au début de votre prompt. Marquez la fin du contenu réutilisable pour la mise en cache en utilisant le paramètrecache_control
.
Les préfixes de cache sont créés dans l’ordre suivant : tools
, system
, puis messages
. Cet ordre forme une hiérarchie où chaque niveau s’appuie sur les précédents.
Comment fonctionne la vérification automatique des préfixes
Vous pouvez utiliser juste un point d’arrêt de cache à la fin de votre contenu statique, et le système trouvera automatiquement le préfixe correspondant le plus long. Voici comment cela fonctionne :- Lorsque vous ajoutez un point d’arrêt
cache_control
, le système vérifie automatiquement les correspondances de cache à toutes les limites de blocs de contenu précédentes (jusqu’à environ 20 blocs avant votre point d’arrêt explicite) - Si l’une de ces positions précédentes correspond au contenu mis en cache de requêtes antérieures, le système utilise le préfixe correspondant le plus long
- Cela signifie que vous n’avez pas besoin de plusieurs points d’arrêt juste pour activer la mise en cache - un à la fin est suffisant
Quand utiliser plusieurs points d’arrêt
Vous pouvez définir jusqu’à 4 points d’arrêt de cache si vous voulez :- Mettre en cache différentes sections qui changent à différentes fréquences (par exemple, les outils changent rarement, mais le contexte se met à jour quotidiennement)
- Avoir plus de contrôle sur exactement ce qui est mis en cache
- Assurer la mise en cache pour le contenu plus de 20 blocs avant votre point d’arrêt final
Limitations du cache
La longueur minimale de prompt pouvant être mise en cache est :- 1024 tokens pour Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4, Claude Sonnet 3.7, Claude Sonnet 3.5 (déprécié) et Claude Opus 3 (déprécié)
- 2048 tokens pour Claude Haiku 3.5 et Claude Haiku 3
cache_control
. Toute requête pour mettre en cache moins que ce nombre de tokens sera traitée sans mise en cache. Pour voir si un prompt a été mis en cache, voir les champs d’utilisation de la réponse.
Pour les requêtes concurrentes, notez qu’une entrée de cache ne devient disponible qu’après le début de la première réponse. Si vous avez besoin de correspondances de cache pour des requêtes parallèles, attendez la première réponse avant d’envoyer les requêtes suivantes.
Actuellement, “ephemeral” est le seul type de cache pris en charge, qui a par défaut une durée de vie de 5 minutes.
Comprendre les coûts des points d’arrêt de cache
Les points d’arrêt de cache eux-mêmes n’ajoutent aucun coût. Vous n’êtes facturé que pour :- Écritures de cache : Lorsque du nouveau contenu est écrit dans le cache (25% de plus que les tokens d’entrée de base pour TTL de 5 minutes)
- Lectures de cache : Lorsque le contenu mis en cache est utilisé (10% du prix des tokens d’entrée de base)
- Tokens d’entrée réguliers : Pour tout contenu non mis en cache
cache_control
n’augmente pas vos coûts - vous payez toujours le même montant basé sur quel contenu est réellement mis en cache et lu. Les points d’arrêt vous donnent simplement le contrôle sur quelles sections peuvent être mises en cache indépendamment.
Ce qui peut être mis en cache
La plupart des blocs dans la requête peuvent être désignés pour la mise en cache aveccache_control
. Cela inclut :
- Outils : Définitions d’outils dans le tableau
tools
- Messages système : Blocs de contenu dans le tableau
system
- Messages texte : Blocs de contenu dans le tableau
messages.content
, pour les tours utilisateur et assistant - Images et Documents : Blocs de contenu dans le tableau
messages.content
, dans les tours utilisateur - Utilisation d’outils et résultats d’outils : Blocs de contenu dans le tableau
messages.content
, dans les tours utilisateur et assistant
cache_control
pour activer la mise en cache pour cette portion de la requête.
Ce qui ne peut pas être mis en cache
Bien que la plupart des blocs de requête puissent être mis en cache, il y a quelques exceptions :-
Les blocs de réflexion ne peuvent pas être mis en cache directement avec
cache_control
. Cependant, les blocs de réflexion PEUVENT être mis en cache avec d’autre contenu lorsqu’ils apparaissent dans les tours d’assistant précédents. Lorsqu’ils sont mis en cache de cette façon, ils COMPTENT comme tokens d’entrée lorsqu’ils sont lus depuis le cache. - Les sous-blocs de contenu (comme les citations) eux-mêmes ne peuvent pas être mis en cache directement. Au lieu de cela, mettez en cache le bloc de niveau supérieur. Dans le cas des citations, les blocs de contenu de document de niveau supérieur qui servent de matériel source pour les citations peuvent être mis en cache. Cela vous permet d’utiliser efficacement la mise en cache des prompts avec les citations en mettant en cache les documents que les citations référenceront.
- Les blocs de texte vides ne peuvent pas être mis en cache.
Ce qui invalide le cache
Les modifications du contenu mis en cache peuvent invalider une partie ou la totalité du cache. Comme décrit dans Structurer votre prompt, le cache suit la hiérarchie :tools
→ system
→ messages
. Les changements à chaque niveau invalident ce niveau et tous les niveaux suivants.
Le tableau suivant montre quelles parties du cache sont invalidées par différents types de changements. ✘ indique que le cache est invalidé, tandis que ✓ indique que le cache reste valide.
Ce qui change | Cache des outils | Cache système | Cache des messages | Impact |
---|---|---|---|---|
Définitions d’outils | ✘ | ✘ | ✘ | Modifier les définitions d’outils (noms, descriptions, paramètres) invalide tout le cache |
Basculement de recherche web | ✓ | ✘ | ✘ | Activer/désactiver la recherche web modifie le prompt système |
Basculement des citations | ✓ | ✘ | ✘ | Activer/désactiver les citations modifie le prompt système |
Choix d’outil | ✓ | ✓ | ✘ | Les changements au paramètre tool_choice n’affectent que les blocs de messages |
Images | ✓ | ✓ | ✘ | Ajouter/supprimer des images n’importe où dans le prompt affecte les blocs de messages |
Paramètres de réflexion | ✓ | ✓ | ✘ | Les changements aux paramètres de réflexion étendue (activer/désactiver, budget) affectent les blocs de messages |
Résultats non-outils passés aux requêtes de réflexion étendue | ✓ | ✓ | ✘ | Lorsque des résultats non-outils sont passés dans les requêtes pendant que la réflexion étendue est activée, tous les blocs de réflexion précédemment mis en cache sont supprimés du contexte, et tous les messages dans le contexte qui suivent ces blocs de réflexion sont supprimés du cache. Pour plus de détails, voir Mise en cache avec les blocs de réflexion. |
Suivi des performances du cache
Surveillez les performances du cache en utilisant ces champs de réponse API, dansusage
dans la réponse (ou événement message_start
si streaming) :
cache_creation_input_tokens
: Nombre de tokens écrits dans le cache lors de la création d’une nouvelle entrée.cache_read_input_tokens
: Nombre de tokens récupérés du cache pour cette requête.input_tokens
: Nombre de tokens d’entrée qui n’ont pas été lus depuis ou utilisés pour créer un cache.
Meilleures pratiques pour une mise en cache efficace
Pour optimiser les performances de la mise en cache des prompts :- Mettez en cache le contenu stable et réutilisable comme les instructions système, les informations de base, les grands contextes, ou les définitions d’outils fréquentes.
- Placez le contenu mis en cache au début du prompt pour de meilleures performances.
- Utilisez les points d’arrêt de cache stratégiquement pour séparer différentes sections de préfixes pouvant être mises en cache.
- Analysez régulièrement les taux de correspondance de cache et ajustez votre stratégie selon les besoins.
Optimisation pour différents cas d’usage
Adaptez votre stratégie de mise en cache des prompts à votre scénario :- Agents conversationnels : Réduisez le coût et la latence pour les conversations étendues, en particulier celles avec de longues instructions ou des documents téléchargés.
- Assistants de codage : Améliorez l’autocomplétion et les Q&R de base de code en gardant les sections pertinentes ou une version résumée de la base de code dans le prompt.
- Traitement de documents volumineux : Incorporez du matériel complet de forme longue incluant des images dans votre prompt sans augmenter la latence de réponse.
- Ensembles d’instructions détaillées : Partagez des listes étendues d’instructions, de procédures et d’exemples pour affiner les réponses de Claude. Les développeurs incluent souvent un exemple ou deux dans le prompt, mais avec la mise en cache des prompts, vous pouvez obtenir de meilleures performances en incluant 20+ exemples divers de réponses de haute qualité.
- Utilisation d’outils agentiques : Améliorez les performances pour les scénarios impliquant plusieurs appels d’outils et des changements de code itératifs, où chaque étape nécessite typiquement un nouvel appel API.
- Parler aux livres, papiers, documentation, transcriptions de podcasts, et autre contenu de forme longue : Donnez vie à toute base de connaissances en intégrant le(s) document(s) entier(s) dans le prompt, et laissez les utilisateurs lui poser des questions.
Dépannage des problèmes courants
Si vous rencontrez un comportement inattendu :- Assurez-vous que les sections mises en cache sont identiques et marquées avec cache_control aux mêmes emplacements à travers les appels
- Vérifiez que les appels sont faits dans la durée de vie du cache (5 minutes par défaut)
- Vérifiez que
tool_choice
et l’utilisation d’images restent cohérents entre les appels - Validez que vous mettez en cache au moins le nombre minimum de tokens
- Le système vérifie automatiquement les correspondances de cache aux limites de blocs de contenu précédentes (jusqu’à ~20 blocs avant votre point d’arrêt). Pour les prompts avec plus de 20 blocs de contenu, vous pourriez avoir besoin de paramètres
cache_control
supplémentaires plus tôt dans le prompt pour assurer que tout le contenu peut être mis en cache
tool_choice
ou la présence/absence d’images n’importe où dans le prompt invalideront le cache, nécessitant qu’une nouvelle entrée de cache soit créée. Pour plus de détails sur l’invalidation du cache, voir Ce qui invalide le cache.Mise en cache avec les blocs de réflexion
Lors de l’utilisation de la réflexion étendue avec la mise en cache des prompts, les blocs de réflexion ont un comportement spécial : Mise en cache automatique avec d’autre contenu : Bien que les blocs de réflexion ne puissent pas être explicitement marqués aveccache_control
, ils sont mis en cache dans le cadre du contenu de la requête lorsque vous faites des appels API suivants avec des résultats d’outils. Cela arrive couramment pendant l’utilisation d’outils lorsque vous renvoyez les blocs de réflexion pour continuer la conversation.
Comptage des tokens d’entrée : Lorsque les blocs de réflexion sont lus depuis le cache, ils comptent comme tokens d’entrée dans vos métriques d’utilisation. Ceci est important pour le calcul des coûts et la budgétisation des tokens.
Modèles d’invalidation du cache :
- Le cache reste valide lorsque seuls les résultats d’outils sont fournis comme messages utilisateur
- Le cache est invalidé lorsque du contenu utilisateur non-résultat-d’outil est ajouté, causant la suppression de tous les blocs de réflexion précédents
- Ce comportement de mise en cache se produit même sans marqueurs
cache_control
explicites
Stockage et partage du cache
- Isolation d’organisation : Les caches sont isolés entre les organisations. Différentes organisations ne partagent jamais les caches, même si elles utilisent des prompts identiques.
- Correspondance exacte : Les correspondances de cache nécessitent des segments de prompt 100% identiques, incluant tout le texte et les images jusqu’au bloc marqué avec contrôle de cache inclus.
- Génération de tokens de sortie : La mise en cache des prompts n’a aucun effet sur la génération de tokens de sortie. La réponse que vous recevez sera identique à ce que vous obtiendriez si la mise en cache des prompts n’était pas utilisée.
Durée de cache de 1 heure
Si vous trouvez que 5 minutes est trop court, Anthropic offre également une durée de cache de 1 heure. Pour utiliser le cache étendu, incluezttl
dans la définition cache_control
comme ceci :
cache_creation_input_tokens
égale la somme des valeurs dans l’objet cache_creation
.
Quand utiliser le cache de 1 heure
Si vous avez des prompts qui sont utilisés à une cadence régulière (c’est-à-dire, des prompts système qui sont utilisés plus fréquemment que toutes les 5 minutes), continuez à utiliser le cache de 5 minutes, car celui-ci continuera à être actualisé sans frais supplémentaires. Le cache de 1 heure est mieux utilisé dans les scénarios suivants :- Lorsque vous avez des prompts qui sont probablement utilisés moins fréquemment que 5 minutes, mais plus fréquemment que toutes les heures. Par exemple, lorsqu’un agent agentique secondaire prendra plus de 5 minutes, ou lors du stockage d’une longue conversation de chat avec un utilisateur et vous vous attendez généralement à ce que cet utilisateur ne réponde pas dans les 5 minutes suivantes.
- Lorsque la latence est importante et vos prompts de suivi peuvent être envoyés au-delà de 5 minutes.
- Lorsque vous voulez améliorer votre utilisation de limite de taux, car les correspondances de cache ne sont pas déduites de votre limite de taux.
Mélanger différents TTL
Vous pouvez utiliser à la fois les contrôles de cache de 1 heure et de 5 minutes dans la même requête, mais avec une contrainte importante : Les entrées de cache avec un TTL plus long doivent apparaître avant les TTL plus courts (c’est-à-dire, une entrée de cache de 1 heure doit apparaître avant toute entrée de cache de 5 minutes). Lors du mélange de TTL, nous déterminons trois emplacements de facturation dans votre prompt :- Position
A
: Le nombre de tokens à la correspondance de cache la plus élevée (ou 0 s’il n’y a pas de correspondances). - Position
B
: Le nombre de tokens au bloccache_control
de 1 heure le plus élevé aprèsA
(ou égaleA
si aucun n’existe). - Position
C
: Le nombre de tokens au dernier bloccache_control
.
B
et/ou C
sont plus grands que A
, ils seront nécessairement des échecs de cache, car A
est la correspondance de cache la plus élevée.- Tokens de lecture de cache pour
A
. - Tokens d’écriture de cache de 1 heure pour
(B - A)
. - Tokens d’écriture de cache de 5 minutes pour
(C - B)
.
Exemples de mise en cache des prompts
Pour vous aider à commencer avec la mise en cache des prompts, nous avons préparé un livre de recettes de mise en cache des prompts avec des exemples détaillés et les meilleures pratiques. Ci-dessous, nous avons inclus plusieurs extraits de code qui présentent divers modèles de mise en cache des prompts. Ces exemples démontrent comment implémenter la mise en cache dans différents scénarios, vous aidant à comprendre les applications pratiques de cette fonctionnalité :Exemple de mise en cache de contexte volumineux
Exemple de mise en cache de contexte volumineux
input_tokens
: Nombre de tokens dans le message utilisateur seulementcache_creation_input_tokens
: Nombre de tokens dans tout le message système, incluant le document juridiquecache_read_input_tokens
: 0 (pas de correspondance de cache sur la première requête)
input_tokens
: Nombre de tokens dans le message utilisateur seulementcache_creation_input_tokens
: 0 (pas de nouvelle création de cache)cache_read_input_tokens
: Nombre de tokens dans tout le message système mis en cache
Mise en cache des définitions d'outils
Mise en cache des définitions d'outils
cache_control
est placé sur l’outil final (get_time
) pour désigner tous les outils comme faisant partie du préfixe statique.Cela signifie que toutes les définitions d’outils, incluant get_weather
et tout autre outil défini avant get_time
, seront mises en cache comme un seul préfixe.Cette approche est utile lorsque vous avez un ensemble cohérent d’outils que vous voulez réutiliser à travers plusieurs requêtes sans les retraiter à chaque fois.Pour la première requête :input_tokens
: Nombre de tokens dans le message utilisateurcache_creation_input_tokens
: Nombre de tokens dans toutes les définitions d’outils et le prompt systèmecache_read_input_tokens
: 0 (pas de correspondance de cache sur la première requête)
input_tokens
: Nombre de tokens dans le message utilisateurcache_creation_input_tokens
: 0 (pas de nouvelle création de cache)cache_read_input_tokens
: Nombre de tokens dans toutes les définitions d’outils mises en cache et le prompt système
Continuer une conversation multi-tours
Continuer une conversation multi-tours
cache_control
pour que la conversation puisse être mise en cache de manière incrémentale. Le système recherchera automatiquement et utilisera le préfixe mis en cache le plus long précédemment pour les messages de suivi. C’est-à-dire, les blocs qui étaient précédemment marqués avec un bloc cache_control
ne sont plus marqués avec ceci plus tard, mais ils seront toujours considérés comme une correspondance de cache (et aussi un rafraîchissement de cache !) s’ils sont touchés dans les 5 minutes.De plus, notez que le paramètre cache_control
est placé sur le message système. Ceci est pour s’assurer que si cela est évincé du cache (après ne pas avoir été utilisé pendant plus de 5 minutes), il sera rajouté au cache lors de la prochaine requête.Cette approche est utile pour maintenir le contexte dans les conversations en cours sans traiter de manière répétée les mêmes informations.Lorsque ceci est configuré correctement, vous devriez voir ce qui suit dans la réponse d’utilisation de chaque requête :input_tokens
: Nombre de tokens dans le nouveau message utilisateur (sera minimal)cache_creation_input_tokens
: Nombre de tokens dans les nouveaux tours assistant et utilisateurcache_read_input_tokens
: Nombre de tokens dans la conversation jusqu’au tour précédent
Tout assembler : Multiples points d'arrêt de cache
Tout assembler : Multiples points d'arrêt de cache
-
Cache des outils (point d’arrêt de cache 1) : Le paramètre
cache_control
sur la dernière définition d’outil met en cache toutes les définitions d’outils. - Cache des instructions réutilisables (point d’arrêt de cache 2) : Les instructions statiques dans le prompt système sont mises en cache séparément. Ces instructions changent rarement entre les requêtes.
- Cache de contexte RAG (point d’arrêt de cache 3) : Les documents de la base de connaissances sont mis en cache indépendamment, vous permettant de mettre à jour les documents RAG sans invalider le cache des outils ou des instructions.
-
Cache de l’historique de conversation (point d’arrêt de cache 4) : La réponse de l’assistant est marquée avec
cache_control
pour permettre la mise en cache incrémentale de la conversation au fur et à mesure qu’elle progresse.
- Si vous ne mettez à jour que le message utilisateur final, les quatre segments de cache sont réutilisés
- Si vous mettez à jour les documents RAG mais gardez les mêmes outils et instructions, les deux premiers segments de cache sont réutilisés
- Si vous changez la conversation mais gardez les mêmes outils, instructions et documents, les trois premiers segments sont réutilisés
- Chaque point d’arrêt de cache peut être invalidé indépendamment basé sur ce qui change dans votre application
input_tokens
: Tokens dans le message utilisateur finalcache_creation_input_tokens
: Tokens dans tous les segments mis en cache (outils + instructions + documents RAG + historique de conversation)cache_read_input_tokens
: 0 (pas de correspondances de cache)
input_tokens
: Tokens dans le nouveau message utilisateur seulementcache_creation_input_tokens
: Tous nouveaux tokens ajoutés à l’historique de conversationcache_read_input_tokens
: Tous les tokens précédemment mis en cache (outils + instructions + documents RAG + conversation précédente)
- Les applications RAG avec de grands contextes de documents
- Les systèmes d’agents qui utilisent plusieurs outils
- Les conversations de longue durée qui ont besoin de maintenir le contexte
- Les applications qui ont besoin d’optimiser différentes parties du prompt indépendamment
FAQ
Ai-je besoin de plusieurs points d'arrêt de cache ou un seul à la fin est-il suffisant ?
Ai-je besoin de plusieurs points d'arrêt de cache ou un seul à la fin est-il suffisant ?
- Vous avez plus de 20 blocs de contenu avant votre point de cache désiré
- Vous voulez mettre en cache des sections qui se mettent à jour à différentes fréquences indépendamment
- Vous avez besoin d’un contrôle explicite sur ce qui est mis en cache pour l’optimisation des coûts
Les points d'arrêt de cache ajoutent-ils des coûts supplémentaires ?
Les points d'arrêt de cache ajoutent-ils des coûts supplémentaires ?
- Écrire du contenu dans le cache (25% de plus que les tokens d’entrée de base pour TTL de 5 minutes)
- Lire depuis le cache (10% du prix des tokens d’entrée de base)
- Tokens d’entrée réguliers pour le contenu non mis en cache
Quelle est la durée de vie du cache ?
Quelle est la durée de vie du cache ?
Combien de points d'arrêt de cache puis-je utiliser ?
Combien de points d'arrêt de cache puis-je utiliser ?
cache_control
) dans votre prompt.La mise en cache des prompts est-elle disponible pour tous les modèles ?
La mise en cache des prompts est-elle disponible pour tous les modèles ?
Comment la mise en cache des prompts fonctionne-t-elle avec la réflexion étendue ?
Comment la mise en cache des prompts fonctionne-t-elle avec la réflexion étendue ?
Comment activer la mise en cache des prompts ?
Comment activer la mise en cache des prompts ?
cache_control
dans votre requête API.Puis-je utiliser la mise en cache des prompts avec d'autres fonctionnalités de l'API ?
Puis-je utiliser la mise en cache des prompts avec d'autres fonctionnalités de l'API ?
Comment la mise en cache des prompts affecte-t-elle la tarification ?
Comment la mise en cache des prompts affecte-t-elle la tarification ?
Puis-je effacer manuellement le cache ?
Puis-je effacer manuellement le cache ?
Comment puis-je suivre l'efficacité de ma stratégie de mise en cache ?
Comment puis-je suivre l'efficacité de ma stratégie de mise en cache ?
cache_creation_input_tokens
et cache_read_input_tokens
dans la réponse API.Qu'est-ce qui peut casser le cache ?
Qu'est-ce qui peut casser le cache ?
Comment la mise en cache des prompts gère-t-elle la confidentialité et la séparation des données ?
Comment la mise en cache des prompts gère-t-elle la confidentialité et la séparation des données ?
- Les clés de cache sont générées en utilisant un hachage cryptographique des prompts jusqu’au point de contrôle de cache. Cela signifie que seules les requêtes avec des prompts identiques peuvent accéder à un cache spécifique.
- Les caches sont spécifiques à l’organisation. Les utilisateurs au sein de la même organisation peuvent accéder au même cache s’ils utilisent des prompts identiques, mais les caches ne sont pas partagés entre différentes organisations, même pour des prompts identiques.
- Le mécanisme de mise en cache est conçu pour maintenir l’intégrité et la confidentialité de chaque conversation ou contexte unique.
-
Il est sûr d’utiliser
cache_control
n’importe où dans vos prompts. Pour l’efficacité des coûts, il est mieux d’exclure les parties très variables (par exemple, l’entrée arbitraire de l’utilisateur) de la mise en cache.
Puis-je utiliser la mise en cache des prompts avec l'API Batches ?
Puis-je utiliser la mise en cache des prompts avec l'API Batches ?
- Rassemblez un ensemble de requêtes de messages qui ont un préfixe partagé.
- Envoyez une requête de lot avec juste une seule requête qui a ce préfixe partagé et un bloc de cache de 1 heure. Cela sera écrit dans le cache de 1 heure.
- Dès que cela est terminé, soumettez le reste des requêtes. Vous devrez surveiller le travail pour savoir quand il se termine.
Pourquoi est-ce que je vois l'erreur `AttributeError: 'Beta' object has no attribute 'prompt_caching'` en Python ?
Pourquoi est-ce que je vois l'erreur `AttributeError: 'Beta' object has no attribute 'prompt_caching'` en Python ?
Pourquoi est-ce que je vois 'TypeError: Cannot read properties of undefined (reading 'messages')' ?
Pourquoi est-ce que je vois 'TypeError: Cannot read properties of undefined (reading 'messages')' ?