initialize

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