Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Surveillance de l’utilisation de vos jetons en comptant les jetons avant l’exécution de l’inférence
Lorsque vous exécutez une inférence de modèle, le nombre de jetons que vous envoyez dans l’entrée contribue au coût de la demande et au quota de jetons que vous pouvez utiliser par minute et par jour. L'CountTokensAPI vous aide à estimer l'utilisation des jetons avant d'envoyer des demandes aux modèles de base en renvoyant le nombre de jetons qui serait utilisé si la même entrée était envoyée au modèle dans une demande d'inférence.
Note
L'utilisation de CountTokensl'API n'entraîne aucun frais.
Le comptage des jetons est spécifique au modèle, car les différents modèles utilisent des stratégies de création de jetons différentes. Le nombre de jetons renvoyé par cette opération correspondra au nombre de jetons qui serait facturé si la même entrée était envoyée au modèle pour exécuter l’inférence.
Vous pouvez utiliser l’API CountTokens pour effectuer les opérations suivantes :
-
estimer les coûts avant d’envoyer des demandes d’inférence ;
-
optimiser les invites pour les adapter aux limites des jetons ;
-
planifier l’utilisation des jetons dans vos applications.
Rubriques
Modèles et régions pris en charge pour le comptage des jetons
Le tableau suivant montre le modèle de base qui prend en charge le comptage des jetons :
| Fournisseur | Modèle | ID du modèle | Support du modèle à région unique |
|---|---|---|---|
| Anthropic | Claude 3.5 Haiku | anthropic.claude-3-5-haiku-20241022-v1:0 |
us-west-2 |
| Anthropic | Sonnet de Claude 3.5 | anthropic.claude-3-5-sonnet-20240620-v1:0 |
ap-northeast-1 ap-southeast-1 eu-central-1 eu-central-2 us-east-1 us-west-2 |
| Anthropic | Claude 3.5 Sonnet v2 | anthropic.claude-3-5-sonnet-20241022-v2:0 |
ap-southeast-2 us-west-2 |
| Anthropic | Claude 3.7 Sonnet | anthropic.claude-3-7-sonnet-20250219-v1:0 |
eu-west-2 |
| Anthropic | Claude Opus 4 | anthropic.claude-opus-4-20250514-v1:0 | |
| Anthropic | Claude Sonnet 4 | anthropic.claude-sonnet-4-20250514-v1:0 |
Comptage des jetons dans une demande
Pour compter le nombre de jetons d'entrée dans une demande d'inférence, envoyez une CountTokensdemande avec un point de terminaison Amazon Bedrock, spécifiez le modèle dans l'en-tête et l'entrée pour laquelle compter les jetons dans le body champ. La valeur du body champ varie selon que vous comptez les jetons d'entrée pour une demande InvokeModelou pour une requête Converse :
-
Pour une demande
InvokeModel, le format debodyest une chaîne représentant un objet JSON dont le format dépend du modèle que vous spécifiez. -
Pour une demande
Converse, le format debodyest un objet JSON spécifiant les invitesmessagesetsystemincluses dans la conversation.
Essayer un exemple
Les exemples de cette section vous permettent de compter les jetons pour une demande InvokeModel et Converse avec Anthropic Claude 3 Haiku.
Conditions préalables
-
Vous avez téléchargé AWS SDK pour Python (Boto3) et votre configuration est configurée de telle sorte que vos informations d'identification et votre AWS région par défaut soient automatiquement reconnues.
-
Votre identité IAM est autorisée à effectuer les actions suivantes (pour plus d’informations, consultez Actions, ressources et clés de condition pour Amazon Bedrock) :
-
bedrock : CountTokens — Permet l'utilisation de.
CountTokens -
bedrock : InvokeModel — Permet l'utilisation de
InvokeModeletConverse. Doit être limité auarn:${Partition}:bedrock:${Region}::foundation-model/anthropic.claude-3-haiku-20240307-v1:0minimum à.
-
Pour essayer de compter les jetons pour une InvokeModelrequête, exécutez le code Python suivant :
import boto3 import json bedrock_runtime = boto3.client("bedrock-runtime") input_to_count = json.dumps({ "anthropic_version": "bedrock-2023-05-31", "max_tokens": 500, "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }) response = bedrock_runtime.count_tokens( modelId="anthropic.claude-3-5-haiku-20241022-v1:0", input={ "invokeModel": { "body": input_to_count } } ) print(response["inputTokens"])
Pour essayer de compter les jetons pour une demande Converse, exécutez le code Python suivant :
import boto3 import json bedrock_runtime = boto3.client("bedrock-runtime") input_to_count = { "messages": [ { "role": "user", "content": [ { "text": "What is the capital of France?" } ] }, { "role": "assistant", "content": [ { "text": "The capital of France is Paris." } ] }, { "role": "user", "content": [ { "text": "What is its population?" } ] } ], "system": [ { "text": "You're an expert in geography." } ] } response = bedrock_runtime.count_tokens( modelId="anthropic.claude-3-5-haiku-20241022-v1:0", input={ "converse": input_to_count } ) print(response["inputTokens"])