Monitorar o uso de tokens contando os tokens antes de executar a inferência - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Monitorar o uso de tokens contando os tokens antes de executar a inferência

Quando você executa inferência do modelo, o número de tokens enviados na entrada é computado no custo da solicitação e contabilizado na cota de tokens que é possível usar por minuto e por dia. A CountTokensAPI ajuda você a estimar o uso de tokens antes de enviar solicitações aos modelos básicos, retornando a contagem de tokens que seria usada se a mesma entrada fosse enviada ao modelo em uma solicitação de inferência.

nota

O uso da CountTokensAPI não gera cobranças.

A contagem de tokens é específica do modelo porque modelos diferentes usam estratégias de tokenização diferentes. A contagem de tokens exibida por essa operação corresponderá à contagem de tokens que seria cobrada se a mesma entrada fosse enviada ao modelo para executar a inferência.

É possível usar a API CountTokens para fazer o seguinte:

  • Estimar os custos antes de enviar solicitações de inferência.

  • Otimizar os prompts para que se ajustem aos limites de token.

  • Planejar o uso de tokens em sua aplicações.

Modelos e regiões em que é possível usar contagem de tokens

A tabela a seguir mostra o suporte do modelo básico para contagem de tokens:

Fornecedor Modelo ID do modelo Suporte ao modelo de região única
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-v 1: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

Contar tokens em uma solicitação

Para contar o número de tokens de entrada em uma solicitação de inferência, envie uma CountTokenssolicitação com um endpoint de tempo de execução do Amazon Bedrock, especifique o modelo no cabeçalho e a entrada para contar os tokens no campo. body O valor do body campo depende se você está contando os tokens de entrada para uma solicitação InvokeModelou para a Converse:

  • Para uma solicitação InvokeModel, o formato de body é uma string que representa um objeto JSON cujo formato depende do modelo que você especificar.

  • Para uma solicitação Converse, o formato de body é um objeto JSON que especifica os prompts messages e system incluídos na conversa.

Experimentar um exemplo

Os exemplos nesta seção permitem que você conte tokens para uma solicitação InvokeModel e Converse com o Claude 3 Haiku da Anthropic.

Pré-requisitos
  • Você fez o download AWS SDK para Python (Boto3) e sua configuração está configurada para que suas credenciais e sua AWS região padrão sejam reconhecidas automaticamente.

  • Sua identidade do IAM tem permissões para as seguintes ações (para ter mais informações, consulte Ações, recursos e chaves de condição do Amazon Bedrock):

    • bedrock: CountTokens — Permite o uso de. CountTokens

    • bedrock: InvokeModel — Permite o uso de InvokeModel e. Converse Deve ter como escopoarn:${Partition}:bedrock:${Region}::foundation-model/anthropic.claude-3-haiku-20240307-v1:0, no mínimo.

Para experimentar a contagem de tokens para uma InvokeModelsolicitação, execute o seguinte código 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"])

Para experimentar a contagem de tokens para uma solicitação Converse, execute o seguinte código 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"])