Cloud Function برای خلاصه‌سازی محتوا با استفاده از PalM Vertex AI API و Google Cloud Storage

1. معرفی

در این لبه کد، می‌توانید مراحل انجام خلاصه‌سازی محتوای آپلود شده در Google Cloud Storage را با استفاده از Vertex AI Large Language Model برای تولید متن ( text-bison ) به عنوان یک تابع ابری در پایتون بیابید. لیست خدمات مورد استفاده عبارتند از:

  • Vertex AI PalM API: API مدل زبان بزرگ (LLM) که دسترسی به مدل PalM Text Bison گوگل AI را فراهم می کند.
  • توابع ابری: یک پلت فرم بدون سرور برای اجرای توابع بدون نیاز به مدیریت سرورها.
  • Cloud Storage: یک سرویس مدیریت شده برای ذخیره سازی داده های بدون ساختار.
  • Cloud Logging: یک سرویس کاملاً مدیریت شده که به شما امکان می دهد داده های گزارش را ذخیره، جستجو، تجزیه و تحلیل، نظارت و هشدار دهید.

چیزی که خواهی ساخت

شما یک برنامه کاربردی ایجاد خواهید کرد که به عنوان یک تابع ابری پایتون برای خلاصه کردن متن با استفاده از Palm API مستقر شده است.

2. الزامات

  • مرورگری مانند کروم یا فایرفاکس
  • یک پروژه Google Cloud با فعال کردن صورت‌حساب

3. قبل از شروع

  1. در Google Cloud Console ، در صفحه انتخاب پروژه، یک پروژه Google Cloud را انتخاب یا ایجاد کنید.
  2. مطمئن شوید که صورتحساب برای پروژه Cloud شما فعال است. با نحوه بررسی فعال بودن صورت‌حساب در پروژه آشنا شوید.
  3. مطمئن شوید که همه APIهای لازم (Cloud Storage API، Vertex AI API، Cloud Function API و Cloud Logging) فعال هستند.
  4. شما از Cloud Shell ، یک محیط خط فرمان در حال اجرا در Google Cloud استفاده خواهید کرد. برای دستورات و استفاده از gcloud به اسناد مراجعه کنید.
  5. از Cloud Console، روی Activate Cloud Shell در گوشه سمت راست بالا کلیک کنید:

51622c00acec2fa.png

اگر پروژه شما تنظیم نشده است، از دستور زیر برای تنظیم آن استفاده کنید:

gcloud config set project <YOUR_PROJECT_ID>
  1. با اجرای دستور زیر از ترمینال Cloud Shell مطمئن شوید که تمام API های لازم فعال هستند:
gcloud services enable cloudfunctions.googleapis.com \
aiplatform.googleapis.com \
storage.googleapis.com \
logging.googleapis.com \
eventarc.googleapis.com
  1. با اجرای دستور زیر از ترمینال Cloud Shell، متغیرهای محیطی را برای REGION و PROJECT_ID ایجاد کنید:
export PROJECT_ID=<your project id>

export REGION=us-central1

4. Cloud Function برای فراخوانی Vertex AI API

ما یک تابع ابری پایتون ایجاد می کنیم و 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 خود که به شما امکان می دهد از نقش های حساب سرویس استفاده کنید و حساب سرویس را به منابع دیگر متصل کنید، دستور زیر را اجرا کنید. شناسه ایمیل حساب Google خود را جایگزین USER_EMAIL کنید .

gcloud iam service-accounts add-iam-policy-binding vertex-service-acc@$PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser

ایجاد تابع پایتون

PaLM API برای متن برای کارهایی ایده آل است که با یک پاسخ 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 Editor را از ترمینال باز کنید و محتویات پوشه پروژه را که به تازگی از github به ماشین پوسته ابری شما کلون شده است بررسی کنید.

این پوشه شامل 2 فایل است:

  1. فایل main.py پایتون یک تابع ساده HTTP Cloud را تعریف می کند که از یک مدل تولید متن Vertex AI برای تولید خلاصه های کوتاهی از ورودی های متن استفاده می کند. تابع یک ورودی متن را به عنوان پارامتر می گیرد و خلاصه کوتاهی از ورودی را برمی گرداند. این تابع از پارامترهای مختلفی برای کنترل فرآیند تولید استفاده می کند، مانند خلاقیت، تنوع و روان بودن متن تولید شده. تابع ابری HTTP یک شی درخواست را می پذیرد و خلاصه مدل را به عنوان پاسخ برمی گرداند.
  2. فایل requires.txt وابستگی بسته دارد:
  • functions-framework==3. : اطمینان حاصل می کند که عملکرد از جدیدترین ویژگی ها و رفع اشکالات Framework توابع استفاده می کند.
  • google-cloud-aiplatform : برای استفاده از مدل تولید متن Vertex AI مورد نیاز است.
  • google-cloud-storage: برای ایجاد سطل های ذخیره سازی در Google Cloud Storage لازم است.
  • google-cloud-logging : برای تولید گزارش‌ها لازم است.

