Module: Legion::Extensions::Llm::Ledger::Runners::Metering

Extended by:
Metering
Includes:
Helpers::Lex
Included in:
Metering
Defined in:
lib/legion/extensions/llm/ledger/runners/metering.rb

Instance Method Summary collapse

Instance Method Details

#spool_flushObject



13
14
15
16
17
18
19
20
21
22
# File 'lib/legion/extensions/llm/ledger/runners/metering.rb', line 13

def spool_flush
  return unless defined?(Legion::LLM::Metering) &&
                Legion::LLM::Metering.respond_to?(:flush_spool)

  Legion::LLM::Metering.flush_spool
  { result: :ok }
rescue StandardError => e
  handle_exception(e, level: :warn, handled: true, operation: 'spool_flush')
  { result: :error, error: e.message }
end

#write_metering_record(payload = nil, metadata = {}, **message) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/legion/extensions/llm/ledger/runners/metering.rb', line 24

def write_metering_record(payload = nil,  = {}, **message)
  payload,  = normalize_runner_args(payload, , message)
  headers = Helpers::SubscriptionMessage.extract_headers(payload, )
  ctx     = payload[:message_context] || {}
  props   = [:properties] || {}

  Writers::OfficialMeteringWriter.write(official_metering_payload(payload, ctx, props, headers))
rescue StandardError => e
  handle_exception(e, level: :error, handled: true, operation: 'write_metering_record')
  { result: :error, error: e.message }
end