_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
Source
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