Module: Legion::Extensions::Llm::Fleet::Settings
- Extended by:
- Logging::Helper
- Includes:
- Logging::Helper
- Defined in:
- lib/legion/extensions/llm/fleet/settings.rb
Overview
Reads fleet settings from Legion::Settings when available, falling back to lex-llm defaults.
Class Method Summary collapse
- .configured_llm_settings ⇒ Object
- .default_settings ⇒ Object
- .dig(hash, *keys) ⇒ Object
- .safe_fetch(source, key) ⇒ Object
- .value(*path, default:) ⇒ Object
Class Method Details
.configured_llm_settings ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/legion/extensions/llm/fleet/settings.rb', line 24 def configured_llm_settings return [] unless defined?(::Legion::Settings) && ::Legion::Settings.respond_to?(:[]) configured = [] extensions = safe_fetch(::Legion::Settings, :extensions) extension_llm = dig(extensions, :llm) configured << extension_llm if extension_llm.respond_to?(:key?) llm = safe_fetch(::Legion::Settings, :llm) configured << llm if llm.respond_to?(:key?) configured rescue StandardError => e handle_exception(e, level: :debug, handled: true, operation: 'llm.fleet.settings.configured') [] end |
.default_settings ⇒ Object
62 63 64 65 66 67 |
# File 'lib/legion/extensions/llm/fleet/settings.rb', line 62 def default_settings return ::Legion::Extensions::Llm.default_settings if ::Legion::Extensions::Llm.respond_to?(:default_settings) {} end |
.dig(hash, *keys) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/legion/extensions/llm/fleet/settings.rb', line 40 def dig(hash, *keys) keys.reduce(hash) do |current, key| break nil unless current.respond_to?(:key?) symbol_key = key.respond_to?(:to_sym) ? key.to_sym : key string_key = key.to_s if current.key?(symbol_key) current[symbol_key] elsif current.key?(string_key) current[string_key] end end end |
.safe_fetch(source, key) ⇒ Object
54 55 56 57 58 59 60 |
# File 'lib/legion/extensions/llm/fleet/settings.rb', line 54 def safe_fetch(source, key) source[key] || source[key.to_s] rescue StandardError => e handle_exception(e, level: :debug, handled: true, operation: 'llm.fleet.settings.safe_fetch', key: key.to_s) nil end |
.value(*path, default:) ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'lib/legion/extensions/llm/fleet/settings.rb', line 14 def value(*path, default:) configured_llm_settings.each do |configured| found = dig(configured, *path) return found unless found.nil? end fallback = dig(default_settings, *path) fallback.nil? ? default : fallback end |