Quiero comprobar el número de tokens de entrada y salida cuando invoco un modelo en Amazon Bedrock.
Solución
Nota: Si se muestran errores al poner en marcha comandos de Interfaz de la línea de comandos de AWS (AWS CLI), consulte Solución de problemas para AWS CLI. Además, asegúrate de utilizar la versión más reciente de AWS CLI.
Para comprobar el recuento de tokens, utiliza uno de los métodos siguientes.
Uso de un entorno de pruebas de Amazon Bedrock
Para usar un entorno de pruebas para comprobar los tokens de entrada y salida al invocar el modelo, consulta Generate responses in the console using playgrounds (Generación de respuestas en la consola mediante entornos de pruebas).
Comprobación de los registros de invocación del modelo
Requisito previo: Debes crear un destino al que enviar los registros. Puedes usar Amazon Simple Storage Service (Amazon S3) para configurar un bucket de S3 o usar Registros de Amazon CloudWatch para configurar un grupo de registro. Si usas un bucket de S3, agrega una política de bucket al bucket que incluya la instrucción de política del paso 2 Set up an Amazon S3 destination (Configuración de un destino de Amazon S3). Si usas un grupo de registro, crea un rol de AWS Identity and Access Management (IAM) que incluya la relación de confianza y la instrucción de política del paso 2 Set up a CloudWatch Logs destination (Configuración de un destino de Registros de CloudWatch).
Para obtener los registros, sigue estos pasos:
- Utiliza la consola o la API de CloudWatch para activar el registro de todas las invocaciones de modelos.
- En los registros, consulta el número de inputTokens y outputTokens para cada invocación del modelo.
Ejemplo de registro:
{
"schemaType": "ModelInvocationLog",
"schemaVersion": "1.0",
"timestamp": "2025-03-31T21:34:03Z",
"accountId": "123456789",
"identity": {
"arn": "arn:aws:sts::123456789:role/MyRole"
},
"region": "us-east-1",
"requestId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
"operation": "ConverseStream",
"modelId": "amazon.nova-pro-v1:0",
"input": {
"inputContentType": "application/json",
"inputBodyJson": {
"messages": [
{
"role": "user",
"content": [
{
"text": "Good morning."
}
]
}
],
"inferenceConfig": {
"maxTokens": 512,
"temperature": 0.7,
"topP": 0.9,
"stopSequences": []
},
"additionalModelRequestFields": {}
},
"inputTokenCount": 3,
"cacheReadInputTokenCount": 0,
"cacheWriteInputTokenCount": 0
},
"output": {
"outputContentType": "application/json",
"outputBodyJson": {
"output": {
"message": {
"role": "assistant",
"content": [
{
"text": "Good morning! How can I assist you today? Whether you have questions, need information, or just want to chat, feel free to ask."
}
]
}
},
"stopReason": "end_turn",
"metrics": {
"latencyMs": 454
},
"usage": {
"inputTokens": 3,
"outputTokens": 29,
"totalTokens": 32
}
},
"outputTokenCount": 29
}
}
Comprobación de la respuesta de la operación Converse
Utiliza AWS CLI para obtener una respuesta de la operación de la API Converse.
Usa el siguiente comando bedrock-runtime con el comando converse:
aws bedrock-runtime converse \
--region your-region\
--model-id amazon.nova-pro-v1:0 \
--messages '{"role": "user", "content": [{"text": "Hello"}]}'
Nota: El comando anterior obtiene el recuento de tokens del modelo amazon.nova-pro-v1:0. Sustituye your-region por tu región de AWS, model-id por el ID del modelo y text por tu propio mensaje.
Ejemplo de respuesta:
{
"output": {
"message": {
"role": "assistant",
"content": [
{
"text": "Hello! It's nice to have you here. I'm here to help with whatever you might need. Whether you have a question, need assistance with a topic, or just want to chat, feel free to ask. What can I assist you with today?"
}
]
}
},
"stopReason": "end_turn",
"usage": {
"inputTokens": 1,
"outputTokens": 54,
"totalTokens": 55
},
"metrics": {
"latencyMs": 852
}
}