Class: CleoQualityReview::LlmLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/cleo_quality_review/llm_logger.rb

Overview

Logger for LLM queries and responses

Constant Summary collapse

LOG_DIR =
"log"

Instance Method Summary collapse

Constructor Details

#initialize(provider_name:, enabled: false) ⇒ LlmLogger

Returns a new instance of LlmLogger.

Parameters:

  • provider_name (String)

    name of the LLM provider

  • enabled (Boolean) (defaults to: false)

    whether logging is enabled



15
16
17
18
19
# File 'lib/cleo_quality_review/llm_logger.rb', line 15

def initialize(provider_name:, enabled: false)
  @provider_name = provider_name
  @enabled = enabled
  @logger = nil
end

Instance Method Details

#log(query:, response:) ⇒ void

This method returns an undefined value.

Log a query and response

Parameters:

  • query (String)

    the prompt sent to the LLM

  • response (String)

    the LLM response



26
27
28
29
30
# File 'lib/cleo_quality_review/llm_logger.rb', line 26

def log(query:, response:)
  return unless enabled

  logger.info(format_entry(query: query, response: response))
end

#log_pathString

Returns path to the log file.

Returns:

  • (String)

    path to the log file



34
35
36
# File 'lib/cleo_quality_review/llm_logger.rb', line 34

def log_path
  File.join(LOG_DIR, "#{provider_name}.log")
end