Home / Function/ get_usage_metadata_callback() — langchain Function Reference

get_usage_metadata_callback() — langchain Function Reference

Architecture documentation for the get_usage_metadata_callback() function in usage.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  156d1099_9009_986f_9932_b62a09521c5e["get_usage_metadata_callback()"]
  6ccf6f55_5d54_3232_1de5_34ece235aaf1["usage.py"]
  156d1099_9009_986f_9932_b62a09521c5e -->|defined in| 6ccf6f55_5d54_3232_1de5_34ece235aaf1
  style 156d1099_9009_986f_9932_b62a09521c5e fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/core/langchain_core/callbacks/usage.py lines 93–149

def get_usage_metadata_callback(
    name: str = "usage_metadata_callback",
) -> Generator[UsageMetadataCallbackHandler, None, None]:
    """Get usage metadata callback.

    Get context manager for tracking usage metadata across chat model calls using
    [`AIMessage.usage_metadata`][langchain.messages.AIMessage.usage_metadata].

    Args:
        name: The name of the context variable.

    Yields:
        The usage metadata callback.

    Example:
        ```python
        from langchain.chat_models import init_chat_model
        from langchain_core.callbacks import get_usage_metadata_callback

        llm_1 = init_chat_model(model="openai:gpt-4o-mini")
        llm_2 = init_chat_model(model="anthropic:claude-3-5-haiku-20241022")

        with get_usage_metadata_callback() as cb:
            llm_1.invoke("Hello")
            llm_2.invoke("Hello")
            print(cb.usage_metadata)
        ```

        ```txt
        {
            "gpt-4o-mini-2024-07-18": {
                "input_tokens": 8,
                "output_tokens": 10,
                "total_tokens": 18,
                "input_token_details": {"audio": 0, "cache_read": 0},
                "output_token_details": {"audio": 0, "reasoning": 0},
            },
            "claude-3-5-haiku-20241022": {
                "input_tokens": 8,
                "output_tokens": 21,
                "total_tokens": 29,
                "input_token_details": {"cache_read": 0, "cache_creation": 0},
            },
        }
        ```

    !!! version-added "Added in `langchain-core` 0.3.49"

    """
    usage_metadata_callback_var: ContextVar[UsageMetadataCallbackHandler | None] = (
        ContextVar(name, default=None)
    )
    register_configure_hook(usage_metadata_callback_var, inheritable=True)
    cb = UsageMetadataCallbackHandler()
    usage_metadata_callback_var.set(cb)
    yield cb
    usage_metadata_callback_var.set(None)

Domain

Subdomains

Frequently Asked Questions

What does get_usage_metadata_callback() do?
get_usage_metadata_callback() is a function in the langchain codebase, defined in libs/core/langchain_core/callbacks/usage.py.
Where is get_usage_metadata_callback() defined?
get_usage_metadata_callback() is defined in libs/core/langchain_core/callbacks/usage.py at line 93.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free