Surveillance de l’utilisation de vos jetons en comptant les jetons avant l’exécution de l’inférence - Amazon Bedrock

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.

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 de body est 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 de body est un objet JSON spécifiant les invites messages et system incluses 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 InvokeModel etConverse. Doit être limité au arn:${Partition}:bedrock:${Region}::foundation-model/anthropic.claude-3-haiku-20240307-v1:0 minimum à.

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"])