add_usage() — langchain Function Reference
Architecture documentation for the add_usage() function in ai.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD cdc88fbc_bcc4_c962_2ddc_7ed8e732b6d7["add_usage()"] 98b3055e_a59b_3f72_0c70_bc2d048efeb0["ai.py"] cdc88fbc_bcc4_c962_2ddc_7ed8e732b6d7 -->|defined in| 98b3055e_a59b_3f72_0c70_bc2d048efeb0 e7bc6592_4344_324e_6e97_eb4a3e90f81b["add_ai_message_chunks()"] e7bc6592_4344_324e_6e97_eb4a3e90f81b -->|calls| cdc88fbc_bcc4_c962_2ddc_7ed8e732b6d7 style cdc88fbc_bcc4_c962_2ddc_7ed8e732b6d7 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/core/langchain_core/messages/ai.py lines 721–777
def add_usage(left: UsageMetadata | None, right: UsageMetadata | None) -> UsageMetadata:
"""Recursively add two UsageMetadata objects.
Example:
```python
from langchain_core.messages.ai import add_usage
left = UsageMetadata(
input_tokens=5,
output_tokens=0,
total_tokens=5,
input_token_details=InputTokenDetails(cache_read=3),
)
right = UsageMetadata(
input_tokens=0,
output_tokens=10,
total_tokens=10,
output_token_details=OutputTokenDetails(reasoning=4),
)
add_usage(left, right)
```
results in
```python
UsageMetadata(
input_tokens=5,
output_tokens=10,
total_tokens=15,
input_token_details=InputTokenDetails(cache_read=3),
output_token_details=OutputTokenDetails(reasoning=4),
)
```
Args:
left: The first `UsageMetadata` object.
right: The second `UsageMetadata` object.
Returns:
The sum of the two `UsageMetadata` objects.
"""
if not (left or right):
return UsageMetadata(input_tokens=0, output_tokens=0, total_tokens=0)
if not (left and right):
return cast("UsageMetadata", left or right)
return UsageMetadata(
**cast(
"UsageMetadata",
_dict_int_op(
cast("dict", left),
cast("dict", right),
operator.add,
),
)
)
Domain
Subdomains
Defined In
Called By
Source
Frequently Asked Questions
What does add_usage() do?
add_usage() is a function in the langchain codebase, defined in libs/core/langchain_core/messages/ai.py.
Where is add_usage() defined?
add_usage() is defined in libs/core/langchain_core/messages/ai.py at line 721.
What calls add_usage()?
add_usage() is called by 1 function(s): add_ai_message_chunks.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free