_create_usage_metadata() — langchain Function Reference
Architecture documentation for the _create_usage_metadata() function in chat_models.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 8b9223c9_7a1b_f19b_a11a_7832c51d7a4b["_create_usage_metadata()"] 9591e0fc_6d18_28d3_cea9_e4a5cf7f2b59["chat_models.py"] 8b9223c9_7a1b_f19b_a11a_7832c51d7a4b -->|defined in| 9591e0fc_6d18_28d3_cea9_e4a5cf7f2b59 64320ac7_229e_69ac_e55f_504a7f3a1ee4["_create_chat_result()"] 64320ac7_229e_69ac_e55f_504a7f3a1ee4 -->|calls| 8b9223c9_7a1b_f19b_a11a_7832c51d7a4b 943d2ee7_1f7a_632d_e35f_f168f64894fe["_convert_chunk_to_message_chunk()"] 943d2ee7_1f7a_632d_e35f_f168f64894fe -->|calls| 8b9223c9_7a1b_f19b_a11a_7832c51d7a4b style 8b9223c9_7a1b_f19b_a11a_7832c51d7a4b fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/partners/groq/langchain_groq/chat_models.py lines 1540–1593
def _create_usage_metadata(groq_token_usage: dict) -> UsageMetadata:
"""Create usage metadata from Groq token usage response.
Args:
groq_token_usage: Token usage dict from Groq API response.
Returns:
Usage metadata dict with input/output token details.
"""
# Support both formats: new Responses API uses "input_tokens",
# Chat Completions API uses "prompt_tokens"
input_tokens = (
groq_token_usage.get("input_tokens")
or groq_token_usage.get("prompt_tokens")
or 0
)
output_tokens = (
groq_token_usage.get("output_tokens")
or groq_token_usage.get("completion_tokens")
or 0
)
total_tokens = groq_token_usage.get("total_tokens") or input_tokens + output_tokens
# Support both formats for token details:
# Responses API uses "*_tokens_details", Chat Completions API might use
# "prompt_token_details"
input_details_dict = (
groq_token_usage.get("input_tokens_details")
or groq_token_usage.get("prompt_tokens_details")
or {}
)
output_details_dict = (
groq_token_usage.get("output_tokens_details")
or groq_token_usage.get("completion_tokens_details")
or {}
)
input_token_details: dict = {
"cache_read": input_details_dict.get("cached_tokens"),
}
output_token_details: dict = {
"reasoning": output_details_dict.get("reasoning_tokens"),
}
usage_metadata: UsageMetadata = {
"input_tokens": input_tokens,
"output_tokens": output_tokens,
"total_tokens": total_tokens,
}
if filtered_input := {k: v for k, v in input_token_details.items() if v}:
usage_metadata["input_token_details"] = InputTokenDetails(**filtered_input) # type: ignore[typeddict-item]
if filtered_output := {k: v for k, v in output_token_details.items() if v}:
usage_metadata["output_token_details"] = OutputTokenDetails(**filtered_output) # type: ignore[typeddict-item]
return usage_metadata
Domain
Subdomains
Source
Frequently Asked Questions
What does _create_usage_metadata() do?
_create_usage_metadata() is a function in the langchain codebase, defined in libs/partners/groq/langchain_groq/chat_models.py.
Where is _create_usage_metadata() defined?
_create_usage_metadata() is defined in libs/partners/groq/langchain_groq/chat_models.py at line 1540.
What calls _create_usage_metadata()?
_create_usage_metadata() is called by 2 function(s): _convert_chunk_to_message_chunk, _create_chat_result.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free