Class: Legion::Extensions::Llm::Bedrock::Provider
- Inherits:
-
Provider
- Object
- Provider
- Legion::Extensions::Llm::Bedrock::Provider
show all
- Extended by:
- ClassMethods
- Includes:
- ClientHelpers, ConverseHelpers, DispatchHelpers, InvokeModelHelpers, ModelCatalogHelpers, Logging::Helper
- Defined in:
- lib/legion/extensions/llm/bedrock/provider.rb,
lib/legion/extensions/llm/bedrock/provider/constants.rb,
lib/legion/extensions/llm/bedrock/provider/class_methods.rb,
lib/legion/extensions/llm/bedrock/provider/client_helpers.rb,
lib/legion/extensions/llm/bedrock/provider/converse_helpers.rb,
lib/legion/extensions/llm/bedrock/provider/dispatch_helpers.rb,
lib/legion/extensions/llm/bedrock/provider/invoke_model_helpers.rb,
lib/legion/extensions/llm/bedrock/provider/model_catalog_helpers.rb
Overview
Static model catalog, alias table, context-window facts, and
inference-profile prefix list extracted so the primary provider.rb
file stays within Metrics/ClassLength.
Defined Under Namespace
Modules: Capabilities, ClassMethods, ClientHelpers, ConverseHelpers, DispatchHelpers, InvokeModelHelpers, ModelCatalogHelpers
Constant Summary
collapse
- STATIC_MODELS =
[
{ model: 'anthropic.claude-3-haiku-20240307-v1:0', alias: 'claude-3-haiku' },
{ model: 'anthropic.claude-sonnet-4-20250514-v1:0', alias: 'anthropic.claude-sonnet-4' },
{ model: 'anthropic.claude-sonnet-4-20250514-v1:0', alias: 'claude-sonnet-4-6' },
{ model: 'anthropic.claude-sonnet-4-20250514-v1:0', alias: 'claude-sonnet-4-5-20241022' },
{ model: 'anthropic.claude-opus-4-20250515-v1:0', alias: 'claude-opus-4-8' },
{ model: 'anthropic.claude-haiku-4-20250506-v1:0', alias: 'claude-haiku-4-5' },
{ model: 'amazon.titan-text-express-v1', alias: 'titan-text-express' },
{ model: 'amazon.titan-embed-text-v2:0', alias: 'titan-embed-text-v2', usage_type: :embedding },
{ model: 'meta.llama3-2-11b-instruct-v1:0', alias: 'llama-3.2-11b-instruct' },
{ model: 'mistral.mistral-large-3-675b-instruct', alias: 'mistral-large-3' }
].freeze
- ALIASES =
STATIC_MODELS.to_h { |entry| [entry.fetch(:alias), entry.fetch(:model)] }.freeze
- CONTEXT_WINDOWS =
{
'anthropic.claude-sonnet-4' => 200_000,
'anthropic.claude-haiku-4' => 200_000,
'anthropic.claude-opus-4' => 200_000,
'anthropic.claude-3-5-sonnet' => 200_000,
'anthropic.claude-3-5-haiku' => 200_000,
'anthropic.claude-3-haiku' => 200_000,
'anthropic.claude-3-opus' => 200_000,
'anthropic.claude-3-sonnet' => 200_000,
'meta.llama3' => 128_000,
'meta.llama3-1' => 128_000,
'meta.llama3-2' => 128_000,
'meta.llama3-3' => 128_000,
'mistral.mistral-large' => 128_000,
'mistral.mistral-small' => 128_000,
'amazon.titan-text-express' => 8_192,
'amazon.titan-text-premier' => 32_000,
'amazon.nova-pro' => 300_000,
'amazon.nova-lite' => 300_000,
'amazon.nova-micro' => 128_000
}.freeze
ClassMethods::INFERENCE_PROFILE_PREFIXES
Instance Method Summary
collapse
capabilities, configuration_options, configuration_requirements, default_tier, default_transport, inference_profile_id, normalize_geo_prefix, registry_publisher, resolve_model_id, slug
#chat, #complete, #count_tokens, #embed, #stream
#discover_live_offerings, #discover_offerings, #discovery_registry_readiness, #health, #list_models, #log_discover_complete, #log_model_discovered, #offering_for, #readiness
Instance Method Details
#api_base ⇒ Object
68
69
70
|
# File 'lib/legion/extensions/llm/bedrock/provider.rb', line 68
def api_base
config.bedrock_endpoint || "https://bedrock-runtime.#{region}.amazonaws.com"
end
|
#completion_url ⇒ Object
72
|
# File 'lib/legion/extensions/llm/bedrock/provider.rb', line 72
def completion_url = 'Converse'
|
#count_tokens_url ⇒ Object
76
|
# File 'lib/legion/extensions/llm/bedrock/provider.rb', line 76
def count_tokens_url = 'CountTokens'
|
#embedding_url ⇒ Object
75
|
# File 'lib/legion/extensions/llm/bedrock/provider.rb', line 75
def embedding_url(**) = 'InvokeModel'
|
#geo_prefix ⇒ Object
82
83
84
85
|
# File 'lib/legion/extensions/llm/bedrock/provider.rb', line 82
def geo_prefix
configured = config.bedrock_geo_prefix if config.respond_to?(:bedrock_geo_prefix)
self.class.normalize_geo_prefix(configured || settings[:geo_prefix])
end
|
#models_url ⇒ Object
74
|
# File 'lib/legion/extensions/llm/bedrock/provider.rb', line 74
def models_url = 'ListFoundationModels'
|
#region ⇒ Object
78
79
80
|
# File 'lib/legion/extensions/llm/bedrock/provider.rb', line 78
def region
config.bedrock_region || settings[:region] || 'us-east-1'
end
|
#stream_url ⇒ Object
73
|
# File 'lib/legion/extensions/llm/bedrock/provider.rb', line 73
def stream_url = 'ConverseStream'
|
#translator ⇒ Object
60
61
62
|
# File 'lib/legion/extensions/llm/bedrock/provider.rb', line 60
def translator
@translator ||= Translator.new(region: region)
end
|