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

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

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

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

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

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

מטרות

  • אתם יכולים לפתח אפליקציה ל-Chat שמשתמשת בבינה מלאכותית גנרטיבית כדי לענות על שאלות על סמך ידע שמשותף בשיחות במרחב המשותף ב-Chat.
  • באמצעות בינה מלאכותית גנרטיבית:
    • זיהוי שאלות של עובדים ומענה עליהן.
    • כדי להמשיך ללמוד משיחות מתמשכות במרחב המשותף ב-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 מפעילה את השיטה subscriptions.create ב-Google Workspace Event 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 תפרסם את התשובה על ידי קריאה לשיטה spaces.messages.create ב-Chat API באמצעות אימות אפליקציות.

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

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

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

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

    1. אפליקציית Chat מוחקת את המינוי על ידי קריאה לשיטה subscriptions.delete ב-Google Workspace Event API.

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

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

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

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

מכינים את הסביבה

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

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

מסוף Google Cloud

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

    כניסה לדף Create a Project

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

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

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

CLI של gcloud

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

  • Cloud Shell: כדי להשתמש בטרמינל אונליין שבו כבר מוגדר ה-CLI של gcloud, צריך להפעיל את Cloud Shell.
    הפעלת Cloud Shell
  • Local Shell: כדי להשתמש בסביבת פיתוח מקומית צריך להתקין וinitialize את ה-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 Event API, את Eventarc API ואת Cloud Run Admin API.

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

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

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

CLI של gcloud

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

    gcloud config set project PROJECT_ID
    

    מחליפים את 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 Event 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 באופן פנימי, כדי לאפשר להשתמש בפרטים placeholder. לפני שמפרסמים את אפליקציית Google Chat באופן חיצוני, צריך להחליף את ה-placeholder הזה במידע אמיתי במסך ההסכמה.

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

    מעבר למסך ההסכמה של OAuth

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

  3. בשם האפליקציה, מקלידים AI knowledge assistant.

  4. בקטע User support email, בוחרים את כתובת האימייל שלכם או את קבוצת Google המתאימה.

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

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

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

  8. בקטע הוספה ידנית של היקפי הרשאות, מדביקים את ההיקף הבא:

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

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

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

  12. בודקים את סיכום רישום האפליקציה ואז לוחצים על Back to Dashboard (חזרה למרכז השליטה).

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

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

    כניסה לדף Credentials

  2. לוחצים על יצירת פרטי כניסה > מזהה לקוח OAuth.

  3. לחץ על Application type > Web application.

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

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

  6. ב-URI 1, מקלידים את הפרטים הבאים:

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

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

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

  8. בחלון לקוח OAuth שנוצר, לוחצים על הורדת JSON.

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

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

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

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

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

מסוף Google Cloud

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

    נכנסים אל Pub/Sub

  2. לוחצים על יצירת נושא.

  3. בקטע מזהה נושא, מקלידים events-api.

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

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

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

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

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

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

    3. בקטע הקצאת תפקידים, באפשרות בחירת תפקיד, בוחרים באפשרות Pub/Sub > פרסום ב-Pub/Sub.

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

CLI של gcloud

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

    gcloud pubsub topics create events-api
    
  2. מעניקים למשתמש ב-IAM הרשאה לפרסם הודעות בנושא 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 מבית AI משתמש במודל נתונים של NoSQL, שמבוסס על מסמכים שמסודרים באוספים של . למידע נוסף קראו את מודל הנתונים של Firestore.

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

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

הרמה הבסיסית (root) מכילה שני אוספים:

  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. לוחצים על יצירת מסד נתונים.

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

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

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

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

    2. בקטע Location type (סוג המיקום), בוחרים באפשרות Region.

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

  6. לוחצים על יצירת מסד נתונים.

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.

