Home / Function/ _create_usage_metadata() — langchain Function Reference

_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

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