内容提要
Amazon Bedrock是一项完全托管的AI服务,提供高性能基础模型和广泛功能,用于构建生成式AI应用。用户可以轻松尝试和评估顶级模型,并构建代理执行任务。该方案基于云原生开发,一键部署,方便集成内外部用户认证协议。用户可以使用自己的域名访问系统,并可以使用知识库功能。用户还可以通过更新资源升级和重新部署系统。
延伸解读
方案定位与适用边界
GenAI Bedrock Builder 是一个基于 Amazon Bedrock 的开源解决方案,旨在帮助用户快速搭建无服务器的生成式 AI 工具系统。文章明确提醒该方案仅用于 PoC,不代表亚马逊云科技官方提供的代码。因此,它更适合作为技术验证和原型开发的起点,而非直接用于生产环境。读者在评估时需注意其非官方性质,并根据自身业务需求进行二次开发和加固。
部署前的关键配置项
部署前需在 bin/config.ts 中配置项目参数,包括域名、区域、认证类型以及知识库和代理使用的模型 ID。其中 Region 需选择同时支持 Bedrock 和 OpenSearch Serverless 的区域,例如 us-east-1。认证类型目前仅支持 IAM,不可更改。这些配置直接影响后续资源创建和功能可用性,建议在部署前仔细核对,避免因区域或模型不匹配导致部署失败。
知识库功能的使用前提
知识库功能依赖 Bedrock Knowledge Base 和 OpenSearch Serverless 存储向量数据。部署完成后会自动创建名为 GenAIBuilderKnowledgeBase 的知识库,但初次使用时需手动上传文档并同步。支持的文档类型包括 .doc、.docx、.pdf、.xls、.xlsx、.html、.txt 和 .md。这意味着知识库并非开箱即用,用户需准备并上传自己的数据,才能进行检索增强生成。
更新与升级的注意事项
更新前端资源时,由于 CloudFront 缓存,代码不会立即生效,需手动使缓存失效。更新后端可修改 Lambda 代码或删除对应 CloudFormation Stack 后重新部署。更新 Bedrock Agent 功能后,需创建新的 Aliases 和 Version,并修改 genai-builder-alias-prod 指向新版本。此外,拉取最新代码前应备份 bin/config.ts,以免丢失已有配置。这些步骤要求用户对 AWS 服务有一定了解。
Q&A
GenAI Bedrock Builder 是什么?它和 Amazon Bedrock 有什么关系?
GenAI Bedrock Builder 是基于 Amazon Bedrock 服务开发的生成式 AI 解决方案,可以帮助快速自建无服务器的生成式 AI 解决方案,并应用到业务生产应用中。它利用 Amazon Bedrock 提供的完全托管基础模型和广泛功能来构建生成式 AI 应用。
GenAI Bedrock Builder 有哪些主要特点?
主要特点包括:基于云原生开发,贴合业务场景;一键部署,操作简单;独立用户认证,并方便集成内外部用户认证协议;无服务器进行开发和调度,按需计费;方便进行二次开发,扩展更多可能。
这个方案的技术架构是怎样的?前后端分别用了哪些 AWS 服务?
前端页面相关的 AWS 服务:CloudFront(CDN)、S3(静态资源存储)、Cognito(用户池用于登录认证)。后端接口相关的 AWS 服务:Lambda Function(后端逻辑代码),以及 Bedrock Model、Bedrock Agent、Bedrock Knowledge base、OpenSearch Serverless、S3、IAM 等。开发框架:前端 Cloudscape + React JS,后端 Node JS + AWS SDK,自动部署 AWS CDK + TypeScript。
部署 GenAI Bedrock Builder 需要做哪些环境准备?
需要准备:EC2 实例(AMI Amazon Linux 2023 x86,实例类型 ≥ T3.large,EBS ≥ 10GB,使用 SSH 公共访问);创建具有 AdministratorAccess 策略的 AWS IAM User 并保存 Access key 和 Secret key;登录 EC2 并升级 AWS CLI 至 ≥ 2.15.4;安装依赖组件 nvm ≥ 0.39.3、nodejs ≥ 18.19.0、npm ≥ 10.2.5、typescript、aws-cdk(CDK 版本 ≥ 2.116.1);配置 AWS CLI(区域建议 us-east-1)。
如何执行部署?部署完成后如何访问系统?
从 GitHub 获取源代码(git clone https://github.com/cloudswb/aws-genai-bedrock-builder.git),然后修改 bin/config.ts 初始化配置参数(如域名、子域名、区域、模型 ID 等),运行 sudo npm install 和 ./bin/deploy.sh 执行部署。部署完成后会打印 CloudFront 分发信息,其中 Site 信息为部署后的 CloudFront 网址,可直接打开访问。首次使用需在 Cognito 用户池中创建用户,然后使用该用户登录。
如何使用知识库功能?支持哪些文档类型?
方案部署完成后会自动创建一个名为“GenAIBuilderKnowledgeBase”的 Bedrock 知识库。初次使用时需要将知识文档上传到知识库中并同步后使用。当前支持的文档类型包括:.doc / .docx / .pdf / .xls / .xlsx / .html / .txt / .md。
如何删除或卸载已部署的资源?
执行命令:chmod +x ./bin/destroy.sh 和 ./bin/destroy.sh 即可卸载对应的资源信息。
如何升级或重新部署 GenAI Bedrock Builder?
可以通过删除局部资源重新部署来实现快速更新。更新前端网页资源:可自行本地编译 front-end 资源并上传到 S3,或在 CloudFormation 中删除名为“[GenAIBuilder]CloudFrontWebsiteStack”的 Stack 并重新部署。更新后端逻辑代码:直接修改相关 Lambda Function 的代码并 Deploy,或删除“[GenAIBuilder]LambdaFunctionStack”的 Stack 并重新部署。更新 Bedrock Agent 功能:在 Bedrock Agent 中修改高级提示词,然后创建新的 Aliases 和 Version,并修改 genai-builder-alias-prod 的 Aliases 指定新 Version。注意更新代码时需备份配置文件 bin/config.ts。