تطبيق "تلخيص النصوص" مع Vertex AI وSvelte Kit

1. مقدمة

في هذا الدرس التطبيقي حول الترميز، أدرجنا الخطوات اللازمة لإنشاء تطبيق ويب يتيح تلخيص النصوص باستخدام النموذج اللغوي الكبير Vertex AI لإنشاء النصوص ( text-bison) في إطار عمل Svelte Kit. في ما يلي قائمة بالخدمات وحِزم التكنولوجيا المستخدَمة:

  1. Svelte Kit: إطار عمل لتطبيق ويب يعتمد على Svelte.
  2. واجهة برمجة تطبيقات Vertex AI PaLM 2: واجهة برمجة تطبيقات للنموذج اللغوي الكبير (LLM) تتيح الوصول إلى نموذج PaLM 2 من الذكاء الاصطناعي من Google.
  3. وظائف السحابة الإلكترونية: نظام أساسي بدون خادم لتشغيل الوظائف بدون الحاجة إلى إدارة الخوادم
  4. تشغيل السحابة الإلكترونية: نظام أساسي بدون خادم لتشغيل التطبيقات المضمّنة في حاويات.

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

ستقوم بإنشاء

  • تُستخدم دالة Python Cloud لاستدعاء واجهة برمجة التطبيقات makePalm
  • تطبيق ويب Svelte لواجهة المستخدم للتفاعل مع واجهة برمجة تطبيقات Vertex AI من خلال دالة Cloud
  • خدمة تشغيل في السحابة الإلكترونية لنشر التطبيق الذي تم إنشاؤه أعلاه بدون خادم

2. المتطلبات

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

3- قبل البدء

  1. في Google Cloud Console، ضمن صفحة أداة اختيار المشاريع، اختَر مشروعًا على Google Cloud أو أنشئه.
  2. تأكَّد من تفعيل الفوترة لمشروعك على السحابة الإلكترونية. التعرُّف على كيفية التحقّق مما إذا كانت الفوترة مفعّلة في مشروع
  3. ستستخدم Cloud Shell، وهي بيئة سطر أوامر يتم تشغيلها في Google Cloud للتفاعل مع خدمات Google Cloud. يمكنك الرجوع إلى المستندات حول أوامر gcloud واستخدامها. من Cloud Console، انقر على "تفعيل Cloud Shell" في أعلى يسار الصفحة:

51622c00acec2fa.png

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

gcloud config set project <YOUR_PROJECT_ID>
  1. تأكَّد من تفعيل جميع واجهات برمجة التطبيقات اللازمة من خلال تنفيذ الأمر التالي من "محطة Cloud Shell":
gcloud services enable cloudbuild.googleapis.com \
run.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.googleapis.com
  1. أنشئ متغيرات بيئة لـ 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 والنقر على الزر "تفعيل حافظة السحابة الإلكترونية"، وعندما يتم تحميل الوحدة الطرفية، انقر بسرعة على الزر "فتح المحرر" كما هو موضّح في الصورة أدناه:

8e501bd2c41d11b8.png

بمجرد فتح المحرر، يُفترض أن تتمكن من رؤية الملف 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:

43a6b247098a9edb.png

سيؤدي هذا إلى سرد دالة السحابة الإلكترونية الخاصة بدالة رأسك، والتي أنشأناها للتو باستخدام عنوان 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.

2958bb12343368a9.png

نشر الواجهة الأمامية على 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 والاستمتاع بها🤖.

cd94442961bb5308.gif

6- تَنظيم

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

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

7. تهانينا

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