Module: Legion::Extensions::Llm::Anthropic::ProviderSettings

Defined in:
lib/legion/extensions/llm/anthropic/provider_settings.rb

Overview

Builds provider defaults while inheriting shared lex-llm defaults.

Class Method Summary collapse

Class Method Details

.base_settingsObject



29
30
31
32
33
# File 'lib/legion/extensions/llm/anthropic/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/anthropic/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/anthropic/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/anthropic/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