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

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

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

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

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

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

מטרות

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

ארכיטקטורה

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

תרשים הארכיטקטורה של אפליקציית צ'אטבוט התמיכה מבוססת-AI ב-Chat

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

  • משתמש מוסיף את אפליקציית הצ'אט של העוזר הדיגיטלי ל-AI ב-Chat למרחב משותף ב-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 מפרסמת את תשובה באמצעות קריאה ל-method spaces.messages.create Chat API באמצעות אימות של אפליקציות.

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

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

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

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

    1. המינוי ל-Chat יימחק על ידי קריאה ל-method subscriptions.delete Google Workspace Event API.

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

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

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

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

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

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

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

מסוף Google Cloud

  1. במסוף Google Cloud, נכנסים לתפריט > IAM & אדמין > יצירת פרויקט.

    כניסה לדף Create a Project

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

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

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

CLI של gcloud

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

  • Cloud Shell: כדי להשתמש בטרמינל אונליין באמצעות ה-CLI של gcloud כבר הוגדר, צריך להפעיל את Cloud Shell.
    הפעלת Cloud Shell
  • Local 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. בקטע בחירת ארגון, בוחרים את הארגון שמשויך אליו. את הפרויקט ב-Google Cloud.
  3. בשורת הפרויקט, פותחים את התפריט Actions (פעולות) (), לוחצים על שינוי החיוב ובוחרים לחשבון לחיוב ב-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 הנכונים ולוחצים על הפעלה.

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 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, נכנסים אל תפריט > ממשקי API ו- שירותים > מסך ההסכמה של OAuth

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

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

  3. בשדה App name, מקלידים 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. מעיינים בסיכום הרישום של האפליקציה ולוחצים על חזרה למרכז השליטה.

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

  1. במסוף Google Cloud, נכנסים אל תפריט > ממשקי API ו- שירותים > פרטי כניסה

    כניסה לדף Credentials

  2. לוחצים על Create Credentials. > מזהה לקוח OAuth.

  3. לוחצים על Application type (סוג אפליקציה). > אפליקציית אינטרנט.

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

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

  6. ב-URIs 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. בקטע Encryption, בוחרים באפשרות Google-managed encryption key.

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

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

    1. בחלונית events-api, בקטע permissionS, לוחצים על הוספת חשבון משתמש.

    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 לפרסם ב-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, נעשה שימוש מודל הנתונים של NoSQL מבוסס על מסמכים מאורגן לפי אוספים. מידע נוסף זמין במאמר הבא: מודל הנתונים של Firestore.

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

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

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

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

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

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

spaces

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

שדות
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

משתמשים שהוסיפו את אפליקציית צ'אטבוט התמיכה מבוססת-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 dataset.

  3. בקטע Select your Firestore mode, לוחצים על Native mode.

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

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

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

    2. בקטע סוג מיקום, בוחרים באפשרות אזור.

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

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

CLI של gcloud

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

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

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

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

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

  1. ליצור ולפרוס שתי פונקציות של Cloud Functions. אחד שיכול לענות לצ'אט אירועי אינטראקציה ואחד להגיב לאירועי 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. בסביבה, בוחרים באפשרות דור שני.
    2. בשדה Function name, מקלידים app.
    3. בקטע Region, בוחרים אזור, כמו us-central1. באזור הזה חייב להתאים לאזור שהגדרת ב-URI המורשה להפניה אוטומטית כאשר עבורך פרטי הכניסה למזהה הלקוח ב-OAuth שנוצרו לצורך אימות והרשאה.
    4. בקטע Trigger type, בוחרים באפשרות HTTPS.
    5. בקטע Authentication, בוחרים לאפשר הפעלות לא מאומתות.
    6. לוחצים על הבא.
  9. ב-Runtime, בוחרים באפשרות Node.js 20.

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

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

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

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

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

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

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

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

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

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

CLI של gcloud

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

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

    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 ID.
    2. הגדרת הערך של location לערך של הפונקציה של Cloud Functions region, למשל 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 region (אזור) תואם לערך שהוגדר בקובץ env.js, למשל us-central1.

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

מסוף Google Cloud

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

    כניסה ל-Cloud Functions

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

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

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

    1. בסביבה, בוחרים באפשרות דור שני.
    2. בשדה Function name, מקלידים eventsApp.
    3. בקטע Region, בוחרים אזור, כמו 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, לוחצים על עיון.

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

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

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

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

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

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

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

CLI של gcloud

  1. אם אתם עדיין לא נמצאים ב-CLI של gcloud, עוברים לספרייה שכולל את הקוד של הידע הזה בתחום ה-AI את אפליקציית Chat של Assistant שוכפל מ-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 ID.
    2. הגדרת הערך של location לערך של הפונקציה של Cloud Functions region, למשל 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 region (אזור) תואם לערך שהוגדר בקובץ env.js, למשל us-central1.

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

בקטע הבא מדביקים את כתובת ה-URL שמשמשת כטריגר של הפונקציה של Cloud Functions 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 Functions app:

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

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

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

  1. במסוף Google Cloud, לוחצים על תפריט. > עוד מוצרים > Google Workspace > ספריית המוצרים > 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. בשדה Description, מקלידים Answers questions with AI.

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

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

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

  8. בקטע App URL, מדביקים את כתובת ה-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

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

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

  • איך מוסיפים את אפליקציית צ'אטבוט התמיכה מבוססת-AI ל-Chat מרחב קיים ב-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. כדאי להוסיף את אפליקציית צ'אטבוט התמיכה מבוססת-AI ב-Chat:

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

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

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

      1. לוחצים על הגדרה.
      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 שיפור היסטוריית השיחות, לוחצים לקבלת עזרה באפליקציית Chat אנחנו מציינים את העוזר הדיגיטלי לידע ב-AI מנהל של המרחב המשותף ושואל אותו לענות על השאלה. בפעם הבאה, עוזר דיגיטלי מבוסס-AI, אפליקציית Chat התשובה!

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

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

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

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

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

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

פתרון בעיות

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

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

הסרת המשאבים

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

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

    מעבר למנהל המשאבים

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