מענה על שאלות משיחות ב-Chat באמצעות אפליקציית Gemini AI Chat

במדריך הזה תלמדו איך ליצור אפליקציה ל-Google Chat שתענה על שאלות על סמך שיחות במרחבים משותפים ב-Chat באמצעות AI גנרטיבי שמבוסס על Vertex AI עם Gemini. אפליקציית Chat משתמשת ב-Google Workspace Events API וב-Pub/Sub כדי לזהות שאלות שפורסמו במרחבים משותפים ב-Chat ולענות עליהן בזמן אמת, גם אם לא ציינו את השם שלה.

אפליקציית Chat משתמשת בכל ההודעות שנשלחות במרחב המשותף כמקור נתונים ובסיס ידע: כשמישהו שואל שאלה, אפליקציית Chat מחפשת תשובות ששותפו בעבר ומשתפת אחת מהן. אם לא נמצאה תשובה, יופיע הכיתוב 'לא ניתן לענות'. בכל תשובה, המשתמשים יכולים ללחוץ על לחצן הפעולה הנוסף כדי לציין את אחד מהמנהלים של המרחב המשותף ולבקש תשובה. בעזרת ה-AI של Gemini, אפליקציית Google Chat מתאימה את בסיס הידע שלה ומרחיבה אותו תוך כדי אימון מתמשך על שיחות במרחבים משותפים שהיא מתווספת אליהם.

כך פועלת אפליקציית Chat במרחב משותף לתמיכה ולתחילת העבודה של עובדים חדשים:

  • אזכור של אפליקציית Assistant מביא לצירוף שלה למרחב המשותף.
    איור 1. רון מוסיף את אפליקציית Chat עם העוזר הדיגיטלי מבוסס-AI למרחב משותף ב-Chat.
  • דנה שואלת שאלה.
    איור 2. דנה שואלת אם החברה מציעה הדרכה בנושא דיבור בציבור.
  • אפליקציית Chat עם עוזרת ה-AI עונה על השאלה.
    איור 3. אפליקציית הצ'אט עם עוזר ה-AI מבוסס-הידע מבקשת מ-Vertex AI עם Gemini לענות על השאלה של דנה על סמך היסטוריית השיחות במרחב המשותף ב-Chat, ולאחר מכן משתפת את התשובה.

דרישות מוקדמות

מטרות

  • פיתוח אפליקציה ל-Chat שמשתמשת ב-AI גנרטיבי כדי לענות על שאלות על סמך הידע ששותף בשיחות במרחבים משותפים ב-Chat.
  • בעזרת AI גנרטיבי:
    • זיהוי של שאלות של עובדים ותשובות עליהן.
    • לקבל מידע חדש משיחות מתמשכות במרחבים משותפים ב-Chat.
  • לשמוע הודעות במרחבים משותפים ב-Chat ולענות להן בזמן אמת, גם אם לא נשלחה אליכם הודעה ישירות באפליקציית Chat.
  • שמירת הודעות על ידי כתיבה לקריאה ממסד נתונים של Firestore.
  • אם לא מצאתם תשובה לשאלה, תוכלו להזכיר את מנהלי המרחב המשותף ב-Chat כדי לקבל עזרה.

ארכיטקטורה

בתרשים הבא מוצגת הארכיטקטורה של המשאבים של Google Workspace ו-Google Cloud שבהם משתמשת אפליקציית Chat עם העוזרת הווירטואלית מבוססת-ה-AI.

תרשים הארכיטקטורה של אפליקציית Chat עם עוזרת ה-AI

כך פועלת אפליקציית Chat עם AI:

  • משתמש מוסיף את אפליקציית Chat עם העוזר הדיגיטלי מבוסס-AI למרחב משותף ב-Chat:

    1. באפליקציית Chat, המשתמש שהוסיף את האפליקציה למרחב המשותף ב-Chat יתבקש להגדיר את האימות וההרשאה.

    2. אפליקציית Chat מאחזרת את ההודעות במרחב המשותף על ידי קריאה ל-method‏ spaces.messages.list ב-Chat API, ולאחר מכן מאחסנת את ההודעות שאוחזרו במסד נתונים של Firestore.

    3. אפליקציית Chat קוראת ל-method‏ subscriptions.create ב-Google Workspace Events API כדי להתחיל להאזין לאירועים כמו הודעות במרחב המשותף. נקודת הקצה של ההתראות של המינוי היא נושא Pub/Sub שמשתמש ב-Eventarc כדי להעביר את האירוע לאפליקציית Chat.

    4. באפליקציית Chat תפורסם הודעה מקדימה על המרחב המשותף.

  • משתמש במרחב ב-Chat מפרסם הודעה:

    1. אפליקציית Chat מקבלת את ההודעה בזמן אמת מהנושא ב-Pub/Sub.

    2. אפליקציית Chat מוסיפה את ההודעה למסד הנתונים של Firestore.

      אם משתמש עורך או מוחק את ההודעה מאוחר יותר, אפליקציית Chat מקבלת את האירוע המעודכן או המחוק בזמן אמת, ולאחר מכן מעדכנת או מוחקת את ההודעה במסד הנתונים של Firestore.

    3. אפליקציית Chat שולחת את ההודעה ל-Vertex AI באמצעות Gemini:

      1. ההנחיה מורה ל-Vertex AI עם Gemini לבדוק אם ההודעה כוללת שאלה. אם כן, Gemini עונה על השאלה על סמך היסטוריית ההודעות של המרחב המשותף ב-Chat שנשמרת ב-Firestore, ואז אפליקציית Google Chat שולחת את ההודעה למרחב המשותף ב-Chat. אם לא, אל תשיבו להודעה.

      2. אם מערכת Vertex AI עם Gemini עונה על השאלה, אפליקציית Chat מפרסמת את התשובה באמצעות קריאה ל-method‏ spaces.messages.create ב-Chat API באמצעות אימות האפליקציה.

        אם מערכת Vertex AI עם Gemini לא מצליחה לענות על השאלה, תוצג באפליקציית Chat הודעה על כך שלא נמצאה תשובה לשאלה הזו בהיסטוריה של המרחב המשותף ב-Chat.

        ההודעות תמיד כוללות לחצן פעולה נוסף שהמשתמשים יכולים ללחוץ עליו, וכתוצאה מכך תתבצע אזכור של מנהל המרחב המשותף באפליקציית Chat עם בקשה לענות.

  • אפליקציית Chat מקבלת התראה על מחזור חיים מ-Google Workspace Events API על כך שפג התוקף של המינוי למרחב המשותף ב-Chat:

    1. אפליקציית Chat שולחת בקשה לחדש את המינוי באמצעות קריאה ל-method‏ subscriptions.patch ב-Google Workspace Events API.
  • אפליקציית Chat תוסר ממרחבים משותפים ב-Chat:

    1. אפליקציית Chat מוחקת את המינוי באמצעות קריאה ל-method‏ subscriptions.delete ב-Google Workspace Events API.

    2. אפליקציית Chat מוחקת את הנתונים של המרחב המשותף ב-Chat מ-Firestore.

