| منشئ تطبيقات الذكاء الاصطناعي التوليدي على AWS | ؟ طلب ميزة | ؟ تقرير الأخطاء | دليل التنفيذ |
ملحوظة:
يوفر Geneative AI Application Builder على حل AWS (GAAB) لوحة معلومات إدارة قائمة على الويب لنشر حالات استخدام Geneative AI (Gen AI) القابلة للتخصيص. تسمح لوحة معلومات النشر هذه للعملاء بنشر مجموعات مختلفة من حالات استخدام نموذج اللغة الكبيرة (LLM) وتجربتها ومقارنتها. بمجرد قيام العملاء بتكوين حالة الاستخدام الخاصة بهم وتحسينها بنجاح، يمكنهم نقل عملية النشر الخاصة بهم إلى الإنتاج ودمجها في تطبيقاتهم.
تم نشر Geneative AI Application Builder بموجب ترخيص Apache 2.0 وهو موجه للمستخدمين المبتدئين وذوي الخبرة الذين يرغبون في تجربة وإنتاج حالات استخدام مختلفة لجيل الذكاء الاصطناعي. يستخدم الحل برنامج LangChain مفتوح المصدر (OSS) لتكوين الاتصالات لاختيارك من نماذج اللغات الكبيرة (LLMs) لحالات الاستخدام المختلفة. يسمح الإصدار الأول من GAAB للمستخدمين بنشر حالات استخدام الدردشة التي تسمح بالقدرة على الاستعلام عن بيانات المؤسسة الخاصة بالمستخدمين في واجهة مستخدم (UI) على نمط chatbot، إلى جانب واجهة برمجة التطبيقات (API) لدعم عمليات تنفيذ المستخدم النهائي المخصصة.
بعض ميزات GAAB هي:
للحصول على دليل تفصيلي لتنفيذ الحل، راجع The Geneative AI Application Builder على AWS
هناك 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
؛ ومع ذلك، إذا كنت تعمل في بيئة لا تحتوي على هذه الحزم، فسوف تحتاج إلى تثبيتها يدويًا (على سبيل المثال، صورة عامل إرساء بسيطة). راجع دليل تثبيت النقطة للحصول على التفاصيل. ملاحظة: قم بتكوين AWS CLI باستخدام بيانات اعتماد AWS الخاصة بك أو قم بتصديرها إلى بيئة محطة CLI الطرفية. في حالة كون بيانات الاعتماد غير صالحة أو منتهية الصلاحية، فإن تشغيل cdk deploy
ينتج عنه خطأ.
وأيضًا، إذا لم تقم بتشغيل cdk bootstrap
في هذا الحساب وهذه المنطقة، فيرجى اتباع الإرشادات الواردة هنا لتنفيذ cdk bootstrap كعملية لمرة واحدة قبل متابعة الخطوات التالية.
بعد استنساخ الريبو من GitHub، أكمل الخطوات التالية:
ملحوظة:
cdk-asset-bucket
في source/infrastructure/cdk.json
. يجب أن تكون قيمة هذه الخاصية هي اسم المجموعة التي أنشأتها عملية cdk bootstrap
. ما لم يتم تكوين اسم الحاوية، تقوم عملية cdk bootstrap
بإنشاء حاوية بالتنسيق التالي: cdk-hnb659fds-assets--
(حيث يوجد معرف حساب AWS حيث يتم نشر الحل في المحددة). يحتوي الريبو حاليًا على القيمة المحددة على النحو التالي: "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 المركبة (مثل 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 من استجابة النموذج.
برجاء الرجوع دائمًا إلى وثائق النماذج ونماذج دفاتر ملاحظات SageMaker JumpStart jupyter للاطلاع على أحدث حمولات النماذج والمعلمات المدعومة.
قم بتشغيل الأمر التالي:
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: واجهة مستخدم لوحة معلومات النشر وواجهة مستخدم الدردشة. تم إنشاء كلا واجهتي المستخدم باستخدام 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، الذي يستخدمه المشروع. سيقوم أيضًا بتحديث عميل تطبيق Cognito عن طريق إضافة عنوان المضيف المحلي إلى قائمة callbackurls وloguturls، بحيث يعمل مع مجال 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
لتحديث مشروع نشر واجهة المستخدم:
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
انتقل إلى دليل مشروع واجهة المستخدم
قم بالتغيير إلى دليل مشروع واجهة المستخدم الذي تريد العمل معه:
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 ووظائف مشاريع واجهة المستخدم وفقًا لمتطلباتك. يوجد الكود المصدري لواجهة مستخدم لوحة معلومات النشر في دليل source/ui-deployment
، ويوجد الكود المصدري لواجهة مستخدم الدردشة في دليل source/ui-chat
.
اتبع سير عمل تطوير React القياسي لإجراء تغييرات على الكود، واستخدم خادم تطوير Vite المحلي لمعاينة تغييراتك في الوقت الفعلي.
عندما تكون جاهزًا لنشر مشاريع واجهة المستخدم المخصصة الخاصة بك، اتبع الإرشادات الموجودة في ملف README الرئيسي لإنشاء الحل ونشره باستخدام AWS CDK.
يجمع هذا الحل مقاييس تشغيلية مجهولة المصدر لمساعدة AWS على تحسين جودة الحل وميزاته. لمزيد من المعلومات، بما في ذلك كيفية تعطيل هذه الإمكانية، يرجى مراجعة دليل التنفيذ.
حقوق الطبع والنشر لشركة Amazon.com, Inc. أو الشركات التابعة لها. جميع الحقوق محفوظة.
مرخص بموجب ترخيص Apache، الإصدار 2.0 ("الترخيص")؛ لا يجوز لك استخدام هذا الملف إلا وفقًا للترخيص. يمكنك الحصول على نسخة من الترخيص على
http://www.apache.org/licenses/LICENSE-2.0
ما لم يكن ذلك مطلوبًا بموجب القانون المعمول به أو تم الاتفاق عليه كتابيًا، يتم توزيع البرامج الموزعة بموجب الترخيص على أساس "كما هي"، دون ضمانات أو شروط من أي نوع، سواء كانت صريحة أو ضمنية. راجع الترخيص لمعرفة الأذونات والقيود التي تحكم اللغة المحددة بموجب الترخيص.
تم تضمين برنامج نصي لترحيل حالات الاستخدام التي تم إنشاؤها بواسطة الإصدار v1.X إلى نشر الإصدار v2.X الذي تمت ترقيته. انظر الوثائق