Monitora l'utilizzo dei token contando i token prima di eseguire l'inferenza - Amazon Bedrock

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à.

Monitora l'utilizzo dei token contando i token prima di eseguire l'inferenza

Quando esegui l'inferenza del modello, il numero di token che invii in 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.

Il conteggio dei token è specifico del modello perché 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 venisse inviato al modello per eseguire l'inferenza.

Puoi utilizzare l'CountTokensAPI per effettuare le seguenti operazioni:

  • Stima i costi prima di inviare richieste di inferenza.

  • Ottimizza i prompt per adattarli ai limiti dei token.

  • Pianifica l'utilizzo dei token nelle tue applicazioni.

Modelli e regioni supportati per il conteggio dei token

L'API Count tokens è supportata nelle seguenti regioni (per ulteriori informazioni sulle regioni supportate in Amazon Bedrock, consulta gli endpoint e le quote di Amazon Bedrock):

  • Stati Uniti orientali (Virginia settentrionale)

  • Stati Uniti orientali (Ohio)

  • US West (Oregon)

  • Asia Pacifico (Tokyo)

  • Asia Pacifico (Mumbai)

  • Asia Pacifico (Singapore)

  • Asia Pacifico (Sydney)

  • Europa (Francoforte)

  • Europa (Zurigo)

  • Europa (Irlanda)

  • Europa (Londra)

  • Sud America (San Paolo)

L'API Count tokens è supportata per i seguenti modelli di base (per vedere quali regioni supportano ciascun modello, fai riferimento a): Modelli di fondazione supportati in Amazon Bedrock

  • Anthropic Claude 3.5 Haiku

  • Anthropic Claude 3.5 Sonnet v2

  • Anthropic Claude 3.5 Sonnet

  • Anthropic Claude 3.7 Sonnet

  • Anthropic Claude Opus 4

  • Anthropic Claude Sonnet 4

Conta i 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 InvokeModel richiesta, il formato di body è una stringa che rappresenta un oggetto JSON il cui formato dipende dal modello specificato.

  • Per una Converse richiesta, il formato di body è un oggetto JSON che specifica i prompt messages e i system prompt inclusi nella conversazione.

Prova con un esempio

Gli esempi in questa sezione consentono di contare i token per una richiesta InvokeModel and 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.

  • La tua identità IAM dispone delle autorizzazioni per le seguenti azioni (per ulteriori informazioni, consulta Azione, risorse e chiavi di condizione per Amazon Bedrock):

    • bedrock: CountTokens — Consente l'utilizzo di. CountTokens

    • bedrock: InvokeModel — Consente l'utilizzo di InvokeModel e. Converse Dovrebbe 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"])