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
  d64af782_4aac_1e87_a23b_e6300fcdc624["_create_usage_metadata()"]
  6f997c9a_8c58_9d52_c33f_d88978f12eb4["chat_models.py"]
  d64af782_4aac_1e87_a23b_e6300fcdc624 -->|defined in| 6f997c9a_8c58_9d52_c33f_d88978f12eb4
  d798c5eb_b3ec_7dcd_afbe_81031dc680c3["_stream()"]
  d798c5eb_b3ec_7dcd_afbe_81031dc680c3 -->|calls| d64af782_4aac_1e87_a23b_e6300fcdc624
  b2a0fb65_dded_ba54_3fc4_cf222600b071["_astream()"]
  b2a0fb65_dded_ba54_3fc4_cf222600b071 -->|calls| d64af782_4aac_1e87_a23b_e6300fcdc624
  cf70f32b_032d_e8a9_45fe_13a6419bea5c["_generate()"]
  cf70f32b_032d_e8a9_45fe_13a6419bea5c -->|calls| d64af782_4aac_1e87_a23b_e6300fcdc624
  5eb7c9fa_4a3d_990d_b77e_625bcc3f2c81["_agenerate()"]
  5eb7c9fa_4a3d_990d_b77e_625bcc3f2c81 -->|calls| d64af782_4aac_1e87_a23b_e6300fcdc624
  style d64af782_4aac_1e87_a23b_e6300fcdc624 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/partners/perplexity/langchain_perplexity/chat_models.py lines 77–102

def _create_usage_metadata(token_usage: dict) -> UsageMetadata:
    """Create UsageMetadata from Perplexity token usage data.

    Args:
        token_usage: Dictionary containing token usage information from Perplexity API.

    Returns:
        UsageMetadata with properly structured token counts and details.
    """
    input_tokens = token_usage.get("prompt_tokens", 0)
    output_tokens = token_usage.get("completion_tokens", 0)
    total_tokens = token_usage.get("total_tokens", input_tokens + output_tokens)

    # Build output_token_details for Perplexity-specific fields
    output_token_details: OutputTokenDetails = {}
    if (reasoning := token_usage.get("reasoning_tokens")) is not None:
        output_token_details["reasoning"] = reasoning
    if (citation_tokens := token_usage.get("citation_tokens")) is not None:
        output_token_details["citation_tokens"] = citation_tokens  # type: ignore[typeddict-unknown-key]

    return UsageMetadata(
        input_tokens=input_tokens,
        output_tokens=output_tokens,
        total_tokens=total_tokens,
        output_token_details=output_token_details,
    )

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/perplexity/langchain_perplexity/chat_models.py.
Where is _create_usage_metadata() defined?
_create_usage_metadata() is defined in libs/partners/perplexity/langchain_perplexity/chat_models.py at line 77.
What calls _create_usage_metadata()?
_create_usage_metadata() is called by 4 function(s): _agenerate, _astream, _generate, _stream.

Analyze Your Own Codebase

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

Try Supermodel Free