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 numero di 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.
Nota
Alcuni modelli Anthropic Claude, inclusi quelli che vengono avviati solo con l'inferenza interregionale (CRIS), non sono supportati. bedrock-runtime CountTokens bedrock-runtime Per questi modelli, conta i token di input chiamando invece l'API di Anthropic sull'endpoint. count_tokens bedrock-mantle Vedi Conta i token usando l'endpoint bedrock-mantle l'URL, il corpo della richiesta e un esempio.
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
Per vedere quali modelli supportano il conteggio dei token, visita i modelli a colpo d'occhio e scegli il modello che ti interessa.
Conta i token utilizzando l'endpoint bedrock-runtime
Per contare il numero di token di input in una richiesta di inferenza, invia una CountTokens richiesta 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 per Converse: InvokeModel https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html
-
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.
Esempio: conta i token per una richiesta bedrock-runtime
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 tua configurazione è impostata 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 avere un ambito almeno pariarn:${Partition}:bedrock:${Region}::foundation-model/anthropic.claude-3-haiku-20240307-v1:0a.
-
Per provare a contare i token per una InvokeModel richiesta, 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"])
Conta i token usando l'endpoint bedrock-mantle
L'bedrock-mantleendpoint espone l'API di Anthropic all'indirizzo. count_tokens /anthropic/v1/messages/count_tokens Usalo per contare i token di input per i modelli Anthropic Claude che non supportano CountTokens onbedrock-runtime, ad esempio, quando il modello viene offerto solo tramite Cross-region inference (CRIS) e quindi non ha un endpoint a cui puntare. bedrock-runtime Region-specific CountTokens Il /anthropic/v1/messages percorso è: modelli non antropici in cambio. Claude-specific bedrock-mantle The model 'X' does not support the '/anthropic/v1/messages' API
Dettagli della richiesta
-
URL —.
POST https://bedrock-mantle.Per un elenco delle Regioni supportate, consulta Regioni ed endpoint supportati.region.api.aws/anthropic/v1/messages/count_tokens -
Corpo della richiesta: la
count_tokensforma antropicamodelmessages, compresi itoolscampisysteme i campi opzionali. Vedi il riferimento ai token di conteggio di Anthropic Messages. -
Autenticazione: una firma SIGv4 con il nome del
bedrock-mantleservizio o una chiave API Amazon Bedrock passata nell'intestazione.x-api-keyConsulta Chiavi API. -
Azione IAM —.
bedrock-mantle:CountTokensQuesta azione utilizza il prefisso delbedrock-mantleservizio e viene visualizzata nel riferimento di autorizzazione al servizio Amazon Bedrock Powered by AWS Mantle, anziché nel riferimento Amazon Bedrock ().bedrockL'autorizzazione si riferisce a una risorsa Amazon Bedrock Project contenuta nel modulo.arn:aws:bedrock-mantle:Il nome predefinito del progetto è.region:account-id:project/project-namedefault -
Supporto SDK: attualmente gli AWS SDK non espongono un metodo destinato a questo endpoint. Invia la richiesta come HTTP o utilizza qualsiasi client SigV4-signed HTTP
POSTcon una chiave API Amazon Bedrock. Il metodobedrock-runtimeclientcount_tokensnon è indirizzato a questo endpoint e restituisce un errore di convalida per i modelli che non sono supportati.bedrock-runtime -
Formato dell'errore: gli errori seguono la forma antropica:.
{"type": "error", "request_id": "...", "error": {"type": "error-type", "message": "error-message"}}Questo è diverso dalla busta di errore AWS JSON standard restituita da.bedrock-runtime
Nota
L'count_tokensendpoint convalida il corpo della richiesta utilizzando lo stesso schema dell'endpoint di inferenza corrispondente, quindi i campi di richiesta che il modello non supporta vengono rifiutati con HTTP 400. Ad esempio, Anthropic Claude Opus 4.7 non accetta on e restituisce. strict: true tools[] tools.0.custom.strict: Extra inputs are not permitted Consultate la scheda del modello per la superficie caratteristica specifica del modello.
L'esempio seguente viene utilizzato curl con una chiave API Amazon Bedrock per contare i token sull'endpoint: bedrock-mantle
curl -X POST https://bedrock-mantle.us-east-1.api.aws/anthropic/v1/messages/count_tokens \ -H "x-api-key: $BEDROCK_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "Content-Type: application/json" \ -d '{ "model": "anthropic.claude-opus-4-7", "messages": [ {"role": "user", "content": "How many tokens is this prompt?"} ] }'
La risposta contiene un input_tokens campo il cui valore è il numero di token per l'input fornito.