סקירה של המוצרים שבהם משתמשת אפליקציית Chat עם עוזרת ה-AI

אפליקציית Chat עם עוזרת ה-AI משתמשת במוצרים הבאים של Google Workspace ו-Google Cloud:

  • Vertex AI API עם Gemini: פלטפורמה של AI גנרטיבי שמבוססת על Gemini. ב-Chat, שירות העזרה מבוסס-ה-AI משתמש ב-Vertex AI API עם Gemini כדי לזהות, להבין ולענות על שאלות של העובדים.
  • Chat API: API לפיתוח אפליקציות ל-Google Chat שמקבלות אירועי אינטראקציה ב-Chat, כמו הודעות, ומגיבות להם. אפליקציית Chat עם העוזרת הווירטואלית מבוססת-ה-AI משתמשת ב-Chat API כדי:
    • לקבל אירועי אינטראקציה שנשלחים מ-Chat ולהגיב להם.
    • הצגת רשימה של ההודעות שנשלחו במרחב המשותף.
    • לפרסם תשובות לשאלות של משתמשים במרחב משותף.
    • מגדירים מאפיינים שיקבעו את אופן ההצגה שלו ב-Chat, כמו שם ותמונת פרופיל.
  • Google Workspace Events API: API שמאפשר להירשם לאירועים ולנהל התראות על שינויים באפליקציות Google Workspace. כדי לזהות שאלות ולענות עליהן גם בלי שציינו את השם שלה, אפליקציית Chat עם העוזרת מבוססת-ה-AI משתמשת ב-Google Workspace Events API כדי להאזין להודעות שפורסמו במרחבים משותפים ב-Chat.
  • Firestore: מסד נתונים ללא שרת של מסמכים. עוזרת ה-AI באפליקציית Chat משתמשת ב-Firestore כדי לאחסן נתונים על הודעות שנשלחות במרחבים משותפים ב-Chat.
  • Pub/Sub:‏ Pub/Sub הוא שירות העברת הודעות אסינכרוני וניתן להתאמה, שמפריד בין שירותים שיוצרים הודעות לבין שירותים שמעבדים את ההודעות האלה. באפליקציית Chat של העוזרת הווירטואלית מבוססת-ה-AI, נעשה שימוש ב-Pub/Sub כדי לקבל אירועי מינויים ממרחבים משותפים ב-Chat.
  • Eventarc:‏ Eventarc מאפשר ליצור ארכיטקטורות מבוססות-אירועים בלי שתצטרכו להטמיע, להתאים אישית או לתחזק את התשתית הבסיסית. באפליקציית Chat של AI Assistant לקבלת מידע, נעשה שימוש ב-Eventarc כדי לנתב אירועים מ-Pub/Sub למרחב משותף ב-Chat ול-Cloud Function שמקבל ומעבד את אירועי המינויים.
  • Cloud Functions: שירות מחשוב קל ללא שרת (serverless) שמאפשר ליצור פונקציות עצמאיות למטרה יחידה, שיכולות להגיב לאירועי אינטראקציה ולאירועי הרשמה ב-Chat בלי צורך לנהל שרת או סביבת זמן ריצה. באפליקציית Chat עם עוזרת ה-AI משתמשים בשתי פונקציות של Cloud Functions שנקראות:
    • app: אירוח נקודת הקצה (endpoint) של HTTP שאליה Chat שולח אירועי אינטראקציה, וכפלטפורמת מחשוב להרצת לוגיקה שמעבדת את האירועים האלה ומגיבה להם.
    • eventsApp: קבלה ועיבוד של אירועים במרחבים משותפים ב-Chat, כמו הודעות ממינוי ל-Pub/Sub.
    מערכת Cloud Functions משתמשת במוצרי Google Cloud הבאים כדי ליצור ולתת אירוח למשאבי מחשוב:
    • Cloud Build: פלטפורמה מנוהלת לפריסה, לפיתוח רציף (continuous delivery) ולאינטגרציה רציפה (CI), שמריצה גרסאות build אוטומטיות.
    • Cloud Run: סביבה מנוהלת להרצת אפליקציות בקונטיינרים.

הכנת הסביבה

בקטע הזה נסביר איך יוצרים ומגדירים פרויקט ב-Google Cloud לאפליקציית Chat.

יצירת פרויקט של Google Cloud

