| 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 部署。查看文件