وظيفة السحابة الإلكترونية لتلخيص المحتوى باستخدام PaLM Vertex AI API وGoogle Cloud Storage

1. مقدمة

في هذا الدرس التطبيقي حول الترميز، يمكنك الاطّلاع على الخطوات اللازمة لتلخيص المحتوى الذي تم تحميله على Google Cloud Storage باستخدام نموذج Vertex AI اللغوي الكبير لإنشاء النصوص ( text-bison) كدالة السحابة الإلكترونية في Python. في ما يلي قائمة بالخدمات المستخدمة:

  • Vertex AI PaLM API: واجهة برمجة تطبيقات للنموذج اللغوي الكبير (LLM) تتيح الوصول إلى نموذج PaLM Text Bison من Google AI
  • وظائف السحابة الإلكترونية: نظام أساسي بدون خادم لتشغيل الوظائف بدون الحاجة إلى إدارة الخوادم
  • Cloud Storage: خدمة مُدارة لتخزين البيانات غير المنظَّمة.
  • التسجيل في السحابة الإلكترونية: خدمة مُدارة بالكامل تسمح لك بتخزين بيانات التسجيل والبحث فيها وتحليلها ورصدها والتنبيه بها.

ما الذي ستقوم ببنائه

ستنشئ تطبيقًا تم نشره كدالة Python Cloud لتلخيص النص باستخدام Palm API.

2. المتطلبات

  • متصفح، مثل Chrome أو Firefox
  • مشروع على Google Cloud تم تفعيل الفوترة فيه

3- قبل البدء

  1. في Google Cloud Console، ضمن صفحة أداة اختيار المشاريع، اختَر مشروعًا على Google Cloud أو أنشئه.
  2. تأكَّد من تفعيل الفوترة لمشروعك على السحابة الإلكترونية. تعرَّف على كيفية التحقّق مما إذا كانت الفوترة مفعَّلة في مشروع.
  3. تأكَّد من تفعيل جميع واجهات برمجة التطبيقات اللازمة (Cloud Storage API وVertex AI API وCloud Function API وCloud Logging).
  4. ستستخدم Cloud Shell، وهي بيئة سطر أوامر يتم تشغيلها في Google Cloud. يمكنك الرجوع إلى المستندات حول أوامر gcloud واستخدامها.
  5. من Cloud Console، انقر على "تفعيل Cloud Shell" في أعلى يسار الصفحة:

51622c00acec2fa.png

إذا لم يتم ضبط مشروعك، استخدِم الأمر التالي لضبطه:

gcloud config set project <YOUR_PROJECT_ID>
  1. تأكَّد من تفعيل جميع واجهات برمجة التطبيقات اللازمة من خلال تنفيذ الأمر التالي من "محطة Cloud Shell":
gcloud services enable cloudfunctions.googleapis.com \
aiplatform.googleapis.com \
storage.googleapis.com \
logging.googleapis.com \
eventarc.googleapis.com
  1. أنشئ متغيرات بيئة لـ Region وPROJECT_ID من خلال تشغيل الأمر التالي من الوحدة الطرفية في Cloud Shell:
export PROJECT_ID=<your project id>

export REGION=us-central1

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 للنص مثالية للمهام التي يمكن إكمالها برد واحد من واجهة برمجة التطبيقات، بدون الحاجة إلى إجراء محادثة مستمرة. لننشئ دالة السحابة الآن.

نفِّذ الأوامر التالية في Cloud Shell لاستنساخ المستودع وانتقِل إلى المشروع (استخدِم الوحدة الطرفية نفسها المفتوحة في القسم السابق):

git clone https://github.com/rominirani/genai-apptemplates-googlecloud

cd genai-apptemplates-googlecloud/summarization-gcs-cloudfunction

المجلد الذي نهتم به هنا في هذا المشروع هو: summarization-gcs-cloudfunction.

افتح "محرِّر Cloud Shell" من الوحدة الطرفية وتحقَّق من محتوى مجلد المشروع الذي تم استنساخه للتو من GitHub إلى جهاز Cloud Shell.

يحتوي هذا المجلد على ملفَين:

  1. main.py: يحدد ملف Python دالة HTTP بسيطة تستخدم نموذج Vertex AI لإنشاء النصوص لإنشاء ملخصات قصيرة للمدخلات النصية. تستخدم الدالة إدخالاً نصيًا كمعلمة وتعرض ملخصًا قصيرًا للإدخال. تستخدم الدالة مجموعة متنوعة من المعلمات للتحكم في عملية الإنشاء، مثل الإبداع والتنوع وطلاقة النص الذي يتم إنشاؤه. تقبل دالة السحابة الإلكترونية HTTP كائن الطلب وتعرض ملخص النموذج كاستجابة.
  2. يحتوي ملف requirements.txt على تبعيات الحزمة:
  • Functions-framework==3: يضمن استخدام الدالة لأحدث الميزات وإصلاحات الأخطاء ضمن إطار عمل الدوال.
  • google-cloud-aiplatform: مطلوبة لاستخدام نموذج Vertex AI Text Generation.
  • google-cloud-storage::هذا الإذن مطلوب لإنشاء حِزم مساحة تخزين في Google Cloud Storage.
  • google-cloud-logging: هذا الحقل مطلوب لإنشاء السجلات.

