通过 Bedrock 调用 Claude 与使用 Anthropic 的客户端 SDK 调用 Claude 略有不同。本指南将引导您完成在 Bedrock 上使用 Python 或 TypeScript 对 Claude 进行 API 调用的过程。

请注意,本指南假设您已经注册了 AWS 账户并配置了编程访问。

安装和配置 AWS CLI

  1. 安装版本为 2.13.23 或更高的 AWS CLI
  2. 使用 AWS configure 命令配置您的 AWS 凭证(参见配置 AWS CLI),或在 AWS 仪表板中导航到”命令行或编程访问”并按照弹出模式中的说明找到您的凭证。
  3. 验证您的凭证是否正常工作:
Shell
aws sts get-caller-identity  

安装用于访问 Bedrock 的 SDK

Anthropic 的客户端 SDK 支持 Bedrock。您也可以直接使用 AWS SDK,如 boto3

pip install -U "anthropic[bedrock]"

访问 Bedrock

订阅 Anthropic 模型

转到 AWS Console > Bedrock > Model Access 并请求访问 Anthropic 模型。请注意,Anthropic 模型的可用性因地区而异。有关最新信息,请参阅 AWS 文档

API 模型名称

模型Bedrock API 模型名称
Claude 3 Haikuanthropic.claude-3-haiku-20240307-v1:0
Claude 3 Sonnetanthropic.claude-3-sonnet-20240229-v1:0
Claude 3 Opusanthropic.claude-3-opus-20240229-v1:0

列出可用的模型

以下示例显示如何打印通过 Bedrock 可用的所有 Claude 模型的列表:

aws bedrock list-foundation-models --region=us-west-2 --by-provider anthropic --query "modelSummaries[*].modelId"

发送请求

以下示例显示如何在 Bedrock 上从 Claude 3 Sonnet 生成文本:

from anthropic import AnthropicBedrock

client = AnthropicBedrock(
    # 通过提供以下密钥进行身份验证,或使用默认的 AWS 凭证提供程序,例如
    # 使用 ~/.aws/credentials 或 "AWS_SECRET_ACCESS_KEY" 和 "AWS_ACCESS_KEY_ID" 环境变量。
    aws_access_key="<access key>",
    aws_secret_key="<secret key>",
    # 可以使用 aws_session_token 提供临时凭证。
    # 阅读更多信息:https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html。
    aws_session_token="<session_token>",
    # aws_region 更改发送请求的 AWS 区域。默认情况下,我们读取 AWS_REGION,
    # 如果不存在,则默认为 us-east-1。请注意,我们不会从 ~/.aws/config 中读取区域。
    aws_region="us-west-2",
)

message = client.messages.create(
    model="anthropic.claude-3-sonnet-20240229-v1:0",
    max_tokens=256,
    messages=[{"role": "user", "content": "Hello, world"}]
)
print(message.content)

有关更多详细信息,请参阅我们的客户端 SDK,以及此处的官方 Bedrock 文档。