- ตัวสร้างแอปพลิเคชัน Generative AI บน AWS | - คำขอคุณสมบัติ | - รายงานข้อผิดพลาด | คู่มือการใช้งาน |
บันทึก:
Generative AI Application Builder บนโซลูชัน AWS (GAAB) มอบแดชบอร์ดการจัดการบนเว็บเพื่อปรับใช้กรณีการใช้งาน Generative AI (Gen AI) ที่ปรับแต่งได้ แดชบอร์ดการปรับใช้นี้ช่วยให้ลูกค้าปรับใช้ ทดลอง และเปรียบเทียบชุดการใช้งาน Large Language Model (LLM) ที่แตกต่างกันได้ เมื่อลูกค้ากำหนดค่าและเพิ่มประสิทธิภาพกรณีการใช้งานได้สำเร็จแล้ว พวกเขาสามารถนำการปรับใช้ไปสู่การใช้งานจริงและรวมเข้ากับแอปพลิเคชันของตนได้
ตัวสร้างแอปพลิเคชัน Generative AI ได้รับการเผยแพร่ภายใต้สิทธิ์การใช้งาน Apache 2.0 และมีเป้าหมายสำหรับผู้ใช้มือใหม่ถึงผู้ใช้ที่มีประสบการณ์ที่ต้องการทดลองและผลิตกรณีการใช้งาน Gen AI ต่างๆ โซลูชันนี้ใช้ซอฟต์แวร์โอเพ่นซอร์ส (OSS) ของ LangChain เพื่อกำหนดค่าการเชื่อมต่อกับ Large Language Models (LLM) ที่คุณเลือกสำหรับกรณีการใช้งานที่แตกต่างกัน GAAB รุ่นแรกช่วยให้ผู้ใช้สามารถปรับใช้กรณีการใช้งานการแชท ซึ่งช่วยให้สามารถสืบค้นข้อมูลองค์กรของผู้ใช้ในรูปแบบอินเทอร์เฟซผู้ใช้ (UI) สไตล์แชทบอต พร้อมด้วย API เพื่อรองรับการใช้งานของผู้ใช้ปลายทางแบบกำหนดเอง
คุณสมบัติบางประการของ GAAB คือ:
สำหรับคำแนะนำการใช้งานโซลูชันโดยละเอียด โปรดดูที่ The Generative AI Application Builder บน AWS
มีบุคลิกของผู้ใช้ที่ไม่ซ้ำกัน 3 แบบที่มีการอ้างถึงในคำแนะนำการแก้ปัญหาด้านล่าง:
บันทึก:
เมื่อผู้ใช้ DevOps ปรับใช้ Deployment Dashboard ส่วนประกอบต่อไปนี้จะถูกปรับใช้ในบัญชี 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.
เมื่อปรับใช้แดชบอร์ดการปรับใช้แล้ว ผู้ใช้ที่เป็นผู้ดูแลระบบจะสามารถปรับใช้สแต็กกรณีการใช้งานหลายรายการได้ เมื่อผู้ดูแลระบบปรับใช้ Use Case Stack ส่วนประกอบต่อไปนี้จะถูกปรับใช้ในบัญชี AWS:
บันทึก:
มีสองตัวเลือกสำหรับการปรับใช้ในบัญชี AWS ของคุณ:
cdk deploy
ต่อไปนี้เป็นข้อกำหนดเบื้องต้นในการสร้างและปรับใช้ภายในเครื่อง:
ensurepip
และ pip
; อย่างไรก็ตาม หากทำงานในสภาพแวดล้อมที่ไม่มีแพ็คเกจเหล่านี้ คุณจะต้องติดตั้งแพ็คเกจเหล่านี้ด้วยตนเอง (เช่น อิมเมจ Docker ขั้นต่ำ) ดูคู่มือการติดตั้งของ pip สำหรับรายละเอียด หมายเหตุ: กำหนดค่า AWS CLI ด้วยข้อมูลประจำตัว AWS ของคุณ หรือให้ส่งออกในสภาพแวดล้อมเทอร์มินัล CLI ในกรณีที่ข้อมูลประจำตัวไม่ถูกต้องหรือหมดอายุ การเรียกใช้ cdk deploy
จะทำให้เกิดข้อผิดพลาด
นอกจากนี้ หากคุณไม่ได้เรียกใช้ cdk bootstrap
ในบัญชีและภูมิภาคนี้ โปรดปฏิบัติตามคำแนะนำที่นี่เพื่อดำเนินการ cdk bootstrap เป็นกระบวนการครั้งเดียวก่อนที่จะดำเนินการตามขั้นตอนด้านล่าง
หลังจากโคลน repo จาก GitHub แล้ว ให้ทำตามขั้นตอนต่อไปนี้:
บันทึก:
cdk-asset-bucket
ใน source/infrastructure/cdk.json
ค่าของคุณสมบัตินี้ควรเป็นชื่อบัคเก็ตที่กระบวนการ cdk bootstrap
สร้างขึ้น เว้นแต่จะมีการกำหนดค่าชื่อบัคเก็ต กระบวนการ cdk bootstrap
จะสร้างบัคเก็ตในรูปแบบต่อไปนี้: cdk-hnb659fds-assets--
(โดยที่ ID บัญชี AWS อยู่ที่ไหนซึ่งมีการนำโซลูชันไปใช้งาน เฉพาะเจาะจง) ปัจจุบัน repo มีค่าที่ตั้งไว้ดังต่อไปนี้: "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 ที่สังเคราะห์แล้วเพิ่มเติม (เช่น lambdas เทมเพลต 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 ได้ เนื่องจากโมเดล SageMaker สามารถรับและส่งออกสคีมาอินพุตและเอาท์พุตได้หลากหลาย ตามลำดับ โซลูชันจึงขอค่าเหล่านี้จากผู้ใช้เพื่อให้สามารถเรียกใช้โมเดลที่ถูกต้องได้ ซึ่งช่วยให้โซลูชันสามารถรองรับ SageMaker รุ่นต่างๆ ได้มากมาย
สคีมาอินพุตเป็นส่วนสำคัญของโมเดลของคุณ โดยมีตัวยึดตำแหน่งสำหรับค่าจริง ตัวยึดตำแหน่งทำให้สามารถแทนที่ค่าโมเดลจริง ณ รันไทม์ และแสดงด้วยคีย์เวิร์ดที่อยู่ในวงเล็บเหลี่ยม เช่น: <
โปรดทราบว่า <
และ <
เป็นตัวยึดตำแหน่งที่สงวนไว้สำหรับพรอมต์โมเดลและอุณหภูมิตามลำดับ
JSONPath เอาต์พุตของโมเดลจัดเตรียมเส้นทางโซลูชันเพื่อดึงข้อมูลการตอบกลับที่เป็นข้อความของ LLM จากการตอบกลับของโมเดล
โปรดดูเอกสารประกอบโมเดลและตัวอย่างสมุดบันทึก Jupyter ของ SageMaker JumpStart เสมอเพื่อดูเพย์โหลดโมเดลล่าสุดและพารามิเตอร์ที่รองรับ
รันคำสั่งต่อไปนี้:
git clone https://github.com/aws-solutions/
cd /source/infrastructure
npm install
หมายเหตุ: หากต้องการรันการทดสอบหน่วย จะต้องติดตั้งและใช้งานนักเทียบท่า และต้องกำหนดค่าข้อมูลรับรอง 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 สองรายการแยกกัน: Deployment Dashboard UI และ Chat UI อินเทอร์เฟซผู้ใช้ทั้งสองถูกสร้างขึ้นโดยใช้ Vite ซึ่งเป็นเครื่องมือสร้างที่ทันสมัยและรวดเร็วสำหรับโครงการเว็บสมัยใหม่
เปิดเทอร์มินัล
นำทางไปยังไดเรกทอรีต้นทาง
source
ภายในรูทโปรเจ็กต์: cd /source
ดึงข้อมูลและอัปเดตการกำหนดค่ารันไทม์
รันสคริปต์ setup_local_dev_server.py
ที่ให้มาพร้อมกับอาร์กิวเมนต์ที่เหมาะสม:
python setup_local_dev_server.py --ui-project-type --website
ด้วย ui-chat
หรือ ui-deployment
ขึ้นอยู่กับโปรเจ็กต์ UI ที่คุณต้องการตั้งค่า
ด้วย URL ของเว็บไซต์ที่มีการปรับใช้โซลูชัน (เช่น https://example.com
)สคริปต์จะดึงการกำหนดค่ารันไทม์ที่ใช้ในการกำหนดค่า AWS Amplify ซึ่งโปรเจ็กต์ใช้ นอกจากนี้ ยังจะอัปเดตไคลเอ็นต์แอป Cognito ด้วยการเพิ่มที่อยู่ localhost ลงในรายการ callbackurls และ logouturls เพื่อให้ทำงานกับโดเมนที่โฮสต์ของ 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
เซิร์ฟเวอร์การพัฒนา Deployment Dashboard UI จะเริ่มต้นที่ http://localhost:5177
และเซิร์ฟเวอร์การพัฒนา Chat UI จะเริ่มต้นที่ http://localhost:5178
หากพอร์ตเหล่านี้มีการใช้งานบนเครื่องของคุณอยู่แล้ว คุณสามารถปรับแต่งสคริปต์ setup_local_dev_server.py
เพื่อใช้พอร์ตอื่นได้
ด้วยการตั้งค่าสภาพแวดล้อมการพัฒนาในพื้นที่ คุณสามารถปรับแต่งส่วนประกอบ React และฟังก์ชันการทำงานของโปรเจ็กต์ UI ตามความต้องการของคุณได้ ซอร์สโค้ดสำหรับ Deployment Dashboard UI อยู่ในไดเร็กทอรี source/ui-deployment
และซอร์สโค้ดสำหรับ Chat 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 ที่อัปเกรดแล้ว ดูเอกสารประกอบ