Class: Riffer::Providers::AmazonBedrock
- Defined in:
- lib/riffer/providers/amazon_bedrock.rb
Overview
Amazon Bedrock provider for Claude and other foundation models. Requires the aws-sdk-bedrockruntime gem.
Constant Summary collapse
- ANTHROPIC_MODEL_PATTERN =
Matches Anthropic models on Bedrock — bare (
anthropic.claude-...) and cross-region (us.anthropic.claude-...) ids. /(?:^|\.)anthropic\./- FINISH_REASONS =
{ "end_turn" => :stop, "stop_sequence" => :stop, "max_tokens" => :length, "tool_use" => :tool_calls, "guardrail_intervened" => :content_filter, "content_filtered" => :content_filter }.freeze
Constants inherited from Base
Class Method Summary collapse
-
.semconv_provider_name ⇒ Object
The GenAI semconv well-known provider name.
-
.skills_adapter(model = nil) ⇒ Object
Returns the skill adapter for the Bedrock model — XML for Anthropic models (which Bedrock hosts alongside other vendors’), else Markdown.
Instance Method Summary collapse
-
#initialize(api_token: nil, region: nil, **options) ⇒ AmazonBedrock
constructor
– : (?api_token: String?, ?region: String?, **untyped) -> void.
Methods inherited from Base
Constructor Details
#initialize(api_token: nil, region: nil, **options) ⇒ AmazonBedrock
– : (?api_token: String?, ?region: String?, **untyped) -> void
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/riffer/providers/amazon_bedrock.rb', line 40 def initialize(api_token: nil, region: nil, **) depends_on "aws-sdk-bedrockruntime" api_token ||= Riffer.config.amazon_bedrock.api_token region ||= Riffer.config.amazon_bedrock.region @client = if api_token && !api_token.empty? Aws::BedrockRuntime::Client.new( region: region, token_provider: Aws::StaticTokenProvider.new(api_token), auth_scheme_preference: ["httpBearerAuth"], ** ) else Aws::BedrockRuntime::Client.new(region: region, **) end end |
Class Method Details
.semconv_provider_name ⇒ Object
The GenAI semconv well-known provider name. – : () -> String
34 35 36 |
# File 'lib/riffer/providers/amazon_bedrock.rb', line 34 def self.semconv_provider_name "aws.bedrock" end |
.skills_adapter(model = nil) ⇒ Object
Returns the skill adapter for the Bedrock model — XML for Anthropic models (which Bedrock hosts alongside other vendors’), else Markdown. – : (?String?) -> singleton(Riffer::Skills::Adapter)
26 27 28 29 |
# File 'lib/riffer/providers/amazon_bedrock.rb', line 26 def self.skills_adapter(model = nil) return Riffer::Skills::XmlAdapter if model && ANTHROPIC_MODEL_PATTERN.match?(model) Riffer::Skills::MarkdownAdapter end |