View a markdown version of this page

Supervisión del uso de tokens contando los tokens antes de ejecutar la inferencia - Amazon Bedrock

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

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 API le ayuda a estimar el uso de los tokens antes de enviar solicitudes a los modelos básicos, ya que devuelve 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 API no conlleva cargos.

nota

Algunos modelos de Anthropic Claude, incluidos los que se lanzan con la inferencia interregional (CRIS) únicamente activadabedrock-runtime, no son compatibles. CountTokens bedrock-runtime En el caso de estos modelos, puedes contar los tokens de entrada llamando a la count_tokens API de Anthropic en el punto final. bedrock-mantle Consulta Cuenta los tokens usando el punto final bedrock-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

Modelos y regiones compatibles para el recuento de tokens

Para ver qué modelos admiten el recuento de fichas, consulta los modelos de un vistazo y elige el modelo que te interese.

Cuente los tokens utilizando el punto final bedrock-runtime

Para contar el número de tokens de entrada en una solicitud de inferencia, envíe una CountTokens solicitud con un punto final de ejecución de Amazon Bedrock, especifique el modelo en el encabezado y la entrada para contar los tokens en el campo. body El valor del body campo depende de si está contando los tokens de entrada para una solicitud InvokeModel o para una solicitud de Converse:

  • 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 para una solicitud en tiempo de ejecución

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

Requisitos previos
  • Ya ha realizado la descarga AWS SDK para Python (Boto3) y su configuración está configurada de manera que sus credenciales y su 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):

    • bedrock: CountTokens — Permite el uso deCountTokens.

    • bedrock: InvokeModel — Permite el uso de InvokeModel y. Converse Debe tener un alcance dearn:${Partition}:bedrock:${Region}::foundation-model/anthropic.claude-3-haiku-20240307-v1:0, como mínimo.

Para probar a contar los tokens de una InvokeModel 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, 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"])

Cuenta los tokens usando el punto final bedrock-mantle

El bedrock-mantle punto final expone la count_tokens API de Anthropic en. /anthropic/v1/messages/count_tokens Utilízala para contar los tokens de entrada de los modelos de Anthropic Claude que no son compatibles CountTokens con, por ejemplo, cuando el modelo solo se ofrece mediante inferencia interregional (CRIS) bedrock-runtime y, por lo tanto, no tiene un punto final al que apuntar. bedrock-runtime Region-specific CountTokens El /anthropic/v1/messages camino es: modelos no Claude-specific antrópicos a cambio. 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.

  • Cuerpo de la solicitud: la count_tokens forma antrópica modelmessages, incluidos los campos opcionales system y tools los campos. Consulta la referencia al recuento de fichas de mensajes antrópicos.

  • Autenticación: ya sea una firma Sigv4 con el nombre del bedrock-mantle servicio o una clave de API de Amazon Bedrock introducida en el encabezado. x-api-key Consulte Claves de API.

  • Acción de IAM —. bedrock-mantle:CountTokens Esta acción usa el prefijo de bedrock-mantle servicio y aparece en la referencia de autorización del servicio Amazon Bedrock Powered by AWS Mantle, en lugar de en la referencia a Amazon Bedrock (). bedrock La autorización se refiere a un recurso del formulario del proyecto 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 apunte 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 del bedrock-runtime cliente count_tokens no apunta a este punto final y devuelve un error de validación para los modelos que no son compatibles. bedrock-runtime

  • 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 porbedrock-runtime.

nota

El count_tokens punto final valida el cuerpo de la solicitud con 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 y devuelve. tools[] tools.0.custom.strict: Extra inputs are not permitted Consulte la tarjeta del modelo para conocer la superficie característica específica del modelo.

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

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.