Class: Brute::Middleware::OTel::TokenUsage

Inherits:
Object
  • Object
show all
Defined in:
lib/brute/middleware/015_otel_token_usage.rb

Overview

Records token usage from the LLM response as span attributes.

Runs POST-call: reads token counts from the response usage object and sets them as attributes on the span.

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ TokenUsage

Returns a new instance of TokenUsage.



15
16
17
# File 'lib/brute/middleware/015_otel_token_usage.rb', line 15

def initialize(app)
  @app = app
end

Instance Method Details

#call(env) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/brute/middleware/015_otel_token_usage.rb', line 19

def call(env)
  #response = @app.call(env)

  #span = env[:span]
  #if span && response.respond_to?(:usage) && (usage = response.usage)
  #  span.set_attribute("gen_ai.usage.input_tokens", usage.input_tokens.to_i)
  #  span.set_attribute("gen_ai.usage.output_tokens", usage.output_tokens.to_i)
  #  span.set_attribute("gen_ai.usage.total_tokens", usage.total_tokens.to_i)

  #  reasoning = usage.reasoning_tokens.to_i
  #  span.set_attribute("gen_ai.usage.reasoning_tokens", reasoning) if reasoning > 0
  #end

  #response
  @app.call(env)
end