通过以下方式运行 Amazon Bedrock API 请求示例 AWS SDK适用于 Python (Boto3) - Amazon Bedrock

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

通过以下方式运行 Amazon Bedrock API 请求示例 AWS SDK适用于 Python (Boto3)

本节将指导您尝试使用 Amazon Bedrock 中的一些常见操作 AWS Python 以测试您的权限和身份验证设置是否正确。在运行以下示例之前,应检查是否满足了以下先决条件:

先决条件

使用您创建的 Amazon Bedrock 角色,测试您的权限和访问密钥是否已正确设置 Amazon Bedrock。这些示例假设您已经使用访问密钥配置了环境。请注意以下几点:

  • 最低限度,您必须指定您的 AWS 访问密钥 ID 和 AWS 秘密访问密钥。

  • 如果您使用的是临时证书,则还必须附上 AWS 会话令牌。

如果您未在环境中指定证书,则可以在为 Amazon Bedrock 操作创建客户端时指定这些证书。为此,请在创建客户端时包含aws_access_key_idaws_secret_access_key、和(如果您使用的是短期证书)aws_session_token参数。

列出 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 中可用的基础模型列表。

向模型提交文本提示并使用以下命令生成文本回复 InvokeModel

以下示例使用 Amazon Bedrock 客户端运行该InvokeModel操作。 InvokeModel允许您提交提示以生成模型响应。SDK为 Python 脚本运行以下命令以创建 Amazon Bedrock 运行时客户端,并使用该操作生成文本响应:

# Use the native inference API to send a text message to Amazon Titan Text G1 - Express. import boto3 import json 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" # Define the prompt for the model. prompt = "Describe the purpose of a 'hello world' program in one line." # Format the request payload using the model's native structure. native_request = { "inputText": prompt, "textGenerationConfig": { "maxTokenCount": 512, "temperature": 0.5, "topP": 0.9 }, } # Convert the native request to JSON. request = json.dumps(native_request) try: # Invoke the model with the request. response = brt.invoke_model(modelId=model_id, body=request) except (ClientError, Exception) as e: print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}") exit(1) # Decode the response body. model_response = json.loads(response["body"].read()) # Extract and print the response text. response_text = model_response["results"][0]["outputText"] print(response_text)

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

向模型提交文本提示并使用 Converse 生成文本回复

以下示例使用 Amazon Bedrock 客户端运行 C onverse 操作。我们建议InvokeModel在支持时使用 op Converse eration over,因为它可以统一各个 Amazon Bedrock 模型的推理请求并简化多回合对话的管理。SDK为 Python 脚本运行以下命令以创建 Amazon Bedrock 运行时客户端,并使用该Converse操作生成文本响应:

# 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)

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