class ActiveGenie::Configuration
def comparator
def comparator @comparator ||= Config::ComparatorConfig.new end
def extractor
def extractor @extractor ||= Config::ExtractorConfig.new end
def lister
def lister @lister ||= Config::ListerConfig.new end
def llm
def llm @llm ||= Config::LlmConfig.new end
def log
def log @log ||= Config::LogConfig.new end
def logger
def logger @logger ||= ActiveGenie::Logger.new(log_config: log) end
def merge(config_params = {})
def merge(config_params = {}) return config_params if config_params.is_a?(Configuration) new_configuration = dup SUB_CONFIGS.each do |key| config = new_configuration.send(key) next unless config.respond_to?(:merge) new_config = sub_config_merge(config, key, config_params) new_configuration.send("#{key}=", new_config) end @logger = nil new_configuration end
def providers
def providers @providers ||= Config::ProvidersConfig.new end
def ranker
def ranker @ranker ||= Config::RankerConfig.new end
def scorer
def scorer @scorer ||= Config::ScorerConfig.new end
def sub_config_merge(config, key, config_params)
def sub_config_merge(config, key, config_params) if config_params&.key?(key.to_s) config.merge(config_params[key.to_s]) elsif config_params&.key?(key.to_sym) config.merge(config_params[key.to_sym]) else config.merge(config_params || {}) end end