Class: RubynCode::Hooks::BuiltIn::CostTrackingHook

Inherits:
Object
  • Object
show all
Defined in:
lib/rubyn_code/hooks/built_in.rb

Overview

Records cost data after each LLM call using the BudgetEnforcer.

Expects the :post_llm_call context to include:

- response: the raw API response hash (with :usage or "usage" key)
- budget_enforcer: an Observability::BudgetEnforcer instance (optional)

Instance Method Summary collapse

Constructor Details

#initialize(budget_enforcer:) ⇒ CostTrackingHook

Returns a new instance of CostTrackingHook.

Parameters:



15
16
17
# File 'lib/rubyn_code/hooks/built_in.rb', line 15

def initialize(budget_enforcer:)
  @budget_enforcer = budget_enforcer
end

Instance Method Details

#call(response:, **_kwargs) ⇒ void

This method returns an undefined value.

Parameters:

  • response (Hash)

    the LLM API response

  • kwargs (Hash)

    remaining context (ignored)



22
23
24
25
26
27
28
29
# File 'lib/rubyn_code/hooks/built_in.rb', line 22

def call(response:, **_kwargs)
  return unless @budget_enforcer

  usage = response[:usage] || response['usage']
  return unless usage

  record_usage(response, usage)
end