Amazon Bedrockでモデルを呼び出す際の、入力トークンと出力トークンの数を確認したいです。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
次のいずれかの方法でトークン数を確認します。
Amazon Bedrock Playground を使用する
モデルの呼び出す時に Playground を使用して入力トークンと出力トークンを確認する方法については、「Playground を使用してコンソールで応答を生成する」を参照してください。
モデル呼び出しログを確認する
前提条件 ログの配信先を作成する必要があります。Amazon Simple Storage Service (Amazon S3) を使用して S3 バケットを設定するか、Amazon CloudWatch Logs を使用してロググループを設定します。S3 バケットを使用する場合は、「Amazon S3 の宛先を設定する」のステップ 2 でのポリシーステートメントを含むバケットポリシーをバケットに追加します。ロググループを使用する場合は、「CloudWatch Logs の宛先を設定する」のステップ 2 での信頼関係とポリシーステートメントを含む AWS Identity and Access Management (IAM) ロールを作成します。
ログを取得するには、次の手順を実行します。
- CloudWatch コンソールまたは API を使用し、すべてのモデル呼び出しでログ記録を有効にします。
- ログには、各モデル呼び出しに関する inputTokens および outputTokens の数値が表示されます。
ログの例:
{
"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
}
}
Converse 操作からの応答を確認する
AWS CLI を使用して Converse API 操作からの応答を取得します。
converse コマンドで次の bedrock-runtime コマンドを実行します。
aws bedrock-runtime converse \
--region your-region\
--model-id amazon.nova-pro-v1:0 \
--messages '{"role": "user", "content": [{"text": "Hello"}]}'
注: 上記のコマンドは、amazon.nova-pro-v1:0 モデルのトークン数を取得します。実際のものでそれぞれ、your-region を AWS リージョンに、model-id をモデル ID に置き換え、text を独自のメッセージに置き換えます。
応答の例:
{
"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
}
}