5- نشر الدالة

  1. أنشئ حزمتَي Cloud Storage:
  • المجموعة الأولى: سيتم استخدام حزمة $BUCKET_NAME لتحميل الملفات تلخيصها. أنشئ متغير البيئة لتخزين اسم الحزمة على النحو التالي:
export BUCKET_NAME='Your Bucket Name'
  • المجموعة الثانية: سيتم استخدام حزمة $BUCKET_NAME-summaries لتخزين الملف الملخّص.
  • سنستخدم الأمر gsutil لإنشاء الحزم:
  • أداة gsutil هي تطبيق بلغة Python يتيح لك الوصول إلى Cloud Storage من سطر الأوامر. يمكنك استخدام أداة gsutil لتنفيذ مجموعة كبيرة من مهام إدارة الحزم والكائنات.
  • الاختصار mb يعني "إنشاء دلو"
gsutil mb -l $REGION gs://"$BUCKET_NAME"

gsutil mb -l $REGION gs://"$BUCKET_NAME"-summaries
  1. في هذه المرحلة، نحن جاهزون لنشر الدالة. قبل ذلك، تأكَّد من أنّ حساب الخدمة الخاص بحزمة Cloud Storage يتولّى دور الناشر في خدمة Cloud Storage.
  2. انتقِل إلى Google Cloud Storage وانقر على "الإعدادات" في اللوحة اليمنى.

8ce34eb05153abf2.png

  1. نسخ "حساب الخدمة" من الإعدادات وتدوينها.
  2. افتح "إدارة الهوية وإمكانية الوصول والمشرف" من قائمة التنقّل في "وحدة تحكّم Google Cloud".

c5a7103e90689684.png

  1. في علامة التبويب "الأذونات"، انقر على "منح إذن الوصول" وأدخِل رقم تعريف حساب الخدمة الذي هو مذكور في قسم "المبادئ الرئيسية الجديدة" واختَر "الدور" كـ "نشر/اشتراك ناشر". وانقر على "حفظ"

11c2df774fa740a9.png

  1. تفعيل هذا المصدر في دوال Cloud شغّل الأمر التالي من Cloud Shell Terminal:
  2. تأكَّد من أنّك في المجلد summarization-gcs-cloudfunction في هذا المشروع.
  3. نفِّذ الأمر التالي:
gcloud functions deploy summarizeArticles \
--gen2 \
--runtime=python311 \
--source=. \
--region=$REGION \
--project=$PROJECT_ID \
--entry-point=summarize_gcs_object \
--trigger-bucket=$BUCKET_NAME \
--set-env-vars=GCP_PROJECT=$PROJECT_ID,GCP_REGION=$REGION \
--max-instances=1 \
--quiet
  1. في وحدة التحكّم في Google Cloud، انتقِل إلى Cloud Functions:

سيؤدي ذلك إلى سرد دالة السحابة الإلكترونية رأس دالة ai التي أنشأناها للتو باستخدام عنوان URL العلني الخاص بها. سنستخدم هذه الدالة لإنشاء مشغل GCS.

6- استدعاء الدالة

عند تحميل ملف في حزمة $BUCKET_NAME*، يستدعي مشغّل GCS الدالة. تتضمّن حزمة $BUCKET_NAME"-summaries الملف الملخّص الذي يحمل الاسم نفسه.

قبل البدء، احفظ نموذج ملف story.md من مجلد summarization-gcs-cloudfunction على جهازك المحلي.

  1. في "وحدة تحكُّم Google Cloud"، انتقِل إلى Cloud Storage.
  2. افتح حزمة $BUCKET_NAME من قائمة الحِزم.
  3. انقر على "تحميل الملفات" واختَر ملف story.md.

يتم تشغيل الدالة summarizeArticles وتبدأ في تلخيص محتوى الملف.

  1. في مساحة الروابط اليمنى، انقر على الحزم.
  2. افتح حزمة "$BUCKET_NAME"-summaries".

يتضمّن ملف story.md ملخصًا لمحتوى الملف.

7. تَنظيم

لتجنُّب تحصيل رسوم من حسابك على Google Cloud مقابل الموارد المُستخدَمة في هذه المشاركة، يُرجى اتّباع الخطوات التالية:

  1. في وحدة تحكُّم Google Cloud، انتقِل إلى صفحة إدارة الموارد.
  2. في قائمة المشاريع، اختَر المشروع الذي تريد حذفه، ثم انقر على "حذف".
  3. في مربع الحوار، اكتب معرّف المشروع، ثم انقر على "إيقاف التشغيل" لحذف المشروع.
  4. إذا كنت تريد الاحتفاظ بالمشروع وحذف بعض الموارد فقط، انتقِل إلى وحدة تحكُّم Cloud Storage، وانقر على "الحزم"، ثم حدِّد الحِزم التي تريد حذفها وانقر على "حذف".
  5. يمكنك أيضًا حذف "دالة السحابة الإلكترونية" من خلال الانتقال إلى "دوال السحابة الإلكترونية"، ومن قائمة الدوال، حدِّد الدالة التي تريد حذفها وانقر على "حذف".

8. تهانينا

تهانينا! لقد تمكّنت من استخدام Vertex AI Text Generation LLM آليًا لإجراء تلخيص للنصوص في بياناتك. يمكنك الاطّلاع على مستندات منتجات Vertex AI LLM لمعرفة المزيد من المعلومات حول النماذج المتوفّرة.