Module: Legion::Extensions::Llm::Bedrock::Provider::ClassMethods

Included in:
Legion::Extensions::Llm::Bedrock::Provider
Defined in:
lib/legion/extensions/llm/bedrock/provider/class_methods.rb

Overview

Class-level methods for the Bedrock provider, applied via extend.

Constant Summary collapse

INFERENCE_PROFILE_PREFIXES =
%w[anthropic. meta. mistral. cohere. ai21.].freeze

Instance Method Summary collapse

Instance Method Details

#capabilitiesObject



31
# File 'lib/legion/extensions/llm/bedrock/provider/class_methods.rb', line 31

def capabilities = Capabilities

#configuration_optionsObject



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/legion/extensions/llm/bedrock/provider/class_methods.rb', line 16

def configuration_options
  %i[
    bedrock_region
    bedrock_endpoint
    bedrock_access_key_id
    bedrock_secret_access_key
    bedrock_session_token
    bedrock_geo_prefix
    bedrock_profile
    bedrock_stub_responses
    bearer_token
  ]
end

#configuration_requirementsObject



30
# File 'lib/legion/extensions/llm/bedrock/provider/class_methods.rb', line 30

def configuration_requirements = []

#default_tierObject



14
# File 'lib/legion/extensions/llm/bedrock/provider/class_methods.rb', line 14

def default_tier = :cloud

#default_transportObject



13
# File 'lib/legion/extensions/llm/bedrock/provider/class_methods.rb', line 13

def default_transport = :aws_sdk

#inference_profile_id(model, geo_prefix: 'us', region: nil) ⇒ Object



41
42
43
44
45
46
47
48
49
# File 'lib/legion/extensions/llm/bedrock/provider/class_methods.rb', line 41

def inference_profile_id(model, geo_prefix: 'us', region: nil)
  return model if model.start_with?('arn:')

  canonical = model.sub(/\A(?:us|eu|ap)\./, '')
  return canonical unless INFERENCE_PROFILE_PREFIXES.any? { |p| canonical.start_with?(p) }

  prefix = normalize_geo_prefix(geo_prefix || region)
  "#{prefix}.#{canonical}"
end

#normalize_geo_prefix(value) ⇒ Object



51
52
53
54
# File 'lib/legion/extensions/llm/bedrock/provider/class_methods.rb', line 51

def normalize_geo_prefix(value)
  candidate = value.to_s.downcase
  %w[us eu ap].include?(candidate) ? candidate : 'us'
end

#registry_publisherObject



33
34
35
# File 'lib/legion/extensions/llm/bedrock/provider/class_methods.rb', line 33

def registry_publisher
  Legion::Extensions::Llm::Bedrock.registry_publisher
end

#resolve_model_id(model_id) ⇒ Object



37
38
39
# File 'lib/legion/extensions/llm/bedrock/provider/class_methods.rb', line 37

def resolve_model_id(model_id, **)
  ALIASES.fetch(model_id.to_s, model_id.to_s)
end

#slugObject



12
# File 'lib/legion/extensions/llm/bedrock/provider/class_methods.rb', line 12

def slug = 'bedrock'