使用亚马逊 A SageMaker I 笔记本运行 Amazon Bedrock API 请求示例 - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用亚马逊 A SageMaker I 笔记本运行 Amazon Bedrock API 请求示例

本节将指导你使用亚马逊 A SageMaker I 笔记本在 Amazon Bedrock 中尝试一些常见的操作,以测试你的 Amazon Bedrock 角色权限设置是否正确。在运行以下示例之前,应检查您是否满足了以下先决条件:

先决条件

  • 您拥有 AWS 账户 并有权访问具有 Amazon Bedrock 必要权限的角色。否则,请按照已有 AWS 账户中的步骤操作。

  • 您已请求访问 Amazon Titan Text G1 - Express 模型。否则,请按照请求访问 Amazon Bedrock 基础模型中的步骤操作。

  • 执行以下步骤为 SageMaker AI 设置IAM权限并创建笔记本:

    1. 修改您已有 AWS 账户通过控制台设置的 Amazon Bedrock 角色的信任策略 CLI,或API。将以下信任策略附加到该角色,以允许 Amazon Bedrock 和 A SageMaker I 服务同时担任 Amazon Bedrock 角色:

      { "Version": "2012-10-17", "Statement": [ { "Sid": "BedrockTrust", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Sid": "SagemakerTrust", "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. 登录您刚刚修改了其信任策略的 Amazon Bedrock 角色。

    3. 按照本教程的创建 Amazon SageMaker AI 笔记本实例中的步骤进行操作,并指定您为创建 A SageMaker I 笔记本实例而创建的 Amazon Bedrock 角色。ARN

    4. 当笔记本实例的状态为时 InService,选择该实例,然后选择打开 JupyterLab

打开 SageMaker AI 笔记本后,您可以尝试以下示例:

列出 Amazon Bedrock 必须提供的基础模型

以下示例使用 Amazon Bedrock 客户端运行该ListFoundationModels操作。 ListFoundationModels列出了您所在地区的 Amazon Bedrock 中可用的基础模型 (FMs)。SDK为 Python 脚本运行以下命令来创建 Amazon Bedrock 客户端并测试该ListFoundationModels操作:

# Use the ListFoundationModels API to show the models that are available in your region. import boto3 # Create an &BR; client in the &region-us-east-1; Region. bedrock = boto3.client( service_name="bedrock" ) bedrock.list_foundation_models()

如果此脚本成功,响应会返回一个包含 Amazon Bedrock 中可用基础模型的列表。

向模型提交文本提示并生成响应

以下示例使用 Amazon Bedrock 客户端运行 Converse 操作。Converse 允许您提交提示以生成模型响应。SDK为 Python 脚本运行以下命令来创建 Amazon Bedrock 运行时客户端并测试 C onverse 操作:

# Use the Conversation API to send a text message to Amazon Titan Text G1 - Express. import boto3 from botocore.exceptions import ClientError # Create an Amazon Bedrock Runtime client. brt = boto3.client("bedrock-runtime") # Set the model ID, e.g., Amazon Titan Text G1 - Express. model_id = "amazon.titan-text-express-v1" # Start a conversation with the user message. user_message = "Describe the purpose of a 'hello world' program in one line." conversation = [ { "role": "user", "content": [{"text": user_message}], } ] try: # Send the message to the model, using a basic inference configuration. response = brt.converse( modelId=model_id, messages=conversation, inferenceConfig={"maxTokens": 512, "temperature": 0.5, "topP": 0.9}, ) # Extract and print the response text. response_text = response["output"]["message"]["content"][0]["text"] print(response_text) except (ClientError, Exception) as e: print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}") exit(1)

如果此命令成功,响应会返回模型为响应提示而生成的文本。