אפליקציית Chat עם PaLM API ב-Cloud Run

1. מבוא

בשיעור הזה תלמדו איך לפתח ולפרוס אפליקציית צ'אט מבוססת-AI באפליקציית אינטרנט בתור שירות Cloud Run ב-Google Cloud. אפליקציית הצ'אט הזו מאפשרת למשתמשים לשלוח שאילתות ולקבל תשובה באמצעות מודל PaLM ל-Chat Bison ( text-chat).

מה תפַתחו

היצירה שלך

  • הסביבה ב-Google Cloud להרצת האפליקציה
  • תמונת Docer של האפליקציה
  • שירות Cloud Run שמפעיל את האפליקציה

2. דרישות

  • דפדפן כמו Chrome או Firefox
  • פרויקט ב-Google Cloud שמופעל בו חיוב

3. לפני שמתחילים

  1. במסוף Google Cloud, בדף בורר הפרויקטים, בוחרים או יוצרים פרויקט ב-Google Cloud.
  2. צריך לוודא שהחיוב מופעל בפרויקט שלכם ב-Cloud. איך בודקים אם החיוב מופעל בפרויקט
  3. מפעילים את Cloud Shell ממסוף Google Cloud לפי ההוראות שמפורטות כאן.
  4. אם הפרויקט לא מוגדר, מגדירים אותו באמצעות הפקודה הבאה:
gcloud config set project <YOUR_PROJECT_ID>
  1. ב-Cloud Shell, מגדירים את משתני הסביבה הבאים:
export GCP_PROJECT=<YOUR_PROJECT_ID>
export GCP_REGION=us-central1
  1. כדי להפעיל את ממשקי ה-API הנחוצים של Google Cloud, מריצים את הפקודות הבאות בטרמינל של Cloud Shell:
gcloud services enable cloudbuild.googleapis.com cloudfunctions.googleapis.com run.googleapis.com logging.googleapis.com storage-component.googleapis.com aiplatform.googleapis.com

4. הגדרת הסביבה

  1. כדי להעתיק את הקוד לדוגמה לפרויקט, משכפלים את המאגר ב-Cloud Shell:
git clone https://github.com/rominirani/genai-apptemplates-googlecloud
  1. הפקודה הזו תשכפל את תוכן המאגר לתיקייה genai-templates-googlecloud.
  2. כדי להגיע לתיקייה של הפרויקט הרצוי, מריצים את הפקודה הבאה מהטרמינל של Cloud Shell:
cd genai-apptemplates-googlecloud/chat-flask-cloudrun
  1. מגדירים את משתני הסביבה הבאים לאתחול של Vertex AI:

GCP_PROJECT : מזהה הפרויקט ב-Google Cloud. לדוגמה: my_project.

GCP_REGION : האזור שבו רוצים לפרוס את הפונקציה של Cloud Functions. לדוגמה: us-central1.

export GCP_PROJECT='YOUR_PROJECT'
export GCP_REGION='us-central1'

5. בניית קובץ אימג' של Docker

כדי לפתח קובץ אימג' של Docker לאפליקציה ולהעביר אותו בדחיפה ל-Artifact Registry, מבצעים את הפעולות הבאות:

  1. מגדירים משתנה סביבה למאגר של Artifact Registry. שמות יכולים להכיל רק אותיות קטנות, מספרים ומקפים, והם חייבים להתחיל באות ולהסתיים באות או במספר. לדוגמה: my-chat-app-repo.
export AR_REPO='my-chat-app-repo'
  1. מגדירים משתנה סביבה לשם השירות. לדוגמה: chat-flask-app.
export SERVICE_NAME='chat-flask-app'
  1. יוצרים את המאגר בפורמט Docker.
gcloud artifacts repositories create "$AR_REPO" --location="$GCP_REGION" --repository-format=Docker
  1. הגדרת אימות של Docer.
gcloud auth configure-docker "$GCP_REGION-docker.pkg.dev"
  1. יוצרים את התמונה.
gcloud builds submit --tag "$GCP_REGION-docker.pkg.dev/$GCP_PROJECT/$AR_REPO/$SERVICE_NAME"
  1. כדי לבדוק אם התמונה בדחיפה ל-Artifact Registry, עוברים לדף Artifact Registry. מחפשים את המאגר שיצרתם בדף הזה.

6. פורסים את האפליקציה

  1. פריסת האפליקציה כשירות ב-Cloud Run.
gcloud run deploy "$SERVICE_NAME" \ 
--port=8080 \ 
--image="$GCP_REGION-docker.pkg.dev/$GCP_PROJECT/$AR_REPO/$SERVICE_NAME" \ 
--allow-unauthenticated \ 
--region=$GCP_REGION \ 
--platform=managed  \ 
--project=$GCP_PROJECT \ 
--set-env-vars=GCP_PROJECT=$GCP_PROJECT,GCP_REGION=$GCP_REGION

השלב הזה עשוי להימשך כמה שניות.

  1. כדי להפעיל את אפליקציית הצ'אט, לוחצים על כתובת ה-URL של השירות.

56c06b62e0ac95bf.png

אפליקציית הצ'אט תיפתח בכרטיסייה חדשה כמו בצילום המסך הבא:

eebde9c35c171563.png

7. הסרת המשאבים

כדי להימנע מצבירת חיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם בפוסט הזה:

  1. במסוף Google Cloud, נכנסים לדף Manage resources:
  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
  4. כדי להשאיר את הפרויקט, מדלגים על השלבים שלמעלה ומוחקים את השירות Cloud Run על ידי מעבר אל Cloud Run, ומתוך רשימת השירותים מסמנים את השירות שרוצים למחוק ולוחצים על DELETE.

8. מזל טוב

מעולה! פיתחתם ופרסתם בהצלחה אפליקציית צ'אט מבוססת-AI לאפליקציית אינטרנט בתור שירות Cloud Run ב-Google Cloud. אתם יכולים להשתמש באפליקציית הצ'אט הזו כדי לאפשר למשתמשים להזין את השאילתה שלהם, והאפליקציה תפעיל את מודל הצ'אט של Vertex AI ותספק את התשובה.