@@ -597,9 +597,13 @@ def _parse_usage_model(
597597 # Bedrock: https://docs.aws.amazon.com/bedrock/latest/userguide/monitoring-cw.html#runtime-cloudwatch-metrics
598598 ("inputTokenCount" , "input" ),
599599 ("outputTokenCount" , "output" ),
600+ # Bedrock Anthropic
601+ ("prompt_tokens" , "input" ),
602+ ("completion_tokens" , "output" ),
600603 # langchain-ibm https://pypi.org/project/langchain-ibm/
601604 ("input_token_count" , "input" ),
602605 ("generated_token_count" , "output" ),
606+
603607 ]
604608
605609 parsed_usage = {}
@@ -627,6 +631,10 @@ def _parse_usage(response: LLMResult):
627631
628632 if hasattr (response , "generations" ):
629633 for generation in response .generations :
634+ if "usage" in generation :
635+ llm_usage = _parse_usage_model (generation ["usage" ])
636+ break
637+
630638 for generation_chunk in generation :
631639 if generation_chunk .generation_info and ("usage_metadata" in generation_chunk .generation_info ):
632640 llm_usage = _parse_usage_model (generation_chunk .generation_info ["usage_metadata" ])
@@ -652,6 +660,7 @@ def _parse_usage(response: LLMResult):
652660 llm_usage = _parse_usage_model (chunk_usage )
653661 break
654662
663+
655664 return llm_usage
656665
657666
0 commit comments