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 CountTokens API 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 CountTokens API não gera cobranças.
nota
Alguns modelos Anthropic Claude — incluindo aqueles que são lançados com inferência entre regiões (CRIS) somente ativada bedrock-runtime — não suportam o. CountTokens bedrock-runtime Para esses modelos, conte os tokens de entrada chamando a count_tokens API da Anthropic no bedrock-mantle endpoint. Veja Conte os tokens usando o ponto final do manto rochoso o URL, o corpo da solicitação e um exemplo.
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.
Tópicos
Modelos e regiões em que é possível usar contagem de tokens
Para ver quais modelos suportam a contagem de tokens, visite os modelos em um piscar de olhos e escolha o modelo em que você está interessado.
Conte tokens usando o endpoint de tempo de execução básico
Para contar o número de tokens de entrada em uma solicitação de inferência, envie uma CountTokens solicitaçã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 InvokeModel ou para uma solicitação Converse:
-
Para uma solicitação
InvokeModel, o formato debodyé uma string que representa um objeto JSON cujo formato depende do modelo que você especificar. -
Para uma solicitação
Converse, o formato debodyé um objeto JSON que especifica os promptsmessagesesystemincluídos na conversa.
Exemplo: conte tokens para uma solicitação de tempo de execução básico
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 de forma que suas credenciais e a 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):
-
alicerce: CountTokens — Permite o uso de.
CountTokens -
alicerce: InvokeModel — Permite o uso de
InvokeModele.ConverseDeve 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 InvokeModel solicitaçã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"])
Conte os tokens usando o ponto final do manto rochoso
O bedrock-mantle endpoint expõe a API da Anthropic em. count_tokens /anthropic/v1/messages/count_tokens Use-o para contar tokens de entrada para modelos Anthropic Claude que não suportam CountTokens on bedrock-runtime — por exemplo, quando o modelo é oferecido somente por meio de inferência entre regiões (CRIS) ativada bedrock-runtime e, portanto, não Region-specific tem um endpoint para ser segmentado. CountTokens O /anthropic/v1/messages caminho é Claude-specific; Modelos não antrópicos em retorno. bedrock-mantle The model 'X' does not support the '/anthropic/v1/messages' API
Detalhes da solicitação
-
URL —
POST https://bedrock-mantle.. Para saber quais regiões são compatíveis, consulte Regiões e endpoints compatíveis.region.api.aws/anthropic/v1/messages/count_tokens -
Corpo da solicitação — A
count_tokensforma antrópicamodel, incluindomessages,systemetoolscampos opcionais. Veja a referência de tokens de contagem de mensagensantrópicas. -
Autenticação — Uma assinatura SigV4 com o nome do
bedrock-mantleserviço ou uma chave da API Amazon Bedrock passada no cabeçalho.x-api-keyConsulte Chaves de API. -
Ação IAM —
bedrock-mantle:CountTokens. Essa ação usa o prefixo dobedrock-mantleserviço e aparece na referência de autorização do serviço Amazon Bedrock Powered by AWS Mantle, em vez da referência Amazon Bedrock ().bedrockA autorização tem como escopo um recurso do Amazon Bedrock Project do formulário.arn:aws:bedrock-mantle:O nome padrão do projeto éregion:account-id:project/project-namedefault. -
Suporte ao SDK — No momento, AWS os SDKs não expõem um método voltado para esse endpoint. Envie a solicitação como SigV4-signed HTTP
POSTou use qualquer cliente HTTP com uma chave de API Amazon Bedrock. O métodobedrock-runtimeclientecount_tokensnão tem como alvo esse endpoint e retorna um erro de validação para modelos que não são compatíveis com.bedrock-runtime -
Formato do erro - Os erros seguem a forma antrópica:
{"type": "error", "request_id": "...", "error": {"type": "error-type", "message": "error-message"}}. Isso difere do envelope de erro AWS JSON padrão retornado por.bedrock-runtime
nota
O count_tokens endpoint valida o corpo da solicitação usando o mesmo esquema do endpoint de inferência correspondente, portanto, os campos de solicitação que o modelo não suporta são rejeitados com HTTP 400. Por exemplo, Anthropic Claude Opus 4.7 não aceita strict: true e devolve. tools[] tools.0.custom.strict: Extra inputs are not permitted Consulte a placa do modelo para obter a superfície de características específicas do modelo.
O exemplo a seguir é usado curl com uma chave de API Amazon Bedrock para contar tokens no bedrock-mantle endpoint:
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?"} ] }'
A resposta contém um input_tokens campo cujo valor é a contagem de tokens para a entrada fornecida.