Module: Legion::Extensions::Llm::Ollama::ProviderSettings
- Defined in:
- lib/legion/extensions/llm/ollama/provider_settings.rb
Overview
Builds provider defaults while inheriting shared lex-llm defaults.
Class Method Summary collapse
- .base_settings ⇒ Object
- .build(family:, instance:) ⇒ Object
- .deep_dup(value) ⇒ Object
- .deep_merge(left, right) ⇒ Object
Class Method Details
.base_settings ⇒ Object
29 30 31 32 33 |
# File 'lib/legion/extensions/llm/ollama/provider_settings.rb', line 29 def base_settings return {} unless ::Legion::Extensions::Llm.respond_to?(:default_settings) deep_dup(::Legion::Extensions::Llm.default_settings) end |
.build(family:, instance:) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/legion/extensions/llm/ollama/provider_settings.rb', line 11 def build(family:, instance:) deep_merge( base_settings, { enabled: true, provider_family: family, discovery: { enabled: true, interval_seconds: 300 }, instances: { default: { enabled: true, credentials: nil, fleet: { enabled: false, consumer_priority: 0, prefetch: 1 } }.merge(instance) } } ) end |
.deep_dup(value) ⇒ Object
35 36 37 38 39 40 41 42 43 44 |
# File 'lib/legion/extensions/llm/ollama/provider_settings.rb', line 35 def deep_dup(value) case value when Hash value.to_h { |key, inner_value| [key, deep_dup(inner_value)] } when Array value.map { |inner_value| deep_dup(inner_value) } else value end end |
.deep_merge(left, right) ⇒ Object
46 47 48 49 50 |
# File 'lib/legion/extensions/llm/ollama/provider_settings.rb', line 46 def deep_merge(left, right) left.merge(right) do |_key, left_value, right_value| left_value.is_a?(Hash) && right_value.is_a?(Hash) ? deep_merge(left_value, right_value) : right_value end end |