מסוף Google Cloud

  1. במסוף Google Cloud, נכנסים לתפריט > IAM & Admin > Create a Project.

    כניסה לדף Create a Project

  2. בשדה Project Name, מזינים שם תיאורי לפרויקט.

    אופציונלי: כדי לערוך את מזהה הפרויקט, לוחצים על Edit. אי אפשר לשנות את מזהה הפרויקט אחרי היצירה שלו, לכן חשוב לבחור מזהה שיעמוד בצרכים שלכם לכל משך חיי הפרויקט.

  3. בשדה Location, לוחצים על Browse כדי להציג מיקומים פוטנציאליים לפרויקט. לאחר מכן לוחצים על בחירה.
  4. לוחצים על יצירה. מסוף Google Cloud מנווט לדף Dashboard והפרויקט נוצר תוך כמה דקות.

CLI של gcloud

ניגשים ל-CLI של Google Cloud (gcloud) באחת מסביבות הפיתוח הבאות:

  • Cloud Shell: כדי להשתמש בטרמינל אונליין שבו כבר מוגדר ה-CLI של gcloud, צריך להפעיל את Cloud Shell.
    הפעלת Cloud Shell
  • מעטפת מקומית: כדי להשתמש בסביבת פיתוח מקומית צריך להתקין ולהפעיל את ה-CLI של gcloud.
    כדי ליצור פרויקט ב-Cloud, משתמשים בפקודה gcloud projects create:
    gcloud projects create PROJECT_ID
    מחליפים את PROJECT_ID במזהה של הפרויקט שרוצים ליצור.

הפעלת החיוב בפרויקט ב-Cloud

מסוף Google Cloud

  1. נכנסים לדף Billing במסוף Google Cloud. לוחצים על תפריט > חיוב > הפרויקטים שלי.

    כניסה לדף Billing for My Projects

  2. בקטע Select an organization, בוחרים את הארגון שמשויך לפרויקט ב-Google Cloud.
  3. בשורת הפרויקט, פותחים את התפריט Actions (), לוחצים על Change billing ובוחרים את חשבון החיוב ב-Cloud.
  4. לוחצים על Set account.

CLI של gcloud

  1. כדי להציג את החשבונות לחיוב הזמינים, מריצים את הפקודה:
    gcloud billing accounts list
  2. קישור חשבון לחיוב לפרויקט ב-Google Cloud:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID הוא מזהה הפרויקט של הפרויקט ב-Cloud שרוצים להפעיל בו חיוב.
    • BILLING_ACCOUNT_ID הוא מזהה החשבון לחיוב שרוצים לקשר לפרויקט ב-Google Cloud.

הפעלת ממשקי ה-API

מסוף Google Cloud

  1. במסוף Google Cloud, מפעילים את Google Chat API, ‏ Vertex AI API,‏ Cloud Functions API, ‏ Firestore API, ‏ Cloud Build API,‏ Pub/Sub API, ‏ Google Workspace Events API, ‏ Eventarc API ו-Cloud Run Admin API.

    הפעלת ממשקי ה-API

  2. מוודאים שאתם מפעילים את ממשקי ה-API בפרויקט Cloud הנכון ולוחצים על הבא.

  3. מוודאים שאתם מפעילים את ממשקי ה-API הנכונים ולוחצים על Enable.

CLI של gcloud

  1. אם צריך, מגדירים את הפרויקט הנוכחי ב-Cloud כפרויקט שיצרתם:

    gcloud config set project PROJECT_ID

    מחליפים את PROJECT_ID במזהה הפרויקט של הפרויקט ב-Cloud שיצרתם.

  2. מפעילים את Google Chat API, ‏ Vertex AI API, ‏ Cloud Functions API,‏ Firestore API, ‏ Cloud Build API, ‏ Pub/Sub API,‏ Google Workspace Events API, ‏ Eventarc API ו-Cloud Run Admin API:

    gcloud services enable chat.googleapis.com \
    aiplatform.googleapis.com \
    cloudfunctions.googleapis.com \
    firestore.googleapis.com \
    cloudbuild.googleapis.com \
    pubsub.googleapis.com \
    workspaceevents.googleapis.com \
    eventarc.googleapis.com \
    run.googleapis.com

הגדרת אימות והרשאה

האימות וההרשאה מאפשרים לאפליקציית Chat לגשת למשאבים ב-Google Workspace וב-Google Cloud.

במדריך הזה תפרסמו את אפליקציית Google Chat באופן פנימי, כך שאפשר להשתמש במידע למעקב אחרי שינויים. לפני שמפרסמים את אפליקציית Google Chat באופן חיצוני, צריך להחליף את פרטי ה-placeholder במידע אמיתי במסך ההסכמה.

  1. במסוף Google Cloud, עוברים לתפריט > > Branding.

    כניסה לדף Branding

  2. אם כבר הגדרתם את, תוכלו להגדיר את ההגדרות הבאות של מסך ההסכמה ל-OAuth בקטע מיתוג, קהל וגישה לנתונים. אם מופיעה ההודעה not configured yet, לוחצים על Get Started:

    1. בקטע פרטי האפליקציה, בשדה שם האפליקציה, מקלידים AI knowledge assistant.
    2. בקטע User support email, בוחרים את כתובת האימייל שלכם או קבוצת Google מתאימה.
    3. לוחצים על הבא.
    4. בקטע קהל, בוחרים באפשרות פנימי. אם אי אפשר לבחור באפשרות Internal, בוחרים באפשרות External.
    5. לוחצים על הבא.
    6. בקטע פרטים ליצירת קשר, מזינים כתובת אימייל שאליה יישלחו התראות על שינויים בפרויקט.
    7. לוחצים על הבא.
    8. בקטע סיום, קוראים את המדיניות בנושא נתוני משתמשים בשירותי Google API. אם מסכימים, בוחרים באפשרות אני מסכים/ה למדיניות בנושא נתוני משתמשים בשירותי Google API.
    9. לוחצים על המשך.
    10. לוחצים על יצירה.
    11. אם בחרתם באפשרות חיצוני לסוג המשתמש, מוסיפים משתמשי בדיקה:
      1. לוחצים על קהל.
      2. בקטע משתמשי בדיקה, לוחצים על הוספת משתמשים.
      3. מזינים את כתובת האימייל שלכם ואת כתובות האימייל של כל משתמשי הבדיקה המורשים האחרים, ולוחצים על שמירה.
  3. לוחצים על גישה לנתונים > הוספה או הסרה של היקפי גישה. תוצג חלונית עם רשימת ההיקפים של כל ממשק API שהפעלתם בפרויקט ב-Google Cloud.

    1. בקטע הוספת היקפים באופן ידני, מדביקים את ההיקף הבא:

      • https://www.googleapis.com/auth/chat.messages
    2. לוחצים על הוספה לטבלה.

    3. לוחצים על עדכון.

    4. אחרי שבוחרים את ההיקפים הנדרשים לאפליקציה, לוחצים על שמירה בדף Data Access.

