Module: Legion::Extensions::Llm::Ledger::Runners::Metering
- Extended by:
- Metering
- Included in:
- Metering
- Defined in:
- lib/legion/extensions/llm/ledger/runners/metering.rb
Instance Method Summary collapse
Instance Method Details
#spool_flush ⇒ Object
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/legion/extensions/llm/ledger/runners/metering.rb', line 11 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 Legion::Logging.warn("[lex-llm-ledger] spool_flush failed: #{e.}") # rubocop:disable Legion/HelperMigration/DirectLogging { result: :error, error: e. } end |
#write_metering_record(payload, metadata = {}) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/legion/extensions/llm/ledger/runners/metering.rb', line 22 def write_metering_record(payload, = {}) ctx = payload[:message_context] || {} props = [:properties] || {} record = build_metering_record(payload, ctx, props) ::Legion::Data::DB[:metering_records].insert(record) { result: :ok } rescue Sequel::UniqueConstraintViolation => _e { result: :duplicate } rescue StandardError => e Legion::Logging.error("[lex-llm-ledger] write_metering_record failed: #{e.}") # rubocop:disable Legion/HelperMigration/DirectLogging { result: :error, error: e. } end |