לחלופין, לפני שיוצרים את ה-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. לוחצים על יצירת פונקציה.

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

    1. בקטע סביבה, בוחרים באפשרות דור שני.
    2. בשדה שם הפונקציה, מקלידים app.
    3. בקטע אזור, בוחרים אזור, כמו us-central1. האזור הזה חייב להתאים לאזור שהגדרתם ב-URI המורשה להפניה אוטומטית כשיצרתם את פרטי הכניסה של מזהה הלקוח ב-OAuth לאימות ולהרשאה.
    4. בקטע סוג הטריגר, בוחרים באפשרות HTTPS.
    5. בקטע אימות, בוחרים באפשרות לאפשר הפעלות לא מאומתות.
    6. לוחצים על הבא.
  9. בקטע Runtime, בוחרים באפשרות Node.js 20.

  10. בנקודת הכניסה, מוחקים את טקסט ברירת המחדל ומזינים app.

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

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

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

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

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

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

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

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

    1. בדף פרטים של הפונקציה של Cloud Functions, לוחצים על Edit.
    2. לוחצים על הבא.
    3. בקטע קוד מקור, בוחרים באפשרות עורך מוטבע.
    4. בעורך המוטבע, פותחים ועורכים את הקובץ env.js:
      1. מגדירים את הערך של project למזהה הפרויקט ב-Cloud.
      2. מגדירים את הערך של location לאזור של הפונקציה של Cloud Functions, למשל 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 Functions, למשל 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 Functions כדי להתאים לאזור שהוגדר בקובץ env.js, למשל us-central1.

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

מסוף Google Cloud

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

    כניסה לדף Cloud Functions

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

  2. לוחצים על יצירת פונקציה.

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

    1. בקטע סביבה, בוחרים באפשרות דור שני.
    2. בשדה שם הפונקציה, מקלידים eventsApp.
    3. בקטע אזור, בוחרים אזור, כמו us-central1. האזור הזה חייב להתאים לאזור שהגדרתם ב-URI המורשה להפניה אוטומטית כשיצרתם את פרטי הכניסה של מזהה הלקוח ב-OAuth לאימות ולהרשאה.
    4. בקטע Trigger type (סוג הטריגר), בוחרים באפשרות Cloud Pub/Sub.
    5. בקטע נושא ב-Cloud Pub/Sub, בוחרים את שם הנושא שיצרתם ב-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., לוחצים על הענקת הכול.
    7. לוחצים על הבא.
  4. בקטע Runtime, בוחרים באפשרות Node.js 20.

  5. בנקודת הכניסה, מוחקים את טקסט ברירת המחדל ומזינים eventsApp.

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

  7. במיקום של Cloud Storage, לוחצים על Browse.

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

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

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

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

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

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

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

CLI של gcloud

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

    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 Functions, למשל 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 Functions כדי להתאים לאזור שהוגדר בקובץ env.js, למשל us-central1.

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

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

מסוף Google Cloud

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

    כניסה לדף Cloud Functions

  2. בעמודה Name ברשימה של Cloud Functions, לוחצים על app.

  3. לוחצים על Trigger

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

CLI של gcloud

  1. מתארים את הפונקציה של Cloud Functions app:

    gcloud functions describe app
    
  2. מעתיקים את הנכס url.

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

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

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

    לדף ההגדרות של Chat API

  2. בשם האפליקציה, מקלידים 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. בקטע הגדרות חיבור, בוחרים באפשרות כתובת URL של האפליקציה.

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

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

  10. אופציונלי: בקטע Logs (יומנים), בוחרים באפשרות Log errors to Logging.

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

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

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

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

  • אפשר להוסיף את אפליקציית 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. בשם המרחב המשותף, כותבים 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. בודקים את ההרשאות שאפליקציית Chat המבוססת על AI מבקשת. כדי להעניק את ההרשאות, לוחצים על אישור.
      4. תופיע הודעה עם הכיתוב You may close this page now.. סוגרים את חלון הדפדפן או את הכרטיסייה וחוזרים למרחב ה-Chat.
  5. שאל שאלה:

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

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

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

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

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

Firestore, Cloud Storage או הודעות ברשימת השיחות ב-Chat API

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

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

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

פתרון בעיות

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

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

הסרת המשאבים

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

  1. במסוף Google Cloud, עוברים לדף Manage resources. לוחצים על תפריט > IAM ואדמין > ניהול משאבים.

    כניסה למנהל המשאבים

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