برنامه Text Summarizer با Vertex AI و Svelte Kit

1. معرفی

در این لبه کد، من مراحل ساخت یک برنامه وب را فهرست کرده ام که به شما امکان می دهد خلاصه سازی متن را با استفاده از مدل زبان بزرگ Vertex AI برای API تولید متن ( text-bison ) در چارچوب Svelte Kit انجام دهید. لیست خدمات و پشته فناوری استفاده شده عبارتند از:

  1. Svelte Kit: یک چارچوب برنامه کاربردی وب که بر روی Svelte ساخته شده است.
  2. Vertex AI PalM 2 API: API مدل زبان بزرگ (LLM) که امکان دسترسی به مدل Palm 2 گوگل AI را فراهم می کند.
  3. توابع ابری: یک پلت فرم بدون سرور برای اجرای توابع بدون نیاز به مدیریت سرورها.
  4. Cloud Run: یک پلت فرم بدون سرور برای اجرای برنامه های کاربردی کانتینری.

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

شما ایجاد خواهید کرد

  • یک تابع ابری پایتون برای فراخوانی API Palm استفاده می شود
  • یک برنامه وب Svelte برای رابط کاربری برای تعامل با Vertex AI API از طریق عملکرد Cloud
  • یک سرویس Cloud Run برای استقرار برنامه ایجاد شده در بالا بدون سرور

2. الزامات

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

3. قبل از شروع

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

51622c00acec2fa.png

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

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

export REGION=asia-south1

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 2 for text برای کارهایی ایده آل است که با یک پاسخ API بدون نیاز به مکالمه مداوم تکمیل شوند. حالا بیایید Cloud Function را برای آن ایجاد کنیم.

یک دایرکتوری جدید با استفاده از پوسته ابری ایجاد کنید و به آن بروید. (از همان ترمینال باز شده در بخش قبل استفاده کنید):

mkdir vertex-ai-functions

cd vertex-ai-functions

یک فایل main.py برای نوشتن Python Cloud Function و فایل requires.txt برای ذخیره وابستگی ها ایجاد کنید.

touch main.py requirements.txt

این فایل پایتون یک تابع ساده HTTP Cloud را تعریف می کند که از یک مدل تولید متن Vertex AI برای تولید خلاصه های کوتاهی از ورودی های متن استفاده می کند. تابع یک ورودی متن را به عنوان پارامتر می گیرد و خلاصه کوتاهی از ورودی را برمی گرداند. این تابع از پارامترهای مختلفی برای کنترل فرآیند تولید استفاده می کند، مانند خلاقیت، تنوع و روان بودن متن تولید شده. HTTP Cloud Function یک شی درخواست را می پذیرد و خلاصه مدل را به عنوان پاسخ برمی گرداند.

Google Cloud Editor را باز کنید. می‌توانید با باز کردن یک تب جدید کنسول Google Cloud و کلیک بر روی دکمه فعال کردن پوسته ابری، این مورد را باز کنید و هنگامی که ترمینال بارگیری شد، همانطور که در تصویر زیر نشان داده شده است، به سرعت روی دکمه OPEN EDITOR کلیک کنید:

8e501bd2c41d11b8.png

پس از باز شدن ویرایشگر، باید بتوانید فایل main.py را ببینید. محتوای آن را با کد این پیوند مخزن جایگزین کنید. توضیح کد به عنوان نظرات کد گنجانده شده است. به طور خلاصه، این کد روشی مختصر برای تولید خلاصه های کوتاه از ورودی های متن با استفاده از Vertex AI ارائه می دهد.

فایل requires.txt وابستگی بسته دارد: functions-framework==3.*: اطمینان حاصل می کند که تابع از آخرین ویژگی ها و رفع اشکالات Functions Framework استفاده می کند. google-cloud-aiplatform: برای استفاده از Vertex AI Text Generation Model لازم است.

این را به فایل require.txt اضافه کنید:

functions-framework==3.*
google-cloud-aiplatform

استقرار در توابع ابری

حالا بیایید این منبع را در Cloud Functions مستقر کنیم. دستور زیر را از ترمینال پوسته ابری اجرا کنید:

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

در این قسمت تابع ابری vertex-ai-function که به تازگی با URL عمومی آن ایجاد کردیم در صفحه تابع نمایش داده می شود. ما از این برای اتصال Frontend و Vertex AI API خود استفاده می کنیم. این URL را ذخیره کنید. همچنین ممکن است مجبور شوید سرویس زیربنایی Cloud Run را برای دسترسی غیرقانونی مجاز کنید. استفاده از سرویس احراز هویت برای اهداف امنیتی توصیه می شود.

5. ساخت و استقرار جلویی

این برنامه دارای یک رابط frontend برای تعامل با Vertex AI API ما از طریق Google Cloud Functions است. بیایید اکنون آن را ایجاد کنیم.

کلون کردن مخزن و راه اندازی Dockerfile

به دایرکتوری root بروید و مخزن git را کلون کنید.

cd ~/

git clone https://github.com/bhaaratkrishnan/vertex-summarizer-svelte.git

cd  vertex-summarizer-svelte

برای اجرای این برنامه، باید متغیر محیطی PUBLIC_FUNCTION_URL را در Dockerfile اضافه کنید. این URL همان URL تابع Cloud است که در بخش قبلی ایجاد و ذخیره شده است.

Cloud Editor را باز کنید و محتوای فایل Dockerfile را ویرایش کنید. متغیر PUBLIC_FUNCTION_URL را با URL تابع Cloud خود جایگزین کنید.

2958bb12343368a9.png

Frontend را در Cloud Run اجرا کنید

ما از Google Artifact Registry برای ساخت و ذخیره تصاویر Docker خود استفاده خواهیم کرد. Cloud Run برای استقرار کانتینرها در معماری بدون سرور استفاده می شود.

با اجرای دستور زیر در ترمینال Cloud Shell یک مخزن رجیستری Artifact ایجاد کنید:

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 تگ کنید. برچسب گذاری تصویر Docker با نام مخزن، فرمان فشار docker را برای فشار دادن تصویر به یک مکان خاص پیکربندی می کند.

docker build . -t ${DOCKER_URL}

تصویر را به رجیستری Artifact فشار دهید.

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. در لیست پروژه، پروژه ای را که می خواهید حذف کنید انتخاب کنید و سپس روی Delete کلیک کنید
  3. در گفتگو، شناسه پروژه را تایپ کنید و سپس بر روی Shut down کلیک کنید تا پروژه حذف شود
  4. اگر می خواهید پروژه را حفظ کنید و فقط سرویس Cloud Run را حذف کنید، مرحله اینجا را دنبال کنید
  5. اگر می‌خواهید فقط عملکرد Cloud را حذف کنید یا دسترسی را لغو کنید، می‌توانید این کار را از اینجا انجام دهید

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

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