1. مقدمة
في هذا الدرس التطبيقي حول الترميز، أدرجنا الخطوات اللازمة لإنشاء تطبيق ويب يتيح تلخيص النصوص باستخدام النموذج اللغوي الكبير Vertex AI لإنشاء النصوص ( text-bison) في إطار عمل Svelte Kit. في ما يلي قائمة بالخدمات وحِزم التكنولوجيا المستخدَمة:
- Svelte Kit: إطار عمل لتطبيق ويب يعتمد على Svelte.
- واجهة برمجة تطبيقات Vertex AI PaLM 2: واجهة برمجة تطبيقات للنموذج اللغوي الكبير (LLM) تتيح الوصول إلى نموذج PaLM 2 من الذكاء الاصطناعي من Google.
- وظائف السحابة الإلكترونية: نظام أساسي بدون خادم لتشغيل الوظائف بدون الحاجة إلى إدارة الخوادم
- تشغيل السحابة الإلكترونية: نظام أساسي بدون خادم لتشغيل التطبيقات المضمّنة في حاويات.
ما الذي ستقوم ببنائه
ستقوم بإنشاء
- تُستخدم دالة Python Cloud لاستدعاء واجهة برمجة التطبيقات makePalm
- تطبيق ويب Svelte لواجهة المستخدم للتفاعل مع واجهة برمجة تطبيقات Vertex AI من خلال دالة Cloud
- خدمة تشغيل في السحابة الإلكترونية لنشر التطبيق الذي تم إنشاؤه أعلاه بدون خادم
2. المتطلبات
3- قبل البدء
- في Google Cloud Console، ضمن صفحة أداة اختيار المشاريع، اختَر مشروعًا على Google Cloud أو أنشئه.
- تأكَّد من تفعيل الفوترة لمشروعك على السحابة الإلكترونية. التعرُّف على كيفية التحقّق مما إذا كانت الفوترة مفعّلة في مشروع
- ستستخدم Cloud Shell، وهي بيئة سطر أوامر يتم تشغيلها في Google Cloud للتفاعل مع خدمات Google Cloud. يمكنك الرجوع إلى المستندات حول أوامر gcloud واستخدامها. من Cloud Console، انقر على "تفعيل Cloud Shell" في أعلى يسار الصفحة:
إذا لم يتم ضبط مشروعك، استخدِم الأمر التالي لضبطه:
gcloud config set project <YOUR_PROJECT_ID>
- تأكَّد من تفعيل جميع واجهات برمجة التطبيقات اللازمة من خلال تنفيذ الأمر التالي من "محطة Cloud Shell":
gcloud services enable cloudbuild.googleapis.com \
run.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.googleapis.com
- أنشئ متغيرات بيئة لـ Region وPROJECT_ID من خلال تشغيل الأمر التالي من الوحدة الطرفية في Cloud Shell:
export PROJECT_ID=<your project id>
export REGION=asia-south1
4. Cloud Function لاستدعاء Vertex AI API
سننشئ دالة Python Cloud ونستدعي Vertex AI API في هذه الدالة.
إنشاء حساب خدمة جديد
أنشئ حساب خدمة جديدًا من خلال تنفيذ الأمر التالي في Cloud Shell Terminal.
gcloud iam service-accounts create vertex-service-acc
لمنح إذن الوصول إلى مشروعك ومواردك، يجب منح دور لحساب الخدمة.
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member="serviceAccount:vertex-service-acc@${PROJECT_ID}.iam.gserviceaccount.com" --role=roles/ml.developer
لمنح حسابك على Google دورًا يتيح لك استخدام أدوار حساب الخدمة وإرفاق حساب الخدمة بموارد أخرى. استبدل USER_EMAIL برقم تعريف البريد الإلكتروني لحسابك في Google.
gcloud iam service-accounts add-iam-policy-binding vertex-service-acc@${PROJECT_ID}.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
إنشاء دالة Python
نموذج PaLM 2 للنص مثالي للمهام التي يمكن إكمالها من خلال ردّ واحد من واجهة برمجة التطبيقات بدون الحاجة إلى إجراء محادثة مستمرة. لننشئ دالة السحابة الآن.
أنشئ دليلاً جديدًا باستخدام Cloud Shell وانتقِل إليه. (استخدم الوحدة الطرفية نفسها التي تم فتحها في القسم السابق):
mkdir vertex-ai-functions
cd vertex-ai-functions
أنشئ ملف main.py لكتابة دوال بايثون السحابية وملف المتطلبات.txt لتخزين التبعيات.
touch main.py requirements.txt
يحدّد ملف Python هذا دالة HTTP Cloud بسيطة تستخدم نموذج Vertex AI Text Generation لإنشاء ملخّصات قصيرة للإدخالات النصية. تستخدم الدالة إدخالاً نصيًا كمعلمة وتعرض ملخصًا قصيرًا للإدخال. تستخدم الدالة مجموعة متنوعة من المعلمات للتحكم في عملية الإنشاء، مثل الإبداع والتنوع وطلاقة النص الذي يتم إنشاؤه. تقبل دالة السحابة الإلكترونية HTTP كائن الطلب وتعرض ملخص النموذج كاستجابة.
افتح Google Cloud Editor. يمكنك فتح ذلك من خلال فتح علامة تبويب جديدة في Google Cloud Console والنقر على الزر "تفعيل حافظة السحابة الإلكترونية"، وعندما يتم تحميل الوحدة الطرفية، انقر بسرعة على الزر "فتح المحرر" كما هو موضّح في الصورة أدناه:
بمجرد فتح المحرر، يُفترض أن تتمكن من رؤية الملف main.py. استبدِل محتواه بالرمز من رابط المستودع هذا. يتم تضمين شرح التعليمة البرمجية كتعليقات التعليمة البرمجية. باختصار، يوفّر هذا الرمز البرمجي طريقة موجزة لإنشاء ملخّصات قصيرة للإدخالات النصية باستخدام Vertex AI.
يحتوي ملف المتطلبات.txt على تبعيات الحزمة: function-framework===3.*: يضمن استخدام الدالة لأحدث الميزات وإصلاحات الأخطاء ضمن إطار عمل الدوال. google-cloud-aiplatform: مطلوبة لاستخدام نموذج Vertex AI Text Generation
أضِف هذا الملف إلى ملفrequirements.txt:
functions-framework==3.*
google-cloud-aiplatform
النشر في دوال Cloud
لننشر الآن هذا المصدر في دوال Cloud. شغّل الأمر التالي من Cloud Shell Terminal:
gcloud functions deploy vertex-ai-function \
--gen2 \
--runtime=python311 \
--region=${REGION} \
--source=. \
--entry-point=hello_vertex \
--trigger-http \
--allow-unauthenticated \
--max-instances=30
استخدِم شريط البحث وانتقِل إلى وحدة تحكّم Cloud Functions:
سيؤدي هذا إلى سرد دالة السحابة الإلكترونية الخاصة بدالة رأسك، والتي أنشأناها للتو باستخدام عنوان URL العلني الخاص بها، في صفحة الدالة. نستخدم هذه البيانات لربط Frontend وVertex AI API. تخزين عنوان URL هذا قد تحتاج أيضًا إلى السماح لخدمة Cloud Run الأساسية بالوصول غير المُصدَّق عليه. يُنصح باستخدام الخدمة التي تمت مصادقتها لأغراض تتعلّق بالأمان.
5- إنشاء الواجهة الأمامية ونشرها
يأتي هذا التطبيق مزودًا بواجهة أمامية للتفاعل مع واجهة برمجة تطبيقات Vertex AI من خلال Google Cloud Functions. لنقم بإنشائه الآن.
نسخ مستودع وإعداد ملف Dockerfile
انتقِل إلى الدليل الجذري واستنساخ مستودع git.
cd ~/
git clone https://github.com/bhaaratkrishnan/vertex-summarizer-svelte.git
cd vertex-summarizer-svelte
لتشغيل هذا التطبيق، تحتاج إلى إضافة متغير البيئة public_FUNCTION_URL في Dockerfile. عنوان URL هذا هو عنوان URL لـ Cloud Function الذي تم إنشاؤه وتخزينه في القسم السابق.
افتح Cloud Editor وعدِّل محتوى ملف Dockerfile. استبدِل المتغير public_FUNCTION_URL بعنوان URL لدالة Cloud.
نشر الواجهة الأمامية على Cloud Run
سنستخدم Google Artifact Registry لإنشاء صور Docker وتخزينها. يُستخدَم Cloud Run لنشر الحاويات في "بنية بدون خادم".
أنشئ مستودع Artifact Registry من خلال تشغيل الأمر أدناه في Cloud Shell Terminal:
gcloud artifacts repositories create vertex-repo --repository-format=docker --location=${REGION}
إنشاء متغيّر بيئة لعنوان URL لمستودع Artifact Registry
export DOCKER_URL=${REGION}-docker.pkg.dev/${PROJECT_ID}/vertex-repo/vertex-summarizer-image
أنشِئ حاوية Docker وضَع علامة عليها باستخدام موقع "مستودع Artifact Registry". يؤدي وضع علامة على صورة Docker باسم مستودع إلى تهيئة أمر إرسال Docker لإرسال الصورة إلى موقع معيّن.
docker build . -t ${DOCKER_URL}
أرسِل الصورة إلى Artifact Registry.
docker push ${DOCKER_URL}
انشر حاوية Docker على Cloud Run.
gcloud run deploy vertex-summarizer --allow-unauthenticated --platform=managed --region=${REGION} --image=${DOCKER_URL}
رائع. تطبيق Vertex Summarizer قيد التشغيل. سيتم عرض عنوان URL في Cloud Shell، لذا ننصحك باستكشاف تجربة Vertex AI والاستمتاع بها🤖.
6- تَنظيم
لتجنُّب تحصيل رسوم من حسابك على Google Cloud مقابل الموارد المُستخدَمة في هذه المشاركة، يُرجى اتّباع الخطوات التالية:
- في وحدة التحكّم في Google Cloud، انتقِل إلى صفحة إدارة الموارد.
- في قائمة المشاريع، اختَر المشروع الذي تريد حذفه، ثم انقر على "حذف".
- في مربّع الحوار، اكتب معرّف المشروع، ثم انقر على "إيقاف التشغيل" لحذف المشروع.
- إذا أردت الاحتفاظ بالمشروع وحذف خدمة Cloud Run فقط، اتّبِع الخطوة هنا.
- إذا أردت فقط حذف دالة Cloud أو إبطال إذن الوصول إليها، يمكنك إجراء ذلك من هنا.
7. تهانينا
تهانينا! لقد نجحت في استخدام واجهة برمجة تطبيقات Vertex AI PaLM2 لإجراء تلخيص النص آليًا وإنشاء تطبيق ويب Svelte ونشره في Cloud Functions. يمكنك الاطّلاع على مستندات منتجات Vertex AI LLM لمعرفة المزيد من المعلومات حول النماذج المتوفّرة.