1. مقدمة
في هذا الدرس التطبيقي حول الترميز، أدرجتُ الخطوات اللازمة لإنشاء تطبيق ويب يتيح لك تلخيص النصوص باستخدام واجهة برمجة التطبيقات "النموذج اللغوي الكبير لإنشاء النصوص" (text-bison) من Vertex AI في إطار عمل Svelte Kit. في ما يلي قائمة بالخدمات وحزمة التكنولوجيا المستخدَمة:
- Svelte Kit: إطار عمل لتطبيقات الويب يستند إلى Svelte.
- Vertex AI PaLM 2 API: واجهة برمجة تطبيقات لنموذج لغوي كبير (LLM) تتيح الوصول إلى نموذج PaLM 2 من Google AI.
- Cloud Functions: هي منصة بدون خادم لتشغيل الدوال بدون الحاجة إلى إدارة الخوادم.
- Cloud Run: منصة حوسبة بدون خادم لتشغيل التطبيقات المحفوظة في حاويات
ما ستنشئه
عليك إنشاء
- يتم استخدام دالة Python Cloud Function لتنفيذ استدعاء Palm API
- تطبيق ويب Svelte لواجهة المستخدم للتفاعل مع Vertex AI API من خلال Cloud Function
- خدمة Cloud Run لنشر التطبيق الذي تم إنشاؤه أعلاه بدون خادم
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 Function ونستدعي Vertex AI API في هذه الدالة.
إنشاء حساب خدمة جديد
أنشئ حساب خدمة جديدًا من خلال تنفيذ الأمر التالي في "وحدة Cloud Shell الطرفية".
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 Function لهذا الغرض.
أنشئ دليلاً جديدًا باستخدام Cloud Shell وانتقِل إليه. (استخدِم الوحدة الطرفية نفسها التي تم فتحها في القسم السابق):
mkdir vertex-ai-functions
cd vertex-ai-functions
أنشئ ملف main.py لكتابة وظيفة Python Cloud Function وملف requirements.txt لتخزين التبعيات.
touch main.py requirements.txt
يحدّد ملف Python هذا دالة Cloud Function بسيطة عبر بروتوكول HTTP تستخدم "نموذج إنشاء النصوص" في Vertex AI لإنشاء ملخّصات قصيرة من المدخلات النصية. تتلقّى الدالة نصًا كمعلَمة وتعرض ملخّصًا موجزًا للنص. تستخدم الدالة مجموعة متنوّعة من المَعلمات للتحكّم في عملية الإنشاء، مثل الإبداع والتنوّع والطلاقة في النص الذي يتم إنشاؤه. تقبل دالة Cloud Function عبر HTTP عنصر طلب وتعرض ملخّص النموذج كاستجابة.
افتح "محرّر Google Cloud". يمكنك فتح هذا الملف من خلال فتح علامة تبويب جديدة في Google Cloud والنقر على الزر "تفعيل Cloud Shell"، وعندما يتم تحميل Terminal، انقر بسرعة على الزر "فتح المحرّر" كما هو موضّح في الصورة أدناه:

بعد فتح المحرِّر، من المفترض أن تتمكّن من رؤية ملف main.py. استبدِل محتواه بالرمز من هذا الرابط. يتم تضمين شرح الرمز البرمجي كتعليقات على الرمز. باختصار، يوفّر هذا الرمز طريقة موجزة لإنشاء ملخّصات قصيرة من المدخلات النصية باستخدام Vertex AI.
يحتوي ملف requirements.txt على تبعيات الحزمة: functions-framework==3.*: يضمن استخدام الدالة لأحدث الميزات وإصلاحات الأخطاء في Functions Framework. google-cloud-aiplatform: مطلوب لاستخدام "نموذج إنشاء النصوص" في Vertex AI.
أضِف ما يلي إلى ملف requirements.txt:
functions-framework==3.*
google-cloud-aiplatform
النشر على Cloud Functions
لننشُر الآن هذا المصدر إلى Cloud Functions. نفِّذ الأمر التالي من "وحدة Cloud Shell الطرفية":
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:

سيؤدي ذلك إلى إدراج دالة Cloud Function التي أنشأناها للتو باسم vertex-ai-function، وسيتم تقديم عنوان URL العلني الخاص بها في صفحة الدالة. نستخدم هذا المعرّف لربط الواجهة الأمامية بواجهة برمجة التطبيقات Vertex AI API. تخزين عنوان URL هذا قد تحتاج أيضًا إلى السماح لخدمة Cloud Run الأساسية بالوصول بدون مصادقة. ننصح باستخدام خدمة مصادقة لأغراض الأمان.
5- إنشاء الواجهة الأمامية ونشرها
يتضمّن هذا التطبيق واجهة أمامية للتفاعل مع واجهة برمجة التطبيقات Vertex AI من خلال "وظائف Google Cloud". لننشئها الآن.
إنشاء نسخة طبق الأصل من المستودع وإعداد ملف 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 Function.

نشر الواجهة الأمامية على Cloud Run
سنستخدم Google Artifact Registry لإنشاء صور Docker وتخزينها. يتم استخدام Cloud Run لنشر الحاويات في البنية غير المستنِدة إلى الخادم.
أنشئ مستودع Artifact Registry من خلال تنفيذ الأمر التالي في "وحدة طرفية Cloud Shell":
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 push لدفع الصورة إلى موقع جغرافي محدّد.
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 Console، انتقِل إلى صفحة إدارة الموارد.
- في قائمة المشاريع، اختَر المشروع الذي تريد حذفه، ثم انقر على "حذف".
- في مربّع الحوار، اكتب رقم تعريف المشروع، ثم انقر على "إيقاف" لحذف المشروع.
- إذا كنت تريد الاحتفاظ بالمشروع وحذف خدمة Cloud Run فقط، اتّبِع الخطوة الواردة هنا.
- إذا أردت حذف Cloud Function أو إلغاء إذن الوصول فقط، يمكنك إجراء ذلك من هنا.
7. تهانينا
تهانينا! لقد استخدمت بنجاح واجهة برمجة تطبيقات Vertex AI PaLM2 لإجراء تلخيص النصوص آليًا، وإنشاء تطبيق ويب Svelte ونشره في Cloud Functions. يمكنك الاطّلاع على مستندات منتج Vertex AI LLM لمعرفة المزيد عن النماذج المتاحة.