יצירת פרטי כניסה של מזהה לקוח ב-OAuth

  1. במסוף Google Cloud, נכנסים אל תפריט > APIs & Services > Credentials.

    כניסה לדף Credentials

  2. לוחצים על Create Credentials (יצירת פרטי כניסה) > OAuth client ID (מזהה לקוח OAuth).

  3. לוחצים על Application type > Web application.

  4. בשדה Name, מקלידים שם לפרטי הכניסה. השם הזה מוצג רק במסוף Google Cloud.

  5. בקטע URIs מורשים להפניה אוטומטית, לוחצים על Add URI (הוספת URI).

  6. בקטע URIs 1, מקלידים את הטקסט הבא:

    https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2
    

    מחליפים את מה שכתוב בשדות הבאים:

    • REGION: האזור של פונקציית Cloud, למשל us-central1. בהמשך, כשיוצרים את שתי הפונקציות של Cloud Functions, צריך להגדיר את האזור שלהן לערך הזה.
    • PROJECT_ID: מזהה הפרויקט של הפרויקט ב-Cloud שיצרתם.
  7. לוחצים על יצירה.

  8. בחלון OAuth client created, לוחצים על Download JSON.

  9. שומרים את הקובץ שהורדתם בשם client_secrets.json. בהמשך, כשיוצרים את שתי הפונקציות ב-Cloud Functions, צריך לכלול את הקובץ client_secrets.json בכל פריסה.

  10. לוחצים על אישור.

יוצרים את נושא Pub/Sub

הנושא Pub/Sub פועל עם Google Workspace Events API כדי להירשם לאירועים במרחב משותף ב-Chat, כמו הודעות, ולשלוח התראות לאפליקציית Chat בזמן אמת.

כך יוצרים את נושא ה-Pub/Sub:

מסוף Google Cloud

  1. במסוף Google Cloud, עוברים אל תפריט > Pub/Sub.

    כניסה לדף Pub/Sub

  2. לוחצים על Create Topic.

  3. בשדה Topic ID, מקלידים events-api.

  4. מבטלים את הסימון של האפשרות הוספת מינוי ברירת מחדל.

  5. בקטע Encryption, בוחרים באפשרות Google-managed encryption key.

  6. לוחצים על יצירה. הנושא של Pub/Sub מופיע.

  7. כדי שנושא Pub/Sub הזה יפעל יחד עם Google Workspace Events API, צריך לתת למשתמש IAM ב-Chat הרשאה לפרסם בנושא Pub/Sub:

    1. בחלונית events-api, בקטע PERMISSIONS, לוחצים על Add Principal.

    2. בקטע Add principals, בקטע New principals, מקלידים chat-api-push@system.gserviceaccount.com.

    3. בקטע Assign roles, בקטע Select a role, בוחרים באפשרות Pub/Sub > Pub/Sub Publisher.

    4. לוחצים על שמירה.

CLI של gcloud

  1. יוצרים נושא Pub/Sub עם מזהה הנושא events-api:

    gcloud pubsub topics create events-api
  2. נותנים למשתמש ב-IAM ב-Chat הרשאה לפרסם בנושא Pub/Sub:

    gcloud pubsub topics add-iam-policy-binding events-api \
    --member='serviceAccount:chat-api-push@system.gserviceaccount.com' \
    --role='roles/pubsub.publisher'

יצירת מסד הנתונים ב-Firestore

מסד הנתונים של Firestore שומר ומאחזר נתונים ממרחבים משותפים ב-Chat, כמו הודעות. לא מגדירים את מודל הנתונים, שהוא מוגדר באופן משתמע בקוד לדוגמה באמצעות הקבצים model/message.js ו-services/firestore-service.js.

מסד הנתונים של עוזרת ה-AI באפליקציית Chat מבוסס על מודל נתונים מסוג NoSQL שמבוסס על מסמכים שמאורגנים ב אוספים. מידע נוסף זמין במאמר מודל הנתונים של Firestore.

התרשים הבא הוא סקירה כללית של מודל הנתונים של העוזרת מבוססת-ה-AI באפליקציית Chat:

מודל הנתונים של מסד הנתונים של Firestore.

ברמה הבסיסית יש שני אוספים:

  1. spaces, שבו כל מסמך מייצג מרחב משותף ב-Chat שאפליקציית Chat מצורפת אליו. כל הודעה מיוצגת במסמך באוסף המשנה messages.

  2. users, שבו כל מסמך מייצג משתמש שהוסיף את אפליקציית Chat למרחב משותף ב-Chat.

הצגת הגדרות של אוספים, מסמכים ושדות

spaces

מרחב משותף ב-Chat שכולל את אפליקציית Chat עם העוזר הדיגיטלי מבוסס-AI.

שדות
Document IDString
המזהה הייחודי של מרחב ספציפי. חלק משם המשאב של המרחב המשותף ב-Chat API.
messagesSubcollection of Documents (messages)
הודעות שנשלחות במרחב המשותף ב-Chat. תואם ל-Document ID של message ב-Firebase.
spaceNameString
השם הייחודי של המרחב ב-Chat API. תואם לשם המשאב של המרחב המשותף ב-Chat API.

