LangChain.Utils.BedrockConfig (LangChain v0.6.0)

Copy Markdown View Source

Configuration for AWS Bedrock.

Examples

For applications hosted in AWS, ExAws caches temporary credentials (when running on AWS), so in the credentials function you can pull the current cached credentials from ExAws.

ChatAnthropic.new!(%{
  model: "anthropic.claude-3-5-sonnet-20241022-v2:0",
  bedrock: %{
    credentials: fn ->
      ExAws.Config.new(:s3)
      |> Map.take([:access_key_id, :secret_access_key])
      |> Map.to_list()
    end,
    region: "us-west-2"
  }
})

For applications hosted anywhere, you can configure the Bedrock settings into the LangChain config like this (recommended for config/runtime.exs):

config :langchain,
  aws_access_key_id: System.fetch_env!("AWS_ACCESS_KEY_ID"),
  aws_secret_access_key: System.fetch_env!("AWS_SECRET_ACCESS_KEY"),
  aws_region: System.get_env("AWS_REGION", "us-west-1"),
  aws_session_token: System.get_env("AWS_SESSION_TOKEN") # optional

Then, when you want to later use a Bedrock Anthropic model, this is will load it:

  ChatAnthropic.new!(%{
    model: "anthropic.claude-3-5-sonnet-20241022-v2:0",
    bedrock: BedrockConfig.from_application_env!()
  })

Summary

Functions

Loads the Bedrock config settings from the previously configured Application settings.

Types

t()

@type t() :: %LangChain.Utils.BedrockConfig{
  anthropic_version: term(),
  credentials: term(),
  region: term()
}

Functions

aws_sigv4_opts(bedrock)

changeset(bedrock, attrs)

from_application_env!()

Loads the Bedrock config settings from the previously configured Application settings.

config/runtime.exs:

config :langchain,
  aws_access_key_id: System.fetch_env!("AWS_ACCESS_KEY_ID"),
  aws_secret_access_key: System.fetch_env!("AWS_SECRET_ACCESS_KEY"),
  aws_region: System.get_env("AWS_REGION", "us-west-1"),
  aws_session_token: System.get_env("AWS_SESSION_TOKEN") # optional

url(bedrock_config, list)