Вызов Claude через Bedrock немного отличается от того, как вы бы вызывали Claude при использовании клиентских SDK от Anthropic. Это руководство проведет вас через процесс выполнения вызова API к Claude на Bedrock на Python или TypeScript.

Обратите внимание, что это руководство предполагает, что вы уже зарегистрировались для учетной записи AWS и настроили программный доступ.

Установите и настройте AWS CLI

  1. Установите версию AWS CLI не ниже версии 2.13.23
  2. Настройте ваши учетные данные AWS с помощью команды AWS configure (см. Настройка AWS CLI) или найдите ваши учетные данные, перейдя к “Command line or programmatic access” в вашей панели AWS и следуя инструкциям во всплывающем окне.
  3. Убедитесь, что ваши учетные данные работают:
Shell
aws sts get-caller-identity  

Установите SDK для доступа к Bedrock

Клиентские SDK от Anthropic поддерживают 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

Список доступных моделей

Следующие примеры показывают, как вывести список всех моделей Claude, доступных через Bedrock:

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

Выполнение запросов

Следующие примеры показывают, как сгенерировать текст из Claude 3 Sonnet на Bedrock:

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 здесь.