

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
<a name="count-tokens"></a>

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](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html)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](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html)API 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.

**Topics**
+ [Modelos e regiões em que é possível usar contagem de tokens](#count-tokens-supported)
+ [Contar tokens em uma solicitação](#count-tokens-use)
+ [Experimentar um exemplo](#count-tokens-example)

## Modelos e regiões em que é possível usar contagem de tokens
<a name="count-tokens-supported"></a>

Para ver quais modelos oferecem suporte à contagem de tokens, visite [rapidamente os modelos](model-cards.md) e escolha o modelo em que você está interessado.

## Contar tokens em uma solicitação
<a name="count-tokens-use"></a>

Para contar o número de tokens de entrada em uma solicitação de inferência, envie uma [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html)solicitação com um [endpoint de tempo de execução do Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-rt), 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](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)ou para a [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html):
+ 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
<a name="count-tokens-example"></a>

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](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html)):
  + bedrock: CountTokens — Permite o uso de. `CountTokens`
  + bedrock: InvokeModel — Permite o uso de `InvokeModel` e. `Converse` Deve ter como escopo{{arn:${Partition}:bedrock:${Region}::foundation-model/anthropic.claude-3-haiku-20240307-v1:0}}, no mínimo.

Para experimentar a contagem de tokens para uma [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)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](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html), 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"])
```