| AWS의 생성적 AI 애플리케이션 빌더 | ? 기능 요청 | ? 버그 신고 | 구현 가이드 |
메모:
Generative AI Application Builder on AWS 솔루션(GAAB)은 사용자 정의 가능한 Gen AI(Generative AI) 사용 사례를 배포하기 위한 웹 기반 관리 대시보드를 제공합니다. 이 배포 대시보드를 통해 고객은 LLM(대형 언어 모델) 사용 사례의 다양한 조합을 배포, 실험 및 비교할 수 있습니다. 고객이 사용 사례를 성공적으로 구성하고 최적화한 후에는 배포를 프로덕션에 적용하고 애플리케이션 내에 통합할 수 있습니다.
Generative AI Application Builder는 Apache 2.0 라이선스에 따라 게시되며 다양한 Gen AI 사용 사례를 실험하고 생산하려는 초보자부터 숙련된 사용자를 대상으로 합니다. 이 솔루션은 LangChain 오픈 소스 소프트웨어(OSS)를 사용하여 다양한 사용 사례에 맞게 선택한 LLM(대형 언어 모델)에 대한 연결을 구성합니다. GAAB의 첫 번째 릴리스를 통해 사용자는 맞춤형 최종 사용자 구현을 지원하는 API와 함께 챗봇 스타일의 사용자 인터페이스(UI)에서 사용자의 기업 데이터를 쿼리할 수 있는 채팅 사용 사례를 배포할 수 있습니다.
GAAB의 일부 기능은 다음과 같습니다.
자세한 솔루션 구현 가이드는 AWS의 Generative AI Application Builder를 참조하세요.
아래 솔루션 연습에서는 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 부트스트랩을 실행하십시오.
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 채팅 사용 사례를 배포하려면 source/infrastructure/cdk.out
디렉터리에서 계정에 구성된 S3 버킷으로 합성된 CDK 자산(예: 람다, 합성 CloudFormation 템플릿 등)을 추가로 준비해야 합니다. 배포 시 이러한 리소스를 가져올 위치입니다. 이러한 자산을 쉽게 스테이지할 수 있도록 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라는 두 가지 별도의 React 기반 웹 애플리케이션이 포함되어 있습니다. 두 사용자 인터페이스 모두 최신 웹 프로젝트를 위한 현대적이고 빠른 빌드 도구인 Vite를 사용하여 구축되었습니다.
터미널 열기
소스 디렉터리로 이동
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 목록에 localhost 주소를 추가하여 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
에서 시작되고, Chat UI 개발 서버는 http://localhost:5178
에서 시작됩니다.
이러한 포트가 시스템에서 이미 사용 중인 경우 다른 포트를 사용하도록 setup_local_dev_server.py
스크립트를 사용자 정의할 수 있습니다.
로컬 개발 환경이 설정되면 이제 요구 사항에 따라 UI 프로젝트의 React 구성 요소와 기능을 사용자 지정할 수 있습니다. 배포 대시보드 UI의 소스 코드는 source/ui-deployment
디렉터리에 있고, Chat UI의 소스 코드는 source/ui-chat
디렉터리에 있습니다.
표준 React 개발 작업 흐름에 따라 코드를 변경하고, 로컬 Vite 개발 서버를 사용하여 변경 사항을 실시간으로 미리 볼 수 있습니다.
사용자 정의된 UI 프로젝트를 배포할 준비가 되면 AWS CDK를 사용하여 솔루션을 구축하고 배포하기 위한 기본 README 파일의 지침을 따르십시오.
이 솔루션은 익명화된 운영 지표를 수집하여 AWS가 솔루션의 품질과 기능을 개선하는 데 도움을 줍니다. 이 기능을 비활성화하는 방법을 포함한 자세한 내용은 구현 가이드를 참조하세요.
저작권 Amazon.com, Inc. 또는 그 계열사. 모든 권리 보유.
Apache 라이센스 버전 2.0("라이센스")에 따라 라이센스가 부여되었습니다. 라이센스를 준수하는 경우를 제외하고는 이 파일을 사용할 수 없습니다. 다음에서 라이센스 사본을 얻을 수 있습니다.
http://www.apache.org/licenses/LICENSE-2.0
해당 법률에서 요구하거나 서면으로 동의하지 않는 한, 라이선스에 따라 배포되는 소프트웨어는 명시적이든 묵시적이든 어떠한 종류의 보증이나 조건 없이 "있는 그대로" 배포됩니다. 라이선스에 따른 허가 및 제한 사항을 관리하는 특정 언어는 라이선스를 참조하세요.
v1.X에서 생성된 사용 사례를 업그레이드된 v2.X 배포로 마이그레이션하기 위한 스크립트가 포함되어 있습니다. 문서를 참조하세요