Package
langchain-aws
Checked other resources
Example Code
# Current behavior: internal keys remain in PascalCase/camelCase
response_message = _parse_response(mock_aws_response)
print(f"Current keys: {list(response_message.response_metadata.keys())}")
# Output includes: 'ResponseMetadata', 'stopReason', 'metrics'
# Expected behavior: keys should be converted to snake_case for consistency
# e.g. 'response_metadata', 'stop_reason', 'metrics'
Error Message and Stack Trace (if applicable)
Description
Currently, ChatBedrockConverse returns some response metadata using AWS's native PascalCase or camelCase (e.g., messageStop events). This is inconsistent with LangChain's standard of using snake_case for metadata keys.
There is already a # TODO: snake case response metadata?
Proposed Solution:
Use the internal _camel_to_snake_keys utility function to recursively convert metadata keys in _parse_stream_event and _extract_response_metadata.
Package
langchain-aws
Checked other resources
Example Code
Error Message and Stack Trace (if applicable)
Description
Currently, ChatBedrockConverse returns some response metadata using AWS's native PascalCase or camelCase (e.g., messageStop events). This is inconsistent with LangChain's standard of using snake_case for metadata keys.
There is already a # TODO: snake case response metadata?
Proposed Solution:
Use the internal _camel_to_snake_keys utility function to recursively convert metadata keys in _parse_stream_event and _extract_response_metadata.