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 config[:enabled] != false

    model = config[:default_model]
    next unless model

    Legion::Settings[:llm][:default_provider] = provider.to_sym
    Legion::Settings[:llm][:default_model] = model
    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::Settings[:llm][:default_model]
  default_provider = Legion::Settings[:llm][: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::Settings[:llm][:default_model]} default_provider=#{Legion::Settings[:llm][:default_provider]}"
end