5. تابع را مستقر کنید

  1. دو سطل Cloud Storage ایجاد کنید:
  • سطل اول: سطل $BUCKET_NAME برای آپلود فایل ها به منظور خلاصه کردن استفاده خواهد شد. متغیر محیطی را برای ذخیره نام Bucket به صورت زیر ایجاد کنید:
export BUCKET_NAME='Your Bucket Name'
  • سطل دوم: سطل $BUCKET_NAME-summaries برای ذخیره فایل خلاصه شده استفاده خواهد شد.
  • ما از دستور gsutil برای ایجاد سطل ها استفاده می کنیم:
  • gsutil یک برنامه پایتون است که به شما امکان می دهد از طریق خط فرمان به Cloud Storage دسترسی پیدا کنید. می توانید از gsutil برای انجام طیف گسترده ای از وظایف مدیریت سطل و شی استفاده کنید.
  • mb مخفف "Make Bucket" است
gsutil mb -l $REGION gs://"$BUCKET_NAME"

gsutil mb -l $REGION gs://"$BUCKET_NAME"-summaries
  1. در این مرحله، ما آماده استقرار تابع هستیم. اما قبل از آن، مطمئن شوید که حساب سرویس Cloud Storage Bucket نقش Pub/Sub Publisher را داشته باشد.
  2. به Google Cloud Storage بروید و در قسمت سمت چپ روی «تنظیمات» کلیک کنید.

8ce34eb05153abf2.png

  1. "حساب سرویس" را از تنظیمات کپی کنید و آن را یادداشت کنید.
  2. IAM و Admin را از منوی ناوبری کنسول Google Cloud باز کنید.

c5a7103e90689684.png

  1. در تب Permissions، روی GRANT ACCESS کلیک کنید و شناسه اکانت سرویس را که ذکر کرده اید، در قسمت New principals وارد کنید و Role را به عنوان "Pub/Sub Publisher" انتخاب کنید و روی ذخیره کلیک کنید.

11c2df774fa740a9.png

  1. این منبع را در Cloud Functions مستقر کنید. دستور زیر را از ترمینال پوسته ابری اجرا کنید:
  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 بروید ::

در این قسمت، تابع ابری vertex-ai-function که به تازگی با URL عمومی آن ایجاد کردیم، فهرست می شود. ما از این تابع برای ایجاد یک تریگر GCS استفاده خواهیم کرد.

6. تابع را فراخوانی کنید

وقتی فایلی در سطل $BUCKET_NAME * آپلود می‌شود، راه‌انداز GCS تابع را فراخوانی می‌کند. سطل $BUCKET_NAME"-summaries شامل فایل خلاصه شده با همین نام است.

قبل از شروع، فایل نمونه story.md را از پوشه summarization-gcs-cloudfunction در دستگاه محلی خود ذخیره کنید.

  1. در کنسول Google Cloud، به Cloud Storage بروید.
  2. سطل $BUCKET_NAME خود را از لیست سطل ها باز کنید.
  3. روی Upload files کلیک کنید و فایل story.md را انتخاب کنید.

تابع summarizeArticles فعال می شود و شروع به خلاصه کردن محتویات فایل می کند.

  1. در پنجره ناوبری سمت چپ، روی Buckets کلیک کنید.
  2. سطل $BUCKET_NAME"-summaries خود را باز کنید.

فایل story.md شامل خلاصه ای از محتویات فایل می باشد.

7. پاکسازی کنید

برای جلوگیری از تحمیل هزینه به حساب Google Cloud خود برای منابع استفاده شده در این پست، این مراحل را دنبال کنید:

  1. در کنسول Google Cloud، به صفحه مدیریت منابع بروید.
  2. در لیست پروژه، پروژه ای را که می خواهید حذف کنید انتخاب کنید و سپس روی Delete کلیک کنید.
  3. در محاوره، شناسه پروژه را تایپ کنید و سپس روی Shut down کلیک کنید تا پروژه حذف شود.
  4. اگر می‌خواهید پروژه را نگه دارید و فقط برخی منابع را حذف کنید، به کنسول Cloud Storage بروید، روی Buckets کلیک کنید و از لیست، سطل‌هایی را که می‌خواهید حذف کنید را بررسی کنید و روی DELETE کلیک کنید.
  5. همچنین می‌توانید با رفتن به Cloud Function، عملکرد Cloud را حذف کنید و از لیست توابع، یکی را که می‌خواهید حذف کنید را علامت بزنید و روی DELETE کلیک کنید.

8. تبریک می گویم

تبریک می گویم! شما با موفقیت از Vertex AI Text Generation LLM به صورت برنامه نویسی برای انجام خلاصه سازی متن روی داده های خود استفاده کرده اید. برای کسب اطلاعات بیشتر در مورد مدل های موجود ، مستندات محصول Vertex AI LLM را بررسی کنید.