亚马逊AWS官方博客

手把手教你一键安装 Sample Client For Amazon Bedrock

软件概述

Sample Client For Amazon Bedrock 是一款针对与 Amazon Bedrock 服务的个人应用客户端,本文简称 Sample Client。软件的服务端需要部署在 AWS 海外区域(例如 us-east-1),仅需在一个 Amazon 账号内部署,即可实现组织内的多个用户同时使用。帮助有兴趣的 IT 人员和开发人员体验和评测 Bedrock 集成的多种生成式 AI 基础模型的能力(Anthropic Claude 等基础模型的使用需遵守模型提供商的服务使用限制要求)。

Sample Client 的开发团队根据不同的用户群体和使用场景,设计了 3 种不同的服务端架构,提供了相应的自动化部署脚本。这 3 种架构分别如下:

  1. Web+AK/SK 架构,适用于拥有账号的个人用户或组织账号,通过在 Web 配置端填入 AK/SK,即可使用授权用户访问 Amazon Bedrock 服务。
  2. Web+Cognito 架构,提供了应用层用户管理服务 Cognito 集成,由服务端管理用户接入验证,同时允许组织内部没有亚马逊账号的员工用户,并行访问 Amazon Bedrock 和基础模型服务,适合组织内的 IT,开发和运维等人员,快捷上手使用。
  3. Web+BRConnector 架构,适用于有 Bedrock API 转发需求和严格的成本分摊要求的组织,BRConnector 提供了不同权限的用户定义,能够自动记录每次请求的成本等。为组织客户提供更细粒度的管理能力。

本文将重点介绍 Web+Cognito 架构,以及 Web+Cognito 和 Web+BRConnector 的 2 种架构的自动化部署方法,帮助对亚马逊云科技服务了解不多的用户快速部署和应用 Sample Client For Amazon Bedrock 和多种业界领先的基础模型。

架构说明

Sample Client For Amazon Bedrock 服务端必须部署在 AWS 海外的区域,按照各个基础模型的使用限制和规范调用推理服务。自动化部署脚本将在用户自己的账号内部署一套事件驱动的 API 调用架构,服务端的架构大同小异,以 Web+Cognito 架构为例,架构如下图,所涉及的主要服务包括:

  • CloudFront 服务:提供客户端页面的内容分发网络加速服务,保障多用户并行使用时的用户体验。
  • S3 对象存储服务:提供 Web 端页面的托管服务。
  • API Gateway 服务:承接前端页面发送的 API 请求。包括用户身份认证和 Bedrock 推理请求等,并将请求转发到后面的 Lambda 函数。
  • Cognito 服务:提供应用层的用户管理服务,实现非 AWS 账号用户也可以使用 Sample Client。
  • Lambda 服务:提供 Serverless 计算服务,执行 API 请求的转换,封装等。并将请求发送到 Bedrock 服务,实现 Bedrock 后端各种基础模型的推理调用。
  • Bedrock 服务:提供多种 GenAI 基础模型的统一管理和模型推理请求处理。

Sample Client For Amazon Bedrock 应用开发团队已经提供了上述架构的自动化脚本。用户无需参与个体服务的配置,就可以在 3~5 分钟之内一键部署整套应用。应用代码和脚本链接如下:

软件代码:https://github.com/aws-samples/sample-client-for-amazon-bedrock

部署配置:https://sample-client-for-bedrock-clouformation.s3.us-west-2.amazonaws.com/BRClientWebDeployCognito.json

环境准备

Sample Client For Amazon Bedrock 的部署需要具备 2 个前提条件:

  1. 准备一个海外亚马逊的云计算账号。账号为 12 位的数字串,如需要创建账号,请联系服务的客户经理或官网账号指导
  2. 具备对应的基础模型访问授权。登陆亚马逊海外的某个区域(例 us-east-1 ),合规申请 Claude 3 等基础模型的访问授权。操作步骤如下:

登陆 AWS 海外控制台

输入 12 位的账号 ID,IAM 用户名和密码登陆到平台服务台。

用户可以结合自己的使用习惯在右上角配置栏,配置熟悉的语言,在区域中选择期望的区域。

在服务搜索栏输入 bedrock,选择并进入出现的 Amazon Bedrock 服务。

打开左侧的导航栏,并下拉到最后。

选择模型访问,编辑模型访问。

选择需要访问的模型,Brclient 建议开通 Claude 3 Sonnet, Haiku 模型,完成后提交申请。等候几分钟后,既可看到模型【Access granted】,表示模型可以正常访问。

安装步骤

Sample Client For Amazon Bedrock 应用可以直接采用 CloudFormation 服务执行一键部署,Github 提供了 WebUI,BRConnector 集成和 Cognito 集成 3 种部署方式,本说明主要提供 Web+Cognito 集成方案和 BRConnector 集成方案的部署说明。

Cognito 集成方案的部署

Cognito 是亚马逊云科技提供的应用层用户管理服务,提供了服务端管理用户接入验证,允许组织内部非亚马逊账号的员工用户访问 Amazon Bedrock 和基础模型服务,适合组织内的 IT、开发和运维等人员快捷上手使用。方案的部署步骤如下:

在服务的搜索栏输入“Cloudformation”,选择并进入 CloudFormation 服务。

选择创建堆栈。

在代码链接中填入以下配置脚本的路径。

