1. مقدمة
في هذا الدرس التطبيقي حول الترميز، يمكنك الاطّلاع على خطوات تلخيص المحتوى الذي تم تحميله في Google Cloud Storage باستخدام النموذج اللغوي الكبير المستند إلى Vertex AI والمخصّص لإنشاء النصوص ( text-bison) كدالة سحابية في Python. قائمة الخدمات المستخدَمة هي:
- Vertex AI PaLM API: هي واجهة برمجة تطبيقات لنموذج لغوي كبير (LLM) تتيح الوصول إلى نموذج PaLM Text Bison من Google AI.
- Cloud Functions: هي منصة بدون خادم لتشغيل الدوال بدون الحاجة إلى إدارة الخوادم.
- Cloud Storage: خدمة مُدارة لتخزين البيانات غير المنظَّمة
- Cloud Logging: خدمة مُدارة بالكامل تتيح لك تخزين بيانات التسجيل والبحث فيها وتحليلها ومراقبتها وإرسال تنبيهات بشأنها.
ما ستنشئه
ستنشئ تطبيقًا يتم نشره كدالة Python Cloud Function لتلخيص النص باستخدام Palm API.
2. المتطلبات
3- قبل البدء
- في Google Cloud Console، ضمن صفحة اختيار المشروع، اختَر مشروعًا على Google Cloud أو أنشِئه.
- تأكَّد من تفعيل الفوترة لمشروعك على السحابة الإلكترونية. تعرَّف على كيفية التحقّق مما إذا كانت الفوترة مفعَّلة في مشروع.
- تأكَّد من تفعيل جميع واجهات برمجة التطبيقات اللازمة (Cloud Storage API وVertex AI API وCloud Function API وCloud Logging).
- ستستخدم Cloud Shell، وهي بيئة سطر أوامر تعمل في Google Cloud. راجِع المستندات لمعرفة أوامر gcloud وطريقة استخدامها.
- من Cloud Console، انقر على "تفعيل Cloud Shell" في أعلى يسار الصفحة:

إذا لم يتم ضبط مشروعك، استخدِم الأمر التالي لضبطه:
gcloud config set project <YOUR_PROJECT_ID>
- تأكَّد من تفعيل جميع واجهات برمجة التطبيقات اللازمة من خلال تنفيذ الأمر التالي من "وحدة Cloud Shell الطرفية":
gcloud services enable cloudfunctions.googleapis.com \
aiplatform.googleapis.com \
storage.googleapis.com \
logging.googleapis.com \
eventarc.googleapis.com
- أنشئ متغيّرات بيئة لكل من REGION وPROJECT_ID من خلال تنفيذ الأمر التالي من "وحدة Cloud Shell الطرفية":
export PROJECT_ID=<your project id>
export REGION=us-central1
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 API للنصوص مثالية للمهام التي يمكن إكمالها بردّ واحد من واجهة برمجة التطبيقات، بدون الحاجة إلى محادثة مستمرة. لننشئ الآن Cloud Function لهذا الغرض.
نفِّذ الأوامر التالية في 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.
يحتوي هذا المجلد على ملفَين:
- يحدّد ملف Python main.py دالة HTTP بسيطة في Cloud Functions تستخدم "نموذج إنشاء النصوص" في Vertex AI لإنشاء ملخّصات قصيرة من المدخلات النصية. تتلقّى الدالة نصًا كمعلَمة وتعرض ملخّصًا موجزًا للنص. تستخدم الدالة مجموعة متنوّعة من المَعلمات للتحكّم في عملية الإنشاء، مثل الإبداع والتنوّع والطلاقة في النص الذي يتم إنشاؤه. تقبل دالة Cloud Function عبر HTTP عنصر طلب وتعرض ملخّص النموذج كاستجابة.
- يحتوي ملف requirements.txt على تبعيات الحزمة:
- functions-framework==3.: يضمن استخدام الدالة لأحدث الميزات وإصلاحات الأخطاء في Functions Framework.
- google-cloud-aiplatform: مطلوبة لاستخدام "نموذج إنشاء النصوص" في Vertex AI.
- google-cloud-storage: مطلوبة لإنشاء حِزم تخزين في Google Cloud Storage.
- google-cloud-logging: مطلوبة لإنشاء السجلات.
5- تفعيل الدالة
- أنشئ حزمتَين في 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
- في هذه المرحلة، نكون جاهزين لنشر الدالة. ولكن قبل ذلك، تأكَّد من أنّ حساب الخدمة الخاص بحزمة Cloud Storage لديه دور "ناشر Pub/Sub".
- انتقِل إلى Google Cloud Storage، وفي اللوحة اليمنى، انقر على "الإعدادات".

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

