Quero verificar o número de tokens de entrada e saída quando invoco um modelo no Amazon Bedrock.
Resolução
Observação: se você receber mensagens de erro ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Para verificar a contagem de tokens, use um dos métodos a seguir.
Use um playground do Amazon Bedrock
Para usar um playground para verificar os tokens de entrada e saída quando você invocar o modelo, consulte Gerar respostas no console usando playgrounds.
Verifique os logs de invocação do modelo
Pré-requisito: você deve criar um destino para o qual entregar seus logs. É possível usar o Amazon Simple Storage Service (Amazon S3) para configurar um bucket do S3 ou usar o Amazon CloudWatch Logs para configurar um grupo de logs. Se você usar um bucket do S3, adicione uma política de bucket ao bucket que inclua a declaração de política da etapa 2 em Configurar um destino do Amazon S3. Se você usa um grupo de logs, crie um perfil do AWS Identity and Access Management (AWS IAM) que inclua a relação de confiança e a declaração de política da etapa 2 em Set up a CloudWatch Logs destination (Configurar um destino do CloudWatch Logs).
Para verificar os logs, conclua as seguintes etapas:
- Use o console do CloudWatch ou a API para ativar o registro em log em todas as invocações de modelo.
- Nos logs, veja o número de inputTokens e outputTokens para cada invocação de modelo.
Exemplo de log:
{
"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
}
}
Verifique a resposta da operação Converse
Use a AWS CLI para obter uma resposta da operação da API Converse.
Execute o seguinte comando bedrock-runtime com o comando converse:
aws bedrock-runtime converse \
--region your-region\
--model-id amazon.nova-pro-v1:0 \
--messages '{"role": "user", "content": [{"text": "Hello"}]}'
Observação: o comando anterior obtém a contagem de tokens para o modelo amazon.nova-pro-v1:0. Substitua your-region pela sua região da AWS, model-id pelo ID do seu modelo e text pela sua própria mensagem.
Exemplo de resposta:
{
"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
}
}