ReqLLM.Step.Usage (ReqLLM v1.0.0-rc.8)

View Source

Centralized Req step that extracts token usage from provider responses, normalizes usage values across providers, computes costs, and emits telemetry.

This step:

  • Extracts token usage numbers from provider responses
  • Normalizes usage data across different provider formats
  • Calculates costs using ReqLLM.Model cost metadata
  • Stores usage data in response.private[:req_llm][:usage]
  • Emits telemetry events for monitoring

Usage

request
|> ReqLLM.Step.Usage.attach(model)

Telemetry Events

Emits [:req_llm, :token_usage] events with:

  • Measurements: %{tokens: %{input: 123, output: 456, reasoning: 64}, cost: 0.0123}
  • Metadata: %{model: %ReqLLM.Model{}}

Summary

Functions

Attaches the Usage step to a Req request.

Functions

attach(req, model \\ nil)

@spec attach(Req.Request.t(), ReqLLM.Model.t() | nil) :: Req.Request.t()

Attaches the Usage step to a Req request.

Parameters

  • req - The Req.Request struct
  • model - Optional ReqLLM.Model struct for cost calculation

Examples

request
|> ReqLLM.Step.Usage.attach(model)