| AWS 上的生成式 AI 应用程序生成器| ?功能请求| ?错误报告|实施指南|
笔记:
AWS 解决方案上的生成式 AI 应用程序生成器 (GAAB) 提供了一个基于 Web 的管理仪表板,用于部署可定制的生成式 AI (Gen AI) 使用案例。此部署仪表板允许客户部署、试验和比较大型语言模型 (LLM) 用例的不同组合。一旦客户成功配置和优化了他们的用例,他们就可以将其部署投入生产并将其集成到他们的应用程序中。
Generative AI Application Builder 根据 Apache 2.0 许可证发布,面向想要试验和生产不同 Gen AI 用例的新手和经验丰富的用户。该解决方案使用 LangChain 开源软件 (OSS) 为不同的用例配置与您选择的大型语言模型 (LLM) 的连接。 GAAB 的第一个版本允许用户部署聊天用例,从而能够在聊天机器人样式的用户界面 (UI) 中查询用户的企业数据,以及支持自定义最终用户实现的 API。
GAAB 的一些功能包括:
有关详细的解决方案实施指南,请参阅 AWS 上的生成式 AI 应用程序生成器
下面的解决方案演练中提到了 3 个独特的用户角色:
笔记:
当 DevOps 用户部署部署仪表板时,以下组件将部署在 AWS 账户中:
Note: Although the Deployment dashboard can be launched in most AWS regions, the deployed use cases have some restrictions based on service availability. See Supported AWS Regions in the Implementation Guide for more details.
部署部署仪表板后,管理员用户就可以部署多个用例堆栈。当管理员用户部署用例堆栈时,以下组件将部署在 AWS 账户中:
笔记:
有两种部署到您的 AWS 账户的选项:
cdk deploy
以下是本地构建和部署的先决条件:
ensurepip
和pip
支持;但是,如果在没有这些软件包的环境中运行,您将需要手动安装它们(例如最小的 docker 映像)。有关详细信息,请参阅 pip 的安装指南。注意:使用您的 AWS 凭证配置 AWS CLI 或将其导出到 CLI 终端环境中。如果凭据无效或过期,运行cdk deploy
会产生错误。
另外,如果您尚未在此帐户和区域中运行cdk bootstrap
,请按照此处的说明将 cdk bootstrap 作为一次性进程执行,然后再继续执行以下步骤。
从 GitHub 克隆存储库后,完成以下步骤:
笔记:
source/infrastructure/cdk.json
中的cdk-asset-bucket
属性。该属性的值应该是cdk bootstrap
进程创建的存储桶名称。除非配置了存储桶名称,否则cdk bootstrap
进程会创建以下格式的存储桶: cdk-hnb659fds-assets--
(其中是部署解决方案的 AWS 账户 ID)具体的)。该存储库当前的值设置如下: "cdk-asset-bucket": "cdk-hnb659fds-assets-123456789012-us-east-1"
cd /source/infrastructure
npm install
npm run build
cdk synth
cdk deploy DeploymentPlatformStack --parameters AdminUserEmail=
注意:由于cdk deploy
是使用堆栈名称执行的,因此它不会综合基础架构文件夹中的其他 CloudFormation 堆栈。为了确保所有堆栈都是基于基础设施代码更改进行综合的,请确保cdk synth
。有关可以运行的 cdk 命令的完整列表,请参阅 Toolkit 命令
对于部署 LLM 聊天用例的部署仪表板,您还需要将合成的 CDK 资产(例如 lambda、合成的 CloudFormation 模板等)从source/infrastructure/cdk.out
目录暂存到您帐户中配置的 S3 存储桶部署时将从其中提取这些资源。为了轻松暂存这些资产,您可以使用source/stage-assets.sh
脚本。该脚本应从source
目录运行。
cd /source
./stage-assets.sh
运行时,脚本如下所示:
>>> ./stage-assets.sh
This script should be run from the 'source' folder
The region to upload CDK artifacts to (default:us-east-1)?
>>> us-west-2
>>> All assets will be uploaded to cdk-hnb659fds-assets-123456789-us-west-2
>>> Do you want to proceed? (y/n) y
您必须提供完整的区域名称作为脚本的第一个输入,如上例所示。
注意:每次代码库发生更改时都必须暂存资产,以获得最新的暂存资产。还建议在暂存之前运行cdk synth
。
请参阅创建自定义构建部分
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── Config
├── LICENSE.txt
├── NOTICE.txt
├── README.md
├── buildspec.yml
├── deployment
│ ├── build-open-source-dist.sh
│ ├── build-s3-dist.sh
│ ├── cdk-solution-helper
│ ├── clean-for-scan.sh
│ ├── get-cdk-version.js
│ └── manifest.yaml
| ├── run-unit-tests.sh [shell script that can run unit tests for the entire project]
├── pyproject.toml
├── pytest.ini
├── sonar-project.properties
└── source
├── images
├── infrastructure [CDK infrastructure]
├── lambda [Lambda functions for the application]
├── pre-build-lambda-layers.sh [pre-builds lambda layers for the project]
├── scripts [standalone utility scripts]
├── stage-assets.sh
├── test
├── ui-chat [Web App project for chat UI]
└── ui-deployment [Web App project for deployment dashboard UI]
└── docs
该项目提供了一个 docs 文件夹,您可以通过该文件夹访问示例 SageMaker 输入。由于 SageMaker 模型可以分别接收和输出各种输入和输出模式,因此该解决方案会向用户请求这些值以允许正确的模型调用。这使得该解决方案能够支持广泛的 SageMaker 模型。
输入模式本质上是模型的有效负载,其中包含实际值的占位符。占位符可以在运行时替换实际模型值,并由括在尖括号中的关键字表示,例如: <
。请注意, <
和<
分别是模型提示和温度的保留占位符。
模型的输出 JSONPath 为解决方案提供了从模型响应中检索 LLM 文本响应的路径。
请始终参阅模型文档和 SageMaker JumpStart jupyter 笔记本示例,以查看最新的模型负载和支持的参数。
运行以下命令:
git clone https://github.com/aws-solutions/
cd /source/infrastructure
npm install
注意:要运行单元测试,必须安装并运行 docker,并且必须配置有效的 AWS 凭证。
cd /deployment
chmod +x ./run-unit-tests.sh
./run-unit-tests.sh
export DIST_OUTPUT_BUCKET=my-bucket-name
export VERSION=my-version
cd /deployment
chmod +x ./build-s3-dist.sh
./build-s3-dist.sh $DIST_OUTPUT_BUCKET $SOLUTION_NAME $VERSION $CF_TEMPLATE_BUCKET_NAME
参数详情:
$DIST_OUTPUT_BUCKET - This is the global name of the distribution. For the bucket name, the AWS Region is added to the global name (example: 'my-bucket-name-us-east-1') to create a regional bucket. The lambda
artifacts should be uploaded to the regional buckets for the CloudFormation template to pick it up for deployment.
$SOLUTION_NAME - The name of This solution (example: generative-ai-application-builder-on-aws)
$VERSION - The version number of the change
$CF_TEMPLATE_BUCKET_NAME - The name of the S3 bucket where the CloudFormation templates should be uploaded
当您创建和使用存储桶时,我们建议您:
注意:您必须安装 AWS CLI。
aws s3 cp ./global-s3-assets/ s3://my-bucket-name-/generative-ai-application-builder-on-aws// --recursive --acl bucket-owner-full-control --profile aws-cred-profile-name
aws s3 cp ./regional-s3-assets/ s3://my-bucket-name-/generative-ai-application-builder-on-aws// --recursive --acl bucket-owner-full-control --profile aws-cred-profile-name
该解决方案包括两个独立的基于 React 的 Web 应用程序:部署仪表板 UI 和聊天 UI。两个用户界面都是使用 Vite 构建的,Vite 是一种用于现代 Web 项目的现代且快速的构建工具。
打开终端
导航到源目录
source
目录: cd /source
获取并更新运行时配置
使用适当的参数运行提供的setup_local_dev_server.py
脚本:
python setup_local_dev_server.py --ui-project-type --website
替换为ui-chat
或ui-deployment
。
替换为部署解决方案的网站的 URL(例如https://example.com
)。该脚本将获取用于配置项目使用的 AWS Amplify 的运行时配置。它还将通过将本地主机地址添加到callbackurls和logouturls列表来更新Cognito应用程序客户端,因此它可以与Cognito托管域一起使用。
例如,要更新 UI Chat 项目:
python setup_local_dev_server.py --ui-project-type ui-chat --website https://example.com
或者
python setup_local_dev_server.py -t ui-chat -w https://example.com
要更新 UI 部署项目:
python setup_local_dev_server.py --ui-project-type ui-deployment --website https://example.com
或者
python setup_local_dev_server.py -t ui-deployment -w https://example.com
导航到 UI 项目目录
更改为您要使用的 UI 项目的目录:
cd ui-chat
或者
cd ui-deployment
安装依赖项
通过在项目目录中运行以下命令来安装所需的 Node.js 依赖项:
npm install
启动本地开发服务器
在项目目录下执行以下命令启动本地Vite开发服务器:
npm start
部署仪表板 UI 开发服务器将从http://localhost:5177
启动,聊天 UI 开发服务器将从http://localhost:5178
启动。
如果这些端口已在您的计算机上使用,您可以自定义setup_local_dev_server.py
脚本以使用不同的端口。
设置本地开发环境后,您现在可以根据您的需求自定义 UI 项目的 React 组件和功能。部署仪表板 UI 的源代码位于source/ui-deployment
目录中,聊天 UI 的源代码位于source/ui-chat
目录中。
按照标准的React开发流程对代码进行更改,并使用本地Vite开发服务器实时预览您的更改。
当您准备好部署自定义 UI 项目时,请按照主 README 文件中的说明操作,以使用 AWS CDK 构建和部署解决方案。
该解决方案收集匿名运营指标,以帮助 AWS 提高解决方案的质量和功能。有关更多信息,包括如何禁用此功能,请参阅实施指南。
版权所有 Amazon.com, Inc. 或其附属公司。版权所有。
根据 Apache 许可证 2.0 版(“许可证”)获得许可;除非遵守许可证,否则您不得使用此文件。您可以在以下位置获取许可证副本:
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则根据许可证分发的软件均按“原样”分发,不带任何明示或暗示的保证或条件。请参阅许可证,了解许可证下管理权限和限制的特定语言。
其中包含一个脚本,用于将 v1.X 创建的用例迁移到升级后的 v2.X 部署。查看文档