in lib/anthropic/bedrock/client.rb [52:115]
def initialize(
aws_region: nil,
base_url: nil,
max_retries: DEFAULT_MAX_RETRIES,
timeout: DEFAULT_TIMEOUT_IN_SECONDS,
initial_retry_delay: DEFAULT_INITIAL_RETRY_DELAY,
max_retry_delay: DEFAULT_MAX_RETRY_DELAY,
aws_access_key: nil,
aws_secret_key: nil,
aws_session_token: nil,
aws_profile: nil
)
begin
require("aws-sdk-bedrockruntime")
rescue LoadError
raise <<~MSG
In order to access Anthropic models on Bedrock you must require the `aws-sdk-bedrockruntime` gem.
You can install it by adding the following to your Gemfile:
gem "aws-sdk-bedrockruntime"
and then running `bundle install`.
Alternatively, if you are not using Bundler, simply run:
gem install aws-sdk-bedrockruntime
MSG
end
@aws_region, @aws_credentials = resolve_region_and_credentials(
aws_region: aws_region,
aws_secret_key: aws_secret_key,
aws_access_key: aws_access_key,
aws_session_token: aws_session_token,
aws_profile: aws_profile
)
@signer = Aws::Sigv4::Signer.new(
service: "bedrock",
region: @aws_region,
credentials: @aws_credentials
)
base_url ||= ENV.fetch(
"ANTHROPIC_BEDROCK_BASE_URL",
"https://bedrock-runtime.#{@aws_region}.amazonaws.com"
)
super(
base_url: base_url,
timeout: timeout,
max_retries: max_retries,
initial_retry_delay: initial_retry_delay,
max_retry_delay: max_retry_delay,
)
@messages = Anthropic::Resources::Messages.new(client: self)
@completions = Anthropic::Resources::Completions.new(client: self)
@beta = Anthropic::Resources::Beta.new(client: self)
end