messages

הודעות שנשלחות במרחב המשותף ב-Chat.

שדות
Document IDString
המזהה הייחודי של הודעה ספציפית.
nameString
השם הייחודי של הודעה ב-Chat API. תואם לשם המשאב של ההודעה ב-Chat API.
textString
גוף הטקסט של ההודעה.
timeString (Timestamp format)
השעה שבה נוצרה ההודעה.

users

משתמשים שהוסיפו את אפליקציית Chat עם העוזרת הווירטואלית מבוססת-ה-AI למרחב משותף ב-Chat.

שדות
Document IDString
מזהה ייחודי של משתמש ספציפי.
accessTokenString
אסימון הגישה שהוקצה במהלך הרשאת המשתמש ב-OAuth 2.0, המשמש לקריאה לממשקי ה-API של Google Workspace.
refreshTokenString
אסימון הרענון שהוקצה במהלך הרשאת המשתמש ב-OAuth 2.0.

כך יוצרים את מסד הנתונים ב-Firestore:

מסוף Google Cloud

  1. במסוף Google Cloud, נכנסים אל תפריט > Firestore.

    כניסה אל Firestore

  2. לוחצים על Create database.

  3. בקטע Select your Firestore mode (בחירת מצב Firestore), לוחצים על Native mode (מצב מקורי).

  4. לוחצים על המשך.

  5. מגדירים את מסד הנתונים:

    1. בקטע Name your database (מתן שם למסד הנתונים), משאירים את הערך (default) בשדה Database ID (מזהה מסד הנתונים).

    2. בקטע Location type, בוחרים באפשרות Region.

    3. בקטע Region, מציינים אזור למסד הנתונים, למשל us-central1. כדי לקבל את הביצועים הטובים ביותר, כדאי לבחור את המיקום של Cloud Functions של אפליקציית Chat או מיקום קרוב אליו.

  6. לוחצים על Create database.

CLI של gcloud

  • יוצרים מסד נתונים של Firestore במצב מקורי:

    gcloud firestore databases create \
    --location=LOCATION \
    --type=firestore-native

    מחליפים את LOCATION בשם של אזור ב-Firestore, למשל us-central1. כדי לקבל את הביצועים הטובים ביותר, כדאי לבחור את אותו מיקום או מיקום קרוב למיקום של Cloud Functions של אפליקציית Chat.

יצירה ופריסה של אפליקציית Chat

עכשיו, אחרי שיצרתם והגדרתם את הפרויקט ב-Google Cloud, אתם מוכנים לפתח ולפרוס את אפליקציית Chat. בקטע הזה תלמדו:

  1. יצירה ופריסה של שתי פונקציות ב-Cloud Functions. אחד כדי להגיב לאירועי אינטראקציה ב-Chat, והשני כדי להגיב לאירועי Pub/Sub.
  2. יוצרים ומפרסים אפליקציה ל-Chat בדף ההגדרות של Google Chat API.

יצירה ופריסה של פונקציות Cloud Functions

בקטע הזה תיצורו שתי פונקציות Cloud Functions בשמות:

  • app: מארח ומריץ את הקוד של אפליקציית Chat, שמגיב לאירועים שמתקבלים מ-Chat כבקשות HTTP.
  • eventsApp: מקבל ומעבד אירועים במרחבים משותפים ב-Chat, כמו הודעות מ-Pub/Sub.

יחד, פונקציות Cloud Functions האלה יוצרות את הלוגיקה של האפליקציה של עוזרת ה-AI ב-Chat.

לפני שיוצרים את Cloud Functions, מומלץ לעיין בקוד לדוגמה שמתארח ב-GitHub ולהכיר אותו.

הצגת הקוד ב-GitHub

יצירה ופריסה של app