https://sample-client-for-bedrock-clouformation.s3.us-west-2.amazonaws.com/BRClientWebDeployCognito.json

输入堆栈名称,连续 2 次【下一步】。

拉到页面的最下面后,勾选同意复选框,选提交开始创建堆栈。

部署过程约 3~5 分钟,可以通过刷新按钮可以看到部署进度。

完成部署后,可以在【output】页签,获得 Sample Client For Amazon Bedrock 的登陆入口。

BRConnector 集成方案的部署

BRConnector 集成方案适用于有 Bedrock API 转发需求和严格的成本分摊要求的组织,该方案提供了不同权限的用户定义,能够自动记录每次请求的成本等。为组织客户提供更细粒度的管理能力。方案的部署步骤如下:

通过控制台进入 Amazon CloudFormation 服务,创建新的 stack(服务控制台截图请参考 Cognito 集成方案的部署部分)。 在配置界面填入以下地址,或下载配置文件后,本地上传:

https://sample-client-for-bedrock-clouformation.s3.us-west-2.amazonaws.com/quick-build-brconnector.yaml
或者
https://github.com/aws-samples/sample-connector-for-bedrock/raw/main/cloudformation/quick-build-brconnector.yaml

或通过以下链接直接跳转到 CloudFormation 服务,装置部署配置脚本:

https://console.aws.amazon.com/cloudformation/home#/stacks/create/template?stackName=SampleClientForBedrockBRConnector&templateURL=https://sample-client-for-bedrock-clouformation.s3.us-west-2.amazonaws.com/quick-build-brconnector.yaml

输入自定义的 stack 名称:clientbedrock001,指定一个包含了 1 个公有子网,2 个私有子网的 VPC,VPC 可以采用默认 VPC,或自行创建符合上述条件的 VPC。

Note:StackName 不能包含大写字母。

其他实例类型和计算运行资源,可以基于说明修改,也可以采用默认值,继续下一步,勾选协议,全部同意后,部署环境。

完成部署后,可通过 Stack 的 output 获取 CloudFrontEc2URL,MySSMParameterAdminKey 和 MySSMParameterFirstUserKey,验证部署是否成功。

通过 EC2 本地验证 BRConnector server

curl "http://localhost:8866/admin/api-key/list" \
-H "Authorization: Bearer API_KEY "
## output sample
"success":true,"data":{"items":[{"id":1,"group_id":1,"api_key":"*****","name":"adminuser","email":"","role":"admin","total_fee":"0.0000000000","balance":"0.0000000000","month_fee":"0.0000000000","month_quota":"20.0000000000","created_at":"2024-09-28T06:21:14.865Z","updated_at":"2024-09-28T06:21:14.865Z","group_name":"group 1"}],"total":1,"limit":20,"offset":0}}

用户可以通过 BRConnector UI 管理界面,登陆验证。

https://CloudFrontEc2URL/manager

Host 输入 https://CloudFrontEc2URL,API key 输入 MySSMParameterFirstUserKey 后,可登陆到 UI 操作界面。

浏览器地址栏输入 https://CloudFrontEc2URL/brclient 可以直接开启后续的模型使用配置。

使用配置与测试

Sample Client For Amazon Bedrock 的使用需要配置用户和模型调用配置。操作界面的 BRConnector 集成方案和 Cognito 集成方案会有不同。BRConnector 集成方案的 HOST 和 API 可以注册到开源的 OpenAI Client 使用。操作方法和过程基本是一致的,所以后续内容仅以 Cognito 集成方案为主要介绍,避免内容赘述。

配置用户

用前述同样的方法搜索服务,选择并进入 cognito 服务,选择导航栏的用户池。

选择“BRClient”开头的用户池,该用户池为部署代码自动创建的。点击进入后,可以添加和管理用户。

复制 Cloudformation 堆栈【output】里面的入口地址,在浏览器打开应用程序。输入在 cognito 内创建的用户名/密码。即可实现 client 的登陆。

配置模型参数

左下角提供了模型的参数配置功能,包括模型选择,和 input/output 参数的配置。

模型调用测试

可以通过对话机器人执行基础模型服务调用。包括文本生成,代码生成,图像分析等。

代码生成的推理调用案例。

Client 同样支持用户自定义 PE 提示词工程,用户可以通过 mask,定义自己的模型场景。提供更为具体的推理应用。

更多的应用测试指导,请查阅 Sample Client For Amazon Bedrock 的入门指南

其他资源

Claude 3 具备强大的语言理解能力和多模型分析能力,可以参考一下 workshop 链接,结合 Sample Client 的界面功能来体验生成式 AI 的各种能力。

https://catalog.us-east-1.prod.workshops.aws/workshops/17879811-bd5c-4530-8b85-f0042472f2a1


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。

参考资料

https://aws-samples.github.io/sample-connector-for-bedrock/home/quick-start/

https://github.com/aws-samples/sample-connector-for-bedrock

https://github.com/aws-samples/sample-client-for-amazon-bedrock

https://docs.aws.amazon.com/bedrock/latest/userguide/model-access-permissions.html

https://catalog.us-east-1.prod.workshops.aws/workshops/17879811-bd5c-4530-8b85-f0042472f2a1

本篇作者

William Yee

亚马逊云科技资深解决方案架构师。主要技术方向为云基础设施,容器和安全。具备全面的云计算技术知识和丰富的企业上云实践经验。