Class: Collavre::RubyLlmInteractionLogger

Inherits:
Object
  • Object
show all
Defined in:
app/services/collavre/ruby_llm_interaction_logger.rb

Overview

frozen_string_literal: true

Class Method Summary collapse

Class Method Details

.log(vendor:, model:, messages:, tools: [], response_content: nil, error_message: nil, activity: "llm_query", creative: nil, user: nil, comment: nil, input_tokens: nil, output_tokens: nil) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/services/collavre/ruby_llm_interaction_logger.rb', line 6

def log(vendor:, model:, messages:, tools: [], response_content: nil, error_message: nil, activity: "llm_query", creative: nil, user: nil, comment: nil, input_tokens: nil, output_tokens: nil)
  ActivityLog.create!(
    activity: activity,
    creative: creative,
    user: user,
    comment: comment,
    log: {
      vendor: vendor.presence || "unknown",
      model: model.to_s,
      messages: safe_json(messages || []),
      tools: safe_json(tools || []),
      response_content: response_content,
      error_message: error_message,
      input_tokens: input_tokens,
      output_tokens: output_tokens
    }
  )
rescue StandardError => e
  Rails.logger.error("Failed to persist activity log: #{e.class} #{e.message}")
end