מסוף Google Cloud

  1. מורידים את הקוד מ-GitHub כקובץ zip.

    הורדת קובץ ה-ZIP

  2. מחלצים את קובץ ה-ZIP שהורדתם.

    התיקייה שחולצה מכילה את כל המאגר של דוגמאות Google Workspace.

  3. בתיקייה שחולצה, עוברים לספרייה google-chat-samples-main/node/ai-knowledge-assistant.

  4. בתיקייה google-chat-samples/node/ai-knowledge-assistant, מוסיפים את הקובץ client_secrets.json שהורדתם כשיצרתם את פרטי הכניסה של מזהה הלקוח ב-OAuth לצורך אימות והרשאה.

  5. דחיסת התוכן של התיקייה ai-knowledge-assistant לקובץ zip.

    ספריית הבסיס של קובץ ה-ZIP חייבת להכיל את הקבצים והתיקיות הבאים:

    • .gcloudignore
    • .gitignore
    • README.md
    • deploy.sh
    • env.js
    • events_index.js
    • http_index.js
    • index.js
    • client_secrets.json
    • package-lock.json
    • package.json
    • controllers/
    • model/
    • services/
    • test/
  6. במסוף Google Cloud, נכנסים אל תפריט > Cloud Functions.

    כניסה לדף Cloud Functions

    מוודאים שבוחרים את הפרויקט ב-Google Cloud של אפליקציית Chat.

  7. לוחצים על Create Function.

  8. בדף Create function, מגדירים את הפונקציה:

    1. בקטע Environment, בוחרים באפשרות Cloud Run Function.
    2. בשדה Function name, מקלידים app.
    3. בקטע אזור, בוחרים אזור, למשל us-central1. האזור הזה חייב להתאים לאזור שהגדרתם ב-URI להפניה אוטומטית המורשית כשיצרתם את פרטי הכניסה של מזהה הלקוח ב-OAuth לאימות ולהרשאה.
    4. בקטע Trigger type, בוחרים באפשרות HTTPS.
    5. בקטע Authentication, בוחרים באפשרות Allow unauthenticated invocations.
    6. לוחצים על הבא.
  9. בקטע Runtime, בוחרים באפשרות Node.js 20.

  10. בשדה Entry point, מוחקים את טקסט ברירת המחדל ומזינים את הערך app.

  11. בקטע קוד מקור, בוחרים באפשרות העלאת קובץ Zip.

  12. בקטע Destination bucket, יוצרים או בוחרים קטגוריה:

    1. לוחצים על מה מעניין אותך היום?
    2. בוחרים קטגוריה.
    3. לוחצים על בחירה.

    Google Cloud מעלה את קובץ ה-zip לקטגוריה הזו ומחלץ את קובצי הרכיבים. לאחר מכן, Cloud Functions מעתיק את קובצי הרכיבים לפונקציה של Cloud.

  13. בקטע קובץ ZIP, מעלים את קובץ ה-ZIP שהורדתם מ-GitHub, חילצתם ודחסתם מחדש:

    1. לוחצים על מה מעניין אותך היום?
    2. עוברים אל קובץ ה-zip ובוחרים בו.
    3. לוחצים על פתיחה.
  14. לוחצים על פריסת.

    הדף Cloud Functions detail נפתח, והפונקציה מופיעה עם שני מדדי התקדמות: אחד ל-build ואחד לשירות. כששני מדדי ההתקדמות נעלמים ומתחלפים בסימון וי, הפונקציה פרוסה ומוכנה.

  15. עורכים את קוד הדוגמה כדי להגדיר קבועים:

    1. בדף Cloud Function detail, לוחצים על Edit.
    2. לוחצים על הבא.
    3. בקטע קוד מקור, בוחרים באפשרות עורך בשורה.
    4. פותחים את הקובץ env.js בעורך בשורת הפקודה ועורכים אותו:
      1. מגדירים את הערך של project למזהה הפרויקט ב-Cloud.
      2. מגדירים את הערך של location לאזור של Cloud Function, למשל us-central1.
  16. לוחצים על פריסת.

CLI של gcloud

  1. משכפלים את הקוד מ-GitHub:

    git clone https://github.com/googleworkspace/google-chat-samples.git
  2. עוברים לספרייה שמכילה את הקוד של אפליקציית Chat עם העוזרת הווירטואלית מבוססת-ה-AI:

    cd google-chat-samples/node/ai-knowledge-assistant
  3. בתיקייה google-chat-samples/node/ai-knowledge-assistant, מוסיפים את הקובץ client_secrets.json שהורדתם כשיצרתם את פרטי הכניסה של מזהה הלקוח ב-OAuth לצורך אימות והרשאה.

  4. עורכים את הקובץ env.js כדי להגדיר משתני סביבה:

    1. מגדירים את הערך של project למזהה הפרויקט ב-Cloud.
    2. מגדירים את הערך של location לאזור של Cloud Function, למשל us-central1.
  5. פורסים את הפונקציה של Cloud Functions ב-Google Cloud:

    gcloud functions deploy app \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=app \
    --trigger-http \
    --allow-unauthenticated

    מחליפים את REGION בערך של האזור של Cloud Function כך שיתאים לערך שהוגדר בקובץ env.js, למשל us-central1.

יצירה ופריסה של eventsApp

מסוף Google Cloud

  1. במסוף Google Cloud, נכנסים אל תפריט > Cloud Functions.

    כניסה לדף Cloud Functions

    מוודאים שבוחרים את הפרויקט ב-Google Cloud של אפליקציית Chat.

  2. לוחצים על Create Function.

  3. בדף Create function, מגדירים את הפונקציה:

    1. בקטע Environment, בוחרים באפשרות Cloud Run Function.
    2. בשדה Function name, מקלידים eventsApp.
    3. בקטע אזור, בוחרים אזור, למשל us-central1. האזור הזה חייב להתאים לאזור שהגדרתם ב-URI להפניה אוטומטית מורשית כשיצרתם את פרטי הכניסה של מזהה הלקוח ב-OAuth לאימות ולהרשאה.
    4. בקטע Trigger type בוחרים באפשרות Cloud Pub/Sub.
    5. בקטע Cloud Pub/Sub topic, בוחרים את שם נושא Pub/Sub שיצרתם. הפורמט שלו הוא projects/PROJECT/topics/events-api, כאשר PROJECT הוא מזהה הפרויקט ב-Cloud.
    6. אם מופיעה הודעה שמתחילה ב-Service account(s) might not have enough permissions to deploy the function with the selected trigger., לוחצים על Grant All.
    7. לוחצים על הבא.
  4. בקטע Runtime, בוחרים באפשרות Node.js 20.

  5. בשדה Entry point, מוחקים את טקסט ברירת המחדל ומזינים את הערך eventsApp.

  6. בקטע קוד מקור, בוחרים באפשרות Zip from Cloud Storage.

  7. בקטע Cloud Storage location, לוחצים על Browse.

  8. בוחרים את הקטגוריה שאליה העליתם את קובץ ה-zip כשיצרתם את פונקציית Cloud‏ app.

  9. לוחצים על קובץ ה-ZIP שהעליתם.

  10. לוחצים על בחירה.

  11. לוחצים על פריסת.

    הדף Cloud Functions detail נפתח, והפונקציה מופיעה עם שלושה מדדי התקדמות: אחד ל-build, אחד לשירות ואחד לטריגר. כשכל שלושת מדדי ההתקדמות ייעלמו ויוחלפו בסימון וי, הפונקציה תהיה מוכנה לשימוש.

  12. עורכים את קוד הדוגמה כדי להגדיר קבועים:

    1. בדף Cloud Function detail, לוחצים על Edit.
    2. לוחצים על הבא.
    3. בקטע קוד מקור, בוחרים באפשרות עורך בשורה.
    4. פותחים את הקובץ env.js בעורך בשורת הפקודה ועורכים אותו:
      1. מגדירים את הערך של project למזהה הפרויקט ב-Cloud.
      2. מגדירים את הערך של location לאזור של Cloud Function, למשל us-central1.
  13. לוחצים על פריסת.

