| AWS 上の生成 AI アプリケーション ビルダー| ?機能リクエスト| ?バグレポート|実装ガイド|
注記:
Generative AI Application Builder on AWS ソリューション (GAAB) は、カスタマイズ可能な Generative AI (Gen AI) ユースケースをデプロイするための Web ベースの管理ダッシュボードを提供します。この展開ダッシュボードを使用すると、顧客は大規模言語モデル (LLM) ユースケースのさまざまな組み合わせを展開、実験、比較できます。顧客は、ユースケースの構成と最適化に成功したら、そのデプロイメントを実稼働環境に導入し、アプリケーション内に統合できます。
Generative AI アプリケーション ビルダーは、Apache 2.0 ライセンスに基づいて公開されており、さまざまな Gen AI ユース ケースを実験および運用したいと考えている初心者から経験豊富なユーザーを対象としています。このソリューションでは、LangChain オープンソース ソフトウェア (OSS) を使用して、さまざまなユースケースに合わせて選択した大規模言語モデル (LLM) への接続を構成します。 GAAB の最初のリリースでは、ユーザーは、カスタム エンド ユーザー実装をサポートする API とともに、チャットボット スタイルのユーザー インターフェイス (UI) でユーザーの企業データをクエリできる機能を可能にするチャット ユース ケースを展開できます。
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 アカウントにデプロイするには 2 つのオプションがあります。
cdk deploy
の使用ローカルで構築してデプロイするための前提条件は次のとおりです。
ensurepip
とpip
のサポートが含まれている必要があります。ただし、これらのパッケージのない環境で実行している場合は、それらを手動でインストールする必要があります (最小限の Docker イメージなど)。詳細については、pip のインストール ガイドを参照してください。注: AWS 認証情報を使用して AWS CLI を設定するか、CLI ターミナル環境でエクスポートします。資格情報が無効または期限切れの場合、 cdk deploy
実行するとエラーが発生します。
また、このアカウントとリージョンでcdk bootstrap
を実行していない場合は、以下の手順に進む前に、ここの手順に従って cdk ブートストラップを 1 回限りのプロセスとして実行してください。
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 コマンドの完全なリストについては、「ツールキット コマンド」を参照してください。
デプロイメント ダッシュボードで LLM チャット ユースケースをデプロイするには、さらに、合成された CDK アセット (ラムダ、合成された 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
このプロジェクトには、サンプル SageMaker 入力にアクセスできる docs フォルダーが用意されています。 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
このソリューションには、展開ダッシュボード UI とチャット UI という 2 つの別個の React ベース Web アプリケーションが含まれています。どちらのユーザー インターフェイスも、最新の Web プロジェクト向けの最新の高速ビルド ツールである Vite を使用して構築されています。
ターミナルを開く
ソースディレクトリに移動します
source
ディレクトリに移動します。 cd /source
ランタイム構成の取得と更新
適切な引数を指定して、提供されたsetup_local_dev_server.py
スクリプトを実行します。
python setup_local_dev_server.py --ui-project-type --website
、セットアップする UI プロジェクトに応じてui-chat
またはui-deployment
に置き換えます。
、ソリューションがデプロイされている Web サイトの URL (例: https://example.com
) に置き換えます。このスクリプトは、プロジェクトが使用する AWS Amplify の設定に使用されるランタイム設定を取得します。また、localhost アドレスを 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
スクリプトをカスタマイズできます。
ローカル開発環境がセットアップされたら、要件に応じて React コンポーネントと UI プロジェクトの機能をカスタマイズできるようになります。デプロイメント ダッシュボード UI のソース コードはsource/ui-deployment
ディレクトリにあり、チャット UI のソース コードは、 source/ui-chat
ディレクトリにあります。
標準の React 開発ワークフローに従ってコードを変更し、ローカル Vite 開発サーバーを使用して変更をリアルタイムでプレビューします。
カスタマイズした UI プロジェクトをデプロイする準備ができたら、メインの README ファイルの指示に従って、AWS CDK を使用してソリューションを構築およびデプロイします。
このソリューションは、AWS がソリューションの品質と機能を向上させるために、匿名化された運用メトリクスを収集します。この機能を無効にする方法などの詳細については、実装ガイドを参照してください。
著作権は Amazon.com, Inc. またはその関連会社にあります。無断転載を禁じます。
Apache License バージョン 2.0 (「ライセンス」) に基づいてライセンスされています。ライセンスに準拠する場合を除き、このファイルを使用することはできません。ライセンスのコピーは次の場所で入手できます。
http://www.apache.org/licenses/LICENSE-2.0
適用される法律で義務付けられている場合または書面による同意がない限り、ライセンスに基づいて配布されるソフトウェアは、明示または黙示を問わず、いかなる種類の保証や条件もなく、「現状のまま」で配布されます。ライセンスに基づく許可と制限を規定する特定の言語については、ライセンスを参照してください。
v1.X で作成されたユースケースをアップグレードされた v2.X デプロイメントに移行するためのスクリプトが含まれています。ドキュメントを参照してください