- في علامة التبويب "الأذونات"، انقر على GRANT ACCESS (منح إذن الوصول) وأدخِل معرّف حساب الخدمة الذي دوّنته في قسم "الجهات الرئيسية الجديدة" (New principals)، واختَر الدور "ناشر Pub/Sub" (Pub/Sub Publisher)، ثم انقر على SAVE (حفظ).

- انشر هذا المصدر إلى Cloud Functions. نفِّذ الأمر التالي من "وحدة Cloud Shell الطرفية":
- تأكَّد من أنّك في المجلد summarization-gcs-cloudfunction في هذا المشروع.
- نفِّذ الأمر التالي:
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
- في Google Cloud Console، انتقِل إلى Cloud Functions:
سيؤدي ذلك إلى إدراج دالة Cloud Function التي أنشأناها للتو باسم vertex-ai-function مع عنوان URL العلني الخاص بها. سنستخدم هذه الدالة لإنشاء مشغّل GCS.
6. استدعاء الدالة
عند تحميل ملف في الحزمة $BUCKET_NAME*،* يتم تفعيل الدالة من خلال مشغّل GCS. يتضمّن الحزمة $BUCKET_NAME"-summaries الملف الملخّص بالاسم نفسه.
قبل البدء، احفظ ملف story.md النموذجي من مجلد summarization-gcs-cloudfunction على جهازك المحلي.
- في Google Cloud Console، انتقِل إلى Cloud Storage.
- افتحوا حزمة
$BUCKET_NAMEمن قائمة الحِزم. - انقر على "تحميل الملفات" (Upload files) واختَر ملف story.md.
يتم تشغيل الدالة summarizeArticles وتبدأ في تلخيص محتوى الملف.
- في لوحة التنقّل اليمنى، انقر على "الحِزم".
- افتحوا مجموعة
$BUCKET_NAME"-summaries.
يتضمّن الملف story.md ملخّصًا لمحتوى الملف.
7. تَنظيم
لتجنُّب تحمّل رسوم في حسابك على Google Cloud مقابل الموارد المستخدَمة في هذه المشاركة، اتّبِع الخطوات التالية:
- في Google Cloud Console، انتقِل إلى صفحة إدارة الموارد.
- في قائمة المشاريع، اختَر المشروع الذي تريد حذفه، ثم انقر على "حذف".
- في مربّع الحوار، اكتب رقم تعريف المشروع، ثم انقر على "إيقاف" لحذف المشروع.
- إذا كنت تريد الاحتفاظ بالمشروع وحذف بعض الموارد فقط، انتقِل إلى وحدة تحكّم Cloud Storage، وانقر على "حِزم" (Buckets)، ثم ضَع علامة في المربّعات بجانب الحِزم التي تريد حذفها من القائمة، وانقر على "حذف" (DELETE).
- يمكنك أيضًا حذف دالة Cloud Function من خلال الانتقال إلى Cloud Functions، ثم وضع علامة في مربّع الاختيار بجانب الدالة التي تريد حذفها من قائمة الدوال، والنقر على DELETE.
8. تهانينا
تهانينا! لقد استخدمت بنجاح برنامجًا من نماذج اللغات الكبيرة لإنشاء النصوص في Vertex AI Text Generation بشكل آلي لتلخيص النصوص في بياناتك. يمكنك الاطّلاع على مستندات منتج Vertex AI LLM لمعرفة المزيد عن النماذج المتاحة.