CLI של gcloud

  1. ב-CLI של gcloud, עוברים לספרייה שמכילה את הקוד של אפליקציית Chat עם העוזרת הווירטואלית מבוססת-ה-AI שכבר שכפלתם מ-GitHub:

    cd google-chat-samples/node/ai-knowledge-assistant
  2. בתיקייה google-chat-samples/node/ai-knowledge-assistant, מוסיפים את הקובץ client_secrets.json שהורדתם כשיצרתם את פרטי הכניסה של מזהה הלקוח ב-OAuth לצורך אימות והרשאה.

  3. עורכים את הקובץ env.js כדי להגדיר משתני סביבה:

    1. מגדירים את הערך של project למזהה הפרויקט ב-Cloud.
    2. מגדירים את הערך של location לאזור של Cloud Function, למשל us-central1.
  4. פורסים את הפונקציה של Cloud Functions ב-Google Cloud:

    gcloud functions deploy eventsApp \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=eventsApp \
    --trigger-topic=events-api

    מחליפים את REGION בערך של האזור של Cloud Function כך שיתאים לערך שהוגדר בקובץ env.js, למשל us-central1.

מעתיקים את כתובת ה-URL של הטריגר של פונקציית Cloud ‏app

עליכם להדביק את כתובת ה-URL של הטריגר של Cloud Function‏ app בקטע הבא, כשתבצעו את הגדרת אפליקציית Chat במסוף Google Cloud.

מסוף Google Cloud

  1. במסוף Google Cloud, נכנסים אל תפריט > Cloud Functions.

    כניסה לדף Cloud Functions

  2. בעמודה Name (שם) של רשימת הפונקציות ב-Cloud Functions, לוחצים על app.

  3. לוחצים על Trigger (טריגר).

  4. מעתיקים את כתובת ה-URL.

CLI של gcloud

  1. מתארים את פונקציית Cloud‏ app:

    gcloud functions describe app
  2. מעתיקים את המאפיין url.

הגדרת אפליקציית Chat במסוף Google Cloud

בקטע הזה מוסבר איך להגדיר את Chat API במסוף Google Cloud עם מידע על אפליקציית Chat, כולל השם של אפליקציית Chat וכתובת ה-URL להפעלה של Cloud Function של אפליקציית Chat, שאליה היא שולחת אירועי אינטראקציה ב-Chat.

  1. במסוף Google Cloud, לוחצים על תפריט > מוצרים נוספים > Google Workspace > Product Library > Google Chat API > ניהול > הגדרה.

    כניסה להגדרת Chat API

  2. בשדה App name, מקלידים AI knowledge assistant.

  3. בשדה כתובת ה-URL של הדמות, מקלידים https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg.

  4. בקטע תיאור, מקלידים Answers questions with AI.

  5. מעבירים את המתג הפעלת תכונות אינטראקטיביות למצב מופעל.

  6. בקטע פונקציונליות, בוחרים באפשרות הצטרפות למרחבים משותפים ולשיחות קבוצתיות.

  7. בקטע Connection settings (הגדרות החיבור), בוחרים באפשרות HTTP endpoint URL (כתובת URL של נקודת קצה מסוג HTTP).

  8. בשדה כתובת URL של נקודת קצה מסוג HTTP, מדביקים את כתובת ה-URL של הטריגר מהפונקציה של Cloud Functions‏ app בפורמט https://REGION-PROJECT_ID.cloudfunctions.net/app, כאשר REGION הוא האזור של הפונקציה ב-Cloud, למשל us-central1, ו-PROJECT_ID הוא מזהה הפרויקט של הפרויקט ב-Cloud שיצרתם.

  9. בקטע Visibility (חשיפה), בוחרים באפשרות Make this Chat app available to specific people and groups in your Workspace domain (האפליקציה תהיה זמינה לאנשים ולקבוצות ספציפיים בדומיין של Workspace) ומזינים את כתובת האימייל.

  10. לחלופין, בקטע יומנים, בוחרים באפשרות רישום שגיאות ביומן.

  11. לוחצים על שמירה. תוצג הודעה על שמירת ההגדרות, והמשמעות היא שאפליקציית Chat מוכנה לבדיקה.

בדיקת אפליקציית Chat

כדי לבדוק את אפליקציית Chat עם העוזר הדיגיטלי מבוסס-ה-AI, תוכלו לשאול שאלות שאפשר לענות עליהן באמצעות האפליקציה במרחב משותף ב-Chat.

ריכזנו כאן כמה דרכים לבדוק את עוזרת הידע מבוססת-ה-AI באפליקציית Chat:

  • אתם יכולים להוסיף את אפליקציית Chat עם העוזרת הדיגיטלית מבוססת-ה-AI למרחב משותף קיים ב-Chat ולשאול שאלות שרלוונטיות למרחב הזה.
  • יוצרים מרחב משותף ב-Chat ומפרסמים בו כמה הודעות שישמשו כמקור נתונים. אפשר לשלוח הודעות מ-Gemini באמצעות הנחיה כמו Answer 20 common onboarding questions employees ask their teams.. לחלופין, אפשר להדביק כמה פסקאות מהמדריך סקירה כללית על פיתוח באמצעות Chat ואז לשאול שאלות לגביהן.

