Class: RubyLLM::Transport::UsageMiddleware
- Inherits:
-
Faraday::Middleware
- Object
- Faraday::Middleware
- RubyLLM::Transport::UsageMiddleware
- Defined in:
- lib/ruby_llm/transport/usage_middleware.rb
Overview
Sits inside Faraday retry middleware so every transport attempt produces one usage observation.
Constant Summary collapse
- CONTEXT_KEY =
:nodoc: all
:ruby_llm_usage_tracker
Instance Method Summary collapse
Instance Method Details
#call(env) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/ruby_llm/transport/usage_middleware.rb', line 12 def call(env) tracker = env.request.context&.[](CONTEXT_KEY) return @app.call(env) unless tracker entry = tracker.start begin @app.call(env) rescue StandardError => e tracker.fail_attempt(entry, e) raise end end |