

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Supervisión del uso de tokens contando los tokens antes de ejecutar la inferencia
<a name="count-tokens"></a>

Al realizar una inferencia de modelos, la cantidad de tokens que se envían en la entrada contribuye al costo de la solicitud y a la cuota de tokens que se pueden utilizar por minuto y día. La [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html)API le ayuda a estimar el uso de los tokens antes de enviar solicitudes a los modelos básicos al devolver el recuento de tokens que se utilizaría si se enviara la misma entrada al modelo en una solicitud de inferencia.

**nota**  
El uso de la [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html)API no conlleva cargos.

**nota**  
Algunos modelos de Anthropic Claude, incluidos los que se lanzan únicamente con la función de inferencia entre regiones (CRIS), no son compatibles con la tecnología On`bedrock-runtime`. [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html)`bedrock-runtime` En estos modelos, para contar los tokens de entrada, basta con llamar a la `count_tokens` API de Anthropic en el punto final. `bedrock-mantle` Consulte [Cuente las fichas utilizando el punto final rocoso-manto](#count-tokens-mantle) la URL, el cuerpo de la solicitud y un ejemplo.

El recuento de tokens es específico de cada modelo porque los diferentes modelos utilizan diferentes estrategias de tokenización. El recuento de tokens devuelto por esta operación coincidirá con el número de tokens que se cobraría si se enviara la misma entrada al modelo para realizar la inferencia.

Puede utilizar la API `CountTokens` para hacer lo siguiente:
+ Calcular los costos antes de enviar las solicitudes de inferencia
+ Optimizar las peticiones para que se ajusten a los límites de tokens
+ Planificar el uso de los tokens en sus aplicaciones

**Topics**
+ [Modelos y regiones compatibles para el recuento de tokens](#count-tokens-supported)
+ [Cuente los tokens utilizando el punto final de tiempo de ejecución básico](#count-tokens-use)
+ [Ejemplo: contar los tokens de una solicitud de tiempo de ejecución fundamental](#count-tokens-example)
+ [Cuente las fichas utilizando el punto final rocoso-manto](#count-tokens-mantle)

## Modelos y regiones compatibles para el recuento de tokens
<a name="count-tokens-supported"></a>

Para ver qué modelos admiten el conteo de fichas, visita [los modelos de un vistazo](model-cards.md) y elige el modelo que te interese.

## Cuente los tokens utilizando el punto final de tiempo de ejecución básico
<a name="count-tokens-use"></a>

Para contar el número de tokens de entrada en una solicitud de inferencia, envíe una [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html)solicitud con un [punto de ejecución de Amazon Bedrock](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#br-rt) y especifique el modelo en el encabezado y la entrada para la que se van a contar los tokens en el `body` campo. El valor del `body` campo depende de si está contando los tokens de entrada para una solicitud [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)o para una solicitud de [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html):
+ En el caso de una solicitud `InvokeModel`, el formato de `body` es una cadena que representa un objeto JSON cuyo formato depende del modelo que especifique.
+ En el caso de una solicitud `Converse`, el formato de `body` es un objeto JSON que especifica las peticiones `messages` y `system` incluidas en la conversación.

## Ejemplo: contar los tokens de una solicitud de tiempo de ejecución fundamental
<a name="count-tokens-example"></a>

Los ejemplos de esta sección le permiten contar los tokens de una solicitud `InvokeModel` y `Converse` con Anthropic Claude 3 Haiku.

**Requisitos previos**
+ La has descargado AWS SDK para Python (Boto3) y la configuración está configurada de forma que tus credenciales y la AWS región predeterminada se reconozcan automáticamente.
+ Su identidad de IAM tiene permisos para las siguientes acciones (para obtener más información, consulte [Acciones, recursos y claves de condición de Amazon Bedrock](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html)):
  + bedrock: CountTokens — Permite el uso de`CountTokens`.
  + roca madre: InvokeModel — Permite el uso de `InvokeModel` y. `Converse` Debe estar limitado a{{arn:${Partition}:bedrock:${Region}::foundation-model/anthropic.claude-3-haiku-20240307-v1:0}}, como mínimo.

Para probar a contar los tokens de una [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)solicitud, ejecuta el siguiente código de 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 probar el recuento de tokens para una solicitud [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html), ejecute el siguiente código de 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"])
```

## Cuente las fichas utilizando el punto final rocoso-manto
<a name="count-tokens-mantle"></a>

El `bedrock-mantle` punto final expone la `count_tokens` API de Anthropic en. `/anthropic/v1/messages/count_tokens` Úsala para contar los símbolos de entrada de los modelos de Anthropic Claude que no son compatibles [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html), por ejemplo, cuando el modelo solo se ofrece mediante la inferencia entre regiones (CRIS) `bedrock-runtime` y, por lo tanto, no tiene un punto final al que apuntar. `bedrock-runtime` Region-specific [CountTokens](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_CountTokens.html) El `/anthropic/v1/messages` camino es el retorno de los modelos no Claude-specific antrópicos. `bedrock-mantle` `The model 'X' does not support the '/anthropic/v1/messages' API`

**Detalles de la solicitud**
+ **URL —**. `POST https://bedrock-mantle.{{region}}.api.aws/anthropic/v1/messages/count_tokens` Para conocer las regiones compatibles, consulte [Regiones y puntos finales compatibles](bedrock-mantle.md#bedrock-mantle-supported).
+ **Cuerpo de la solicitud**: la `count_tokens` forma antrópica, incluidos `model``messages`, y `tools` los campos `system` y opcionales. Consulta la referencia sobre el [recuento de fichas de Anthropic Messages](https://docs.anthropic.com/en/api/messages-count-tokens).
+ **Autenticación**: una firma SigV4 con el nombre del `bedrock-mantle` servicio o una clave de API de Amazon Bedrock ingresada en el `x-api-key` encabezado. Consulte [Claves de API](api-keys.md).
+ **Acción de IAM:.** `bedrock-mantle:CountTokens` La autorización se limita a un recurso del formulario [del proyecto](projects.md) Amazon Bedrock. `arn:aws:bedrock-mantle:{{region}}:{{account-id}}:project/{{project-name}}` El nombre predeterminado del proyecto es. `default`
+ **Compatibilidad con los SDK**: actualmente, AWS los SDK no muestran ningún método que se dirija a este punto final. Envíe la solicitud como SigV4-signed HTTP `POST` o utilice cualquier cliente HTTP con una clave de API de Amazon Bedrock. El método de `bedrock-runtime` cliente `count_tokens` no se dirige a este punto final y devuelve un error de validación en `bedrock-runtime` el caso de los modelos que no son compatibles.
+ **Formato de error**: los errores siguen la forma antrópica:`{"type": "error", "request_id": "...", "error": {"type": "error-type", "message": "error-message"}}`. Esto difiere del sobre de error AWS JSON estándar devuelto por`bedrock-runtime`.

**nota**  
El `count_tokens` punto final valida el cuerpo de la solicitud utilizando el mismo esquema que el punto final de inferencia correspondiente, por lo que los campos de solicitud que el modelo no admite se rechazan con HTTP 400. Por ejemplo, Anthropic Claude Opus 4.7 no acepta `strict: true` entradas ni devoluciones. `tools[]` `tools.0.custom.strict: Extra inputs are not permitted` Consulte la [tarjeta del modelo para conocer](model-cards.md) la superficie característica específica del modelo.

En el siguiente ejemplo, se utiliza `curl` una clave de API de Amazon Bedrock para contar los tokens en el `bedrock-mantle` punto final:

```
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 respuesta contiene un `input_tokens` campo cuyo valor es el recuento de fichas de la entrada proporcionada.