במדריך הזה נלמד איך ליצור מרחב משותף ב-Chat ולהדביק כמה פסקאות מהמדריך סקירה כללית על פיתוח ב-Chat.

  1. פותחים את Google Chat.

    כניסה ל-Google Chat

  2. יצירת מרחב משותף ב-Chat:

    1. לוחצים על צ'אט חדש > יצירת מרחב משותף.

    2. בשדה Space name, כותבים Testing AI knowledge assistant app.

    3. בקטע למטרה הזו מיועד המרחב הזה?, בוחרים באפשרות שיתוף פעולה.

    4. בקטע הגדרות גישה, בוחרים מי יוכל לגשת למרחב המשותף.

    5. לוחצים על יצירה.

  3. מוסיפים הודעות לשימוש כמקור נתונים:

    1. בדפדפן אינטרנט, נכנסים למדריך סקירה כללית על פיתוח ב-Chat.

    2. מעתיקים ומדביקים את תוכן המדריך במרחב המשותף ב-Chat שיצרתם.

  4. מוסיפים את אפליקציית Chat עם עוזרת ה-AI:

    1. בסרגל הכתיבה של ההודעה, מקלידים @AI knowledge assistant ובתפריט ההצעות שמופיע, בוחרים את אפליקציית Chat עם העוזרת הווירטואלית מבוססת-ה-AI ולוחצים על enter.

    2. תופיע הודעה עם שאלה אם רוצים להוסיף למרחב המשותף את אפליקציית Chat עם העוזרת הווירטואלית מבוססת-ה-AI. לוחצים על הוספה למרחב המשותף.

    3. אם זו הפעם הראשונה שאתם מוסיפים את אפליקציית Chat למרחב משותף, תצטרכו להגדיר את האימות וההרשאה לאפליקציית Chat:

      1. לוחצים על Configure (הגדרה).
      2. ייפתח חלון או כרטיסייה חדשים בדפדפן עם בקשה לבחור חשבון Google. בוחרים את החשבון שבו רוצים לבצע את הבדיקה.
      3. בודקים את ההרשאות שעוזר ה-AI מבקש באפליקציית Chat. כדי להעניק את ההרשאות, לוחצים על אישור.
      4. תופיע ההודעה You may close this page now.. סוגרים את החלון או הכרטיסייה בדפדפן וחוזרים למרחב המשותף ב-Chat.
  5. שאל שאלה:

    1. בשורת הכתיבה של ההודעה, מקלידים שאלה כמו What are Google Chat apps?

    2. אפליקציית Chat עם העוזר הדיגיטלי מבוסס-ה-AI עונה.

    3. אם התשובה לא מדויקת או לא מספקת, אפשר ללחוץ על קבלת עזרה כדי לעזור לשפר את היסטוריית השיחות של ה-AI. עוזרת ה-AI בצ'אט תציין את מנהל המרחב המשותף ותבקש ממנו לענות על השאלה. בפעם הבאה, אפליקציית Chat עם העוזרת הווירטואלית מבוססת-ה-AI תדע את התשובה.

שיקולים, אפשרויות ארכיטקטוניות חלופיות והשלבים הבאים

בקטע הזה נסקור דרכים נוספות ליצירת עוזרת הידע מבוססת-ה-AI באפליקציית Chat.

Firestore,‏ Cloud Storage או קריאה ל-List Messages ב-Chat API

במדריך הזה מומלץ לאחסן נתונים של מרחבים משותפים ב-Chat, כמו הודעות, במסד נתונים של Firestore. כך אפשר לשפר את הביצועים בהשוואה לקריאה ל-method‏ list במשאב Message באמצעות Chat API בכל פעם שאפליקציית Chat עונה על שאלה. בנוסף, קריאה חוזרת של list messages עלולה לגרום לאפליקציית Chat להגיע למכסות ה-API.

עם זאת, אם היסטוריית השיחות במרחב משותף ב-Chat תהיה ארוכה מדי, השימוש ב-Firestore יכול להיות יקר.

Cloud Storage היא חלופה ל-Firestore. לכל מרחב משותף שבו נעשה שימוש ב-AI של אפליקציית Chat יש אובייקט משלו, וכל אובייקט הוא קובץ טקסט שמכיל את כל ההודעות במרחב המשותף. היתרון של הגישה הזו הוא שאפשר להעביר את התוכן המלא של קובץ הטקסט ל-Vertex AI באמצעות Gemini בבת אחת, אבל החיסרון הוא שצריך יותר עבודה כדי לעדכן את היסטוריית השיחות כי אי אפשר לצרף לאובייקט ב-Cloud Storage, אלא רק להחליף אותו. הגישה הזו לא הגיונית אם מעדכנים את היסטוריית ההודעות באופן קבוע, אבל היא יכולה להתאים אם מעדכנים את היסטוריית ההודעות בקבוצות מדי פעם, למשל פעם בשבוע.

פתרון בעיות

כשכרטיס או אפליקציית Google Chat מחזירים שגיאה, בממשק של Chat מופיעה ההודעה "משהו השתבש". או "לא ניתן לעבד את הבקשה שלך". לפעמים בממשק המשתמש של Chat לא מוצגת הודעת שגיאה, אבל באפליקציה או בכרטיס של Chat מתקבלת תוצאה לא צפויה. לדוגמה, יכול להיות שלא תוצג הודעה בכרטיס.

יכול להיות שהודעת שגיאה לא תוצג בממשק המשתמש של Chat, אבל כשיומני השגיאות של אפליקציות Chat מופעלים, יהיו זמינות הודעות שגיאה תיאוריות ונתוני יומנים שיעזרו לכם לתקן שגיאות. במאמר פתרון בעיות ושגיאות ב-Google Chat מוסבר איך מציגים, מאתרים באגים ומתקנים שגיאות.

הסרת המשאבים

כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, מומלץ למחוק את הפרויקט ב-Cloud.

  1. במסוף Google Cloud, עוברים לדף Manage resources. לוחצים על תפריט > IAM & Admin > Manage Resources.

    כניסה ל-Resource Manager

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete .
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.