本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置 Amazon Bedrock API
本节介绍如何设置您的环境以进行 Amazon Bedrock API 调用,并提供了常见使用案例的示例。您可以使用 AWS Command Line Interface (AWS CLI)、 AWS 软件开发工具包或 SageMaker 笔记本来访问 Amazon Bedrock API。
在访问 Amazon Bedrock API 之前,您需要申请访问计划使用的基础模型。
有关 API 操作和参数的详细信息,请参阅 Amazon Bedrock API 参考。
以下资源提供了有关 Amazon Bedrock API 的更多信息。
-
AWS Command Line Interface
添加模型访问权限
重要
要使用任何根基模型,必须先请求获得对该模型的访问权限。如果您在请求模型访问权限之前尝试使用该模型(通过 API 或控制台),将会收到一条错误消息。有关更多信息,请参阅 模型访问权限。
Amazon Bedrock 端点
要以编程方式连接到 AWS 服务,请使用终端节点。有关可用于 Amazon Bedrock 的终端节点的信息, AWS 一般参考 请参阅中的 Amazon Bedrock 终端节点和配额一章。
Amazon Bedrock 提供以下服务端点。
-
bedrock
– 包含用于管理、训练和部署模型的控制层面 API。有关更多信息,请参阅 Amazon Bedrock 操作和 Amazon Bedrock 数据类型。 -
bedrock-runtime
— 包含数据平面 API,用于对托管在 Amazon Bedrock 中的模型发出推理请求。有关更多信息,请参阅 Amazon Bedrock 运行时操作和 Amazon Bedrock 运行时数据类型。 -
bedrock-agent
– 包含控制层面 API,用于创建和管理代理及知识库。有关更多信息,请参阅 Amazon Bedrock 代理操作和 Amazon Bedrock 代理数据类型。 -
bedrock-agent-runtime
— 包含用于调用代理和查询知识库的数据平面 API。有关更多信息,请参阅 Amazon Bedrock 代理运行时操作和 Amazon Bedrock 代理运行时数据类型。
设置 AWS CLI
-
如果您计划使用 CLI,请 AWS CLI 按照安装或更新最新版本的 AWS Command Line Interface 用户指南中的步骤进行安装和配置。
-
按照配置中的步骤,使用
aws configure
CLI 命令配置您的 AWS 证书 AWS CLI。
有关 AWS CLI 命令和操作,请参阅以下 CLI 参考资料:
设置 AWS SDK
AWS 软件开发套件 (SDK) 可用于许多流行的编程语言。每个软件开发工具包都提供 API、代码示例和文档,使开发人员能够更轻松地以其首选语言构建应用程序。SDK 会自动为您执行有用的任务,例如:
-
对您的服务请求进行加密签名
-
重试请求
-
处理错误响应
请参阅下表,查找有关每个软件开发工具包的一般信息和代码示例,以及每个软件开发工具包的 Amazon Bedrock API 参考资料。您也可以在以下位置找到代码示例使用 AWS 软件开发工具包的 Amazon Bedrock 的代码示例。
使用 SageMaker 笔记本电脑
你可以使用适用于 Python 的 SDK (Boto3) 从笔记本调用 Amazon Bedrock API 操作。 SageMaker
配置 SageMaker 角色
将 Amazon Bedrock 权限添加到将使用此 SageMaker 笔记本的 IAM 角色。
在 IAM 控制台中,执行以下步骤:
选择 IAM 角色,然后选择添加权限并从下拉列表中选择创建内联策略。
包括以下权限。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "bedrock:*", "Resource": "*" } ] }
向信任关系添加以下权限。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Sid": "", "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
测试运行时设置
将以下代码添加到笔记本并运行代码。
import boto3 import json bedrock = boto3.client(service_name='bedrock-runtime') body = json.dumps({ "prompt": "\n\nHuman:explain black holes to 8th graders\n\nAssistant:", "max_tokens_to_sample": 300, "temperature": 0.1, "top_p": 0.9, }) modelId = 'anthropic.claude-v2' accept = 'application/json' contentType = 'application/json' response = bedrock.invoke_model(body=body, modelId=modelId, accept=accept, contentType=contentType) response_body = json.loads(response.get('body').read()) # text print(response_body.get('completion'))
测试 Amazon Bedrock 设置
将以下代码添加到笔记本并运行代码。
import boto3 bedrock = boto3.client(service_name='bedrock') bedrock.get_foundation_model(modelIdentifier='anthropic.claude-v2')