Module: Legion::LLM::Config

Extended by:
Legion::Logging::Helper
Defined in:
lib/legion/llm/config.rb

Class Method Summary collapse

Class Method Details

.auto_configure_defaultsObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/legion/llm/config.rb', line 24

def auto_configure_defaults
  log.debug '[llm][config] auto_configure_defaults.enter'
  extension_providers.each do |provider, config|
    next unless Legion::LLM::Settings.config_value(config, :enabled)

    model = Legion::LLM::Settings.config_value(config, :default_model)
    next unless model

    Legion::LLM::Settings.set_value(:default_model, value: model)
    Legion::LLM::Settings.set_value(:default_provider, value: provider)
    log.info "[llm][config] auto-configured default model=#{model} provider=#{provider}"
    break
  end
  log.debug '[llm][config] auto_configure_defaults.exit'
end

.extension_providersObject



40
41
42
43
44
45
46
47
48
# File 'lib/legion/llm/config.rb', line 40

def extension_providers
  ext = Legion::Settings[:extensions]
  return ext[:llm] if ext.is_a?(Hash) && ext[:llm].is_a?(Hash)

  {}
rescue StandardError => e
  handle_exception(e, level: :warn, handled: true, operation: 'llm.config.extension_providers')
  {}
end

.set_defaultsObject



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/legion/llm/config.rb', line 12

def set_defaults
  log.debug '[llm][config] set_defaults.enter'
  default_model = Legion::LLM::Settings.value(:default_model)
  default_provider = Legion::LLM::Settings.value(:default_provider)

  if default_model.nil? && default_provider.nil?
    log.debug '[llm][config] set_defaults auto_configure_defaults'
    auto_configure_defaults
  end
  log.debug "[llm][config] set_defaults.exit default_model=#{Legion::LLM::Settings.value(:default_model)} default_provider=#{Legion::LLM::Settings.value(:default_provider)}"
end