Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Monitoraggio dell’utilizzo dei token contando i token prima di eseguire l’inferenza
Quando esegui l’inferenza del modello, il numero di token inviati nell’input contribuisce al costo della richiesta e alla quota di token che puoi utilizzare al minuto e al giorno. L'CountTokensAPI consente di stimare l'utilizzo dei token prima di inviare richieste ai modelli di base restituendo il conteggio dei token che verrebbe utilizzato se lo stesso input fosse inviato al modello in una richiesta di inferenza.
Nota
L'utilizzo dell'CountTokensAPI non comporta costi.
Il conteggio dei token è specifico per ogni modello, poiché modelli diversi utilizzano strategie di tokenizzazione diverse. Il conteggio dei token restituito da questa operazione corrisponderà al conteggio dei token che verrebbe addebitato se lo stesso input fosse inviato al modello per eseguire l’inferenza.
Puoi usare l’API CountTokens per effettuare quanto segue:
-
Stimare i costi prima di inviare richieste di inferenza.
-
Ottimizzare i prompt per adattarli ai limiti dei token.
-
Pianificare l’utilizzo dei token nelle applicazioni.
Argomenti
Modelli e Regioni supportati per il conteggio dei token
La tabella seguente mostra il supporto del modello di base per il conteggio dei token:
| Provider | Modello | ID modello | Supporto per modelli a regione singola |
|---|---|---|---|
| Anthropic | Claude 3.5 Haiku | anthropic.claude-3-5-haiku-20241022-v1:0 |
us-west-2 |
| Anthropic | Claude 3.5 Sonnet | 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 |
Conteggio dei token in una richiesta
Per contare il numero di token di input in una richiesta di inferenza, invia una CountTokensrichiesta con un endpoint di runtime Amazon Bedrock, specifica il modello nell'intestazione e l'input per cui contare i token nel campo. body Il valore del body campo dipende dal fatto che tu stia contando i token di input per una richiesta o Converse: InvokeModel
-
Per una richiesta
InvokeModel, il formato dibodyè una stringa che rappresenta un oggetto JSON il cui formato dipende dal modello specificato. -
Per una richiesta
Converse, il formato dibodyè un oggetto JSON che specifica i promptmessagesesysteminclusi nella conversazione.
Provare un esempio
Gli esempi in questa sezione consentono di contare i token per una richiesta InvokeModel e Converse con Anthropic Claude 3 Haiku.
Prerequisiti
-
Hai scaricato AWS SDK per Python (Boto3) e la configurazione è configurata in modo tale che le tue credenziali e la AWS regione predefinita vengano riconosciute automaticamente.
-
L’identità IAM dispone delle autorizzazioni per le seguenti azioni (per ulteriori informazioni, consulta Azioni, risorse e chiavi di condizione per Amazon Bedrock):
-
bedrock: CountTokens — Consente l'utilizzo di.
CountTokens -
bedrock: InvokeModel — Consente l'utilizzo di
InvokeModele.ConverseDovrebbe essere limitato aarn:${Partition}:bedrock:${Region}::foundation-model/anthropic.claude-3-haiku-20240307-v1:0, come minimo.
-
Per provare a contare i token per una InvokeModelrichiesta, esegui il seguente codice Python:
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"])
Per provare a contare i token per una richiesta Converse, esegui il seguente codice Python:
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"])