במדריך הזה מוסבר איך ליצור אפליקציה ל-Google Chat שעונה על שאלות על סמך שיחות במרחבים ב-Chat באמצעות AI גנרטיבי שמבוסס על Vertex AI עם Gemini. אפליקציית Chat משתמשת ב-Google Workspace Events API וב-Pub/Sub כדי לזהות שאלות שפורסמו במרחבים ב-Chat ולענות עליהן בזמן אמת, גם אם לא תייגו אותה.
אפליקציית Chat משתמשת בכל ההודעות שנשלחות במרחב כמקור נתונים וכבסיס ידע: כשמישהו שואל שאלה, אפליקציית Chat בודקת אם יש תשובות ששותפו בעבר ואז משתפת אחת מהן. אם לא נמצאה תשובה, המערכת תציין שהיא לא יכולה לענות. אפליקציית Google Chat משתמשת ב-AI מבית Gemini כדי להסתגל ולהרחיב את מאגר הידע שלה. היא עוברת אימון מתמשך על שיחות במרחבים שבהם היא נוספה.
כך פועלת אפליקציית Chat במרחב לתמיכה ולצירוף עובדים חדשים:
-
איור 1. Charlie מוסיף את אפליקציית הצ'אט של עוזר הידע מבוסס-AI למרחב ב-Chat. -
איור 2. דנה שואלת אם החברה מציעה הדרכה בנושא נשיאת דברים בפני קהל. -
איור 3. אפליקציית ה-Chat של עוזר הידע מבוסס-AI שולחת הנחיה ל-Vertex AI עם Gemini כדי לענות על השאלה של דנה על סמך היסטוריית השיחות במרחב ב-Chat, ואז משתפת את התשובה.
דרישות מוקדמות
חשבון Google Workspace במהדורת Business או Enterprise עם גישה ל-Google Chat.
גישה לשירותי Google Cloud כדי לבצע את הפעולות הבאות:
- יוצרים פרויקט חדש ב-Google Cloud.
- לקשר חשבון לחיוב ב-Google Cloud לפרויקט בענן. כדי לבדוק אם יש לכם גישה, אפשר לעיין במאמר ההרשאות שנדרשות להפעלת החיוב.
- משתמשים בקריאות (invocation) לא מאומתות לפונקציות של Google Cloud, שאפשר לאמת אותן על ידי בדיקה אם הארגון שלכם ב-Google Cloud משתמש בשיתוף מוגבל לפי דומיינים.
במקרה הצורך, אפשר לבקש גישה או הרשאה מהאדמין שלכם ב-Google Cloud.
אם משתמשים ב-Google Cloud CLI, צריך סביבת פיתוח של Node.js שמצורפת להגדרות שמאפשרות עבודה עם ה-CLI של gcloud. הוראות להגדרת סביבת פיתוח של Node.js
מטרות
- יצירת אפליקציה ל-Chat שמשתמשת ב-AI גנרטיבי כדי לענות על שאלות על סמך מידע ששותף בשיחות במרחב ב-Chat.
- עם AI גנרטיבי:
- לזהות שאלות של עובדים ולענות עליהן.
- לומד באופן רציף משיחות מתמשכות במרחב ב-Chat.
- להאזין להודעות במרחב ב-Chat ולענות להן בזמן אמת, גם אם לא שולחים הודעה ישירה לאפליקציית Chat.
- שמירת הודעות על ידי כתיבה למסד נתונים של Firestore וקריאה ממנו.
- כדי לעודד שיתוף פעולה במרחב ב-Chat, אפשר לתייג את מנהלי המרחב אם לא נמצאה תשובה לשאלה.
ארכיטקטורה
בתרשים הבא מוצגת הארכיטקטורה של משאבי Google Workspace ו-Google Cloud שמשמשים את אפליקציית הצ'אט של עוזר ה-AI לידע.
אפליקציית Chat עם עוזר מבוסס-AI לידע פועלת כך:
משתמש מוסיף את אפליקציית ה-Chat של העוזר האישי מבוסס AI למרחב ב-Chat:
אפליקציית Chat מבקשת מהמשתמש שהוסיף אותה למרחב ב-Chat להגדיר אימות והרשאה.
אפליקציית Chat מאחזרת את ההודעות במרחב על ידי קריאה לשיטה
spaces.messages.listב-Chat API, ואז מאחסנת את ההודעות שאוחזרו במסד נתונים של Firestore.אפליקציית Chat קוראת לשיטה
subscriptions.createב-Google Workspace Events API כדי להתחיל להאזין לאירועים כמו הודעות במרחב. נקודת הקצה של ההתראה של המינוי היא נושא ב-Pub/Sub שמשתמש ב-Eventarc כדי להעביר את האירוע לאפליקציית Chat.אפליקציית Chat מפרסמת הודעת היכרות במרחב.
משתמש במרחב ב-Chat מפרסם הודעה:
אפליקציית Chat מקבלת את ההודעה בזמן אמת מהנושא ב-Pub/Sub.
האפליקציה ל-Chat מוסיפה את ההודעה למסד הנתונים של Firestore.
אם משתמש עורך או מוחק את ההודעה בשלב מאוחר יותר, אפליקציית Chat מקבלת את האירוע המעודכן או את אירוע המחיקה בזמן אמת, ואז מעדכנת או מוחקת את ההודעה במסד הנתונים של Firestore.
אפליקציית Chat שולחת את ההודעה אל Vertex AI עם Gemini:
ההנחיה מורה ל-Vertex AI עם Gemini לבדוק אם ההודעה כוללת שאלה. אם כן, Gemini עונה על השאלה על סמך היסטוריית ההודעות במרחב ב-Chat שמאוחסנת ב-Firestore, ואז אפליקציית Google Chat שולחת את ההודעה למרחב ב-Chat. אם לא, אל תשיבו להודעה.
אם Vertex AI עם Gemini עונה על השאלה, אפליקציית הצ'אט מפרסמת את התשובה באמצעות קריאה לשיטה
spaces.messages.createב-Chat API באמצעות אימות האפליקציה.אם Vertex AI עם Gemini לא יכול לענות על השאלה, אפליקציית Chat מפרסמת הודעה שבה מצוין שלא נמצאה תשובה לשאלה הזו בהיסטוריה של המרחב ב-Chat.
אפליקציית Chat מקבלת הודעה על מחזור החיים מ-Google Workspace Events API, שלפיה המינוי למרחב ב-Chat עומד לפוג:
- אפליקציית Chat שולחת בקשה לחידוש המינוי על ידי קריאה לשיטה
subscriptions.patchב-Google Workspace Events API.
- אפליקציית Chat שולחת בקשה לחידוש המינוי על ידי קריאה לשיטה
אפליקציית Chat הוסרה ממרחב ב-Chat:
אפליקציית Chat מוחקת את המינוי על ידי קריאה לשיטה
subscriptions.deleteב-Google Workspace Events API.אפליקציית Chat מוחקת את הנתונים של המרחב ב-Firestore.
בדיקת המוצרים שבהם נעשה שימוש באפליקציית הצ'אט של עוזר הידע מבוסס-AI
אפליקציית Chat עם עוזר ה-AI מבוססת על המוצרים הבאים של Google Workspace ו-Google Cloud:
- Vertex AI API עם Gemini: פלטפורמת AI גנרטיבי שמבוססת על Gemini. אפליקציית הצ'אט של עוזר הידע מבוסס-AI משתמשת ב-Vertex AI API עם Gemini כדי לזהות, להבין ולענות על שאלות של עובדים.
-
Chat API:
API לפיתוח אפליקציות ל-Google Chat שמקבלות אירועי אינטראקציה ב-Chat ומגיבות להם, כמו הודעות. עוזר הידע מבוסס-AI, אפליקציית Chat, משתמש ב-Chat API כדי:
- לקבל אירועי אינטראקציה שנשלחים על ידי Chat ולהגיב להם.
- רשימת ההודעות שנשלחו במרחב.
- לפרסם תשובות לשאלות של משתמשים במרחב.
- מגדירים מאפיינים שקובעים איך הוא יופיע ב-Chat, כמו שם ותמונת אווטאר.
- Google Workspace Events API: ממשק ה-API הזה מאפשר להירשם לאירועים ולנהל התראות על שינויים באפליקציות של Google Workspace. אפליקציית Chat של עוזר ה-AI לחיפוש מידע משתמשת ב-Google Workspace Events 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 שמקבלת ומעבדת את אירועי המינוי.
-
Cloud Functions: שירות מחשוב קל משקל ללא שרת (serverless) שמאפשר ליצור פונקציות עצמאיות למטרה יחידה, שיכולות להגיב לאינטראקציות עם Chat ולאירועי מינוי, בלי צורך לנהל שרת או סביבת זמן ריצה. אפליקציית ה-Chat של עוזר ה-AI לידע משתמשת בשתי פונקציות של Cloud Functions שנקראות:
-
app: מארח את נקודת הקצה (endpoint) של HTTP שאליה Chat שולח אירועי אינטראקציה, ומשמש כפלטפורמת מחשוב להרצת לוגיקה שמבצעת עיבוד של האירועים האלה ומגיבה להם. -
eventsApp: מקבל ומעבד אירועים במרחב ב-Chat, כמו הודעות ממינוי ל-Pub/Sub.
- Cloud Build: פלטפורמה מנוהלת לאינטגרציה רציפה, לפיתוח רציף ולפריסה רציפה, שבה מופעלות גרסאות build אוטומטיות.
- Cloud Run: סביבה מנוהלת להרצת אפליקציות בקונטיינרים.
-
הכנת הסביבה
בקטע הזה מוסבר איך ליצור ולהגדיר פרויקט בענן ב-Google Cloud לאפליקציית Chat.
יצירת פרויקט של Google Cloud
Google API Console
- ב-Google API Console, נכנסים לתפריט > IAM & Admin (ניהול הרשאות גישה (IAM) ואדמין) > Create a Project (יצירת פרויקט).
-
בשדה Project Name (שם הפרויקט), מזינים שם תיאורי לפרויקט.
אופציונלי: כדי לערוך את מזהה הפרויקט, לוחצים על עריכה. אי אפשר לשנות את מזהה הפרויקט אחרי שהוא נוצר, לכן חשוב לבחור מזהה שמתאים לצרכים שלכם למשך חיי הפרויקט.
- בשדה Location, לוחצים על Browse כדי להציג מיקומים אפשריים לפרויקט. אחר כך לוחצים על בחירה.
- לוחצים על יצירה. מערכת Google API Console תעביר אתכם לדף מרכז הבקרה, והפרויקט שלכם ייווצר תוך כמה דקות.
CLI של gcloud
באחת מסביבות הפיתוח הבאות, ניגשים אל Google Cloud CLI (gcloud):
-
Cloud Shell: כדי להשתמש בטרמינל אונליין שבו כבר מוגדר ה-CLI של gcloud, צריך להפעיל את Cloud Shell.
הפעלת Cloud Shell -
מעטפת מקומית: כדי להשתמש בסביבת פיתוח מקומית, צריך להתקין ולהפעיל את ה-CLI של gcloud.
כדי ליצור פרויקט בענן, משתמשים בפקודהgcloud projects create: מחליפים את PROJECT_ID במזהה של הפרויקט שרוצים ליצור.gcloud projects create PROJECT_ID
הפעלת החיוב בפרויקט בענן
Google API Console
- ב-Google API Console, עוברים אל Billing (חיוב). לוחצים על תפריט > חיוב > הפרויקטים שלי.
- בקטע Select an organization (בחירת ארגון), בוחרים את הארגון שמשויך לפרויקט שלכם ב-Google Cloud.
- בשורת הפרויקט, פותחים את התפריט Actions (), לוחצים על Change billing ובוחרים את החשבון לחיוב ב-Cloud.
- לוחצים על Set account.
CLI של gcloud
- כדי להציג רשימה של החשבונות לחיוב שזמינים לכם, מריצים את הפקודה:
gcloud billing accounts list - קישור חשבון לחיוב לפרויקט ב-Google Cloud:
gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_IDמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_IDהוא מזהה הפרויקט של פרויקט Cloud שרוצים להפעיל בו חיוב. -
BILLING_ACCOUNT_IDהוא מזהה החשבון לחיוב שאליו רוצים לקשר את הפרויקט ב-Google Cloud.
-
הפעלת ממשקי ה-API
Google API Console
במסוף ממשקי ה-API של Google, מפעילים את 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 בפרויקט הנכון ב-Cloud ולוחצים על הבא.
מוודאים שמפעילים את ממשקי ה-API הנכונים ולוחצים על הפעלה.
CLI של gcloud
אם צריך, מגדירים את פרויקט Cloud הנוכחי לפרויקט שיצרתם:
gcloud config set project PROJECT_IDמחליפים את PROJECT_ID במזהה הפרויקט של פרויקט 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:
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 במידע אמיתי במסך ההסכמה.
הגדרת מסך ההסכמה ל-OAuth, ציון היקפי הרשאות ורישום האפליקציה
ב-Google API Console, לוחצים על סמל התפריט > פלטפורמת אימות של Google > מיתוג.
אם כבר הגדרתם את פלטפורמת האימות של Google, אתם יכולים לקבוע את ההגדרות הבאות של מסך ההסכמה ל-OAuth בקטעים Branding, Audience וData Access. אם מופיעה ההודעה Google Auth platform not configured yet, לוחצים על Get Started:
- בקטע App Information בשדה App name, מקלידים
AI knowledge assistant. - בקטע User support email, בוחרים את כתובת האימייל שלכם או קבוצת Google מתאימה.
- לוחצים על הבא.
- בקטע Audience, לוחצים על Internal. אם אי אפשר לבחור באפשרות פנימי, בוחרים באפשרות חיצוני.
- לוחצים על הבא.
- בקטע Contact Information, מזינים כתובת אימייל שאליה אפשר לשלוח התראות על שינויים בפרויקט.
- לוחצים על הבא.
- בקטע Finish, קוראים את המדיניות של Google בנושא נתוני משתמשים בשירותי API. אם אתם מסכימים, מסמנים את התיבה I agree to the Google API Services: User Data Policy.
- לוחצים על המשך.
- לוחצים על יצירה.
- אם בחרתם באפשרות חיצוני לסוג המשתמש, מוסיפים משתמשי בדיקה:
- לוחצים על קהל.
- בקטע משתמשי בדיקה, לוחצים על הוספת משתמשים.
- מזינים את כתובת האימייל שלכם ושל משתמשים מורשים אחרים לבדיקה, ואז לוחצים על שמירה.
- בקטע App Information בשדה App name, מקלידים
לוחצים על גישה לנתונים > הוספה או הסרה של היקפי גישה. מופיעה חלונית עם רשימה של היקפי גישה לכל API שהפעלתם בפרויקט ב-Google Cloud.
בקטע הוספה ידנית של היקפי הרשאות, מדביקים את היקף ההרשאות הבא:
https://www.googleapis.com/auth/chat.messages
לוחצים על הוספה לטבלה.
לוחצים על עדכון.
אחרי שבוחרים את ההיקפים שנדרשים לאפליקציה, לוחצים על שמירה בדף גישה לנתונים.
יצירת פרטי כניסה של מזהה לקוח ב-OAuth
במסוף Google API, עוברים אל תפריט > APIs & Services > Credentials.
לוחצים על Create Credentials (יצירת פרטי כניסה) > OAuth client ID (מזהה לקוח OAuth).
לוחצים על Application type > Web application.
בשדה Name, מקלידים שם לפרטי הכניסה. השם הזה מוצג רק ב-Google API Console.
בקטע Authorized redirect URIs (כתובות URI מורשות להפניה אוטומטית), לוחצים על Add URI (הוספת URI).
בקטע מזהי URI 1, מקלידים את הערך הבא:
https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2מחליפים את מה שכתוב בשדות הבאים:
- REGION: האזור של Cloud Function, כמו
us-central1. בהמשך, כשיוצרים את שתי הפונקציות של Cloud Functions, צריך להגדיר את האזור שלהן לערך הזה. - PROJECT_ID: מזהה הפרויקט של פרויקט בענן שיצרתם.
- REGION: האזור של Cloud Function, כמו
לוחצים על יצירה.
בחלון OAuth client created (נוצר לקוח OAuth), לוחצים על Download JSON (הורדת JSON).
שומרים את הקובץ שהורדתם בשם
credentials.json. בהמשך, כשיוצרים את שתי פונקציות Cloud, כוללים את הקובץcredentials.jsonבכל פריסה.לוחצים על אישור.
יצירת נושא Pub/Sub
נושא Pub/Sub פועל עם Google Workspace Events API כדי להירשם לאירועים במרחב ב-Chat, כמו הודעות, ולשלוח לאפליקציית Chat התראות בזמן אמת.
כך יוצרים את נושא ה-Pub/Sub:
Google API Console
במסוף Google API, נכנסים אל תפריט > Pub/Sub.
לוחצים על יצירת נושא.
בשדה Topic ID (מזהה הנושא), כותבים
events-api.מבטלים את הסימון של הוספת מינוי שמוגדר כברירת מחדל.
בקטע הצפנה, בוחרים באפשרות מפתח הצפנה בניהול Google.
לוחצים על יצירה. יופיע נושא Pub/Sub.
כדי שנושא Pub/Sub ו-Google Workspace Events API יפעלו יחד, צריך לתת למשתמש Chat IAM הרשאה לפרסם בנושא Pub/Sub:
בחלונית events-api, בקטע PERMISSIONS, לוחצים על Add Principal.
בקטע Add principals, בשדה New principals, מקלידים
chat-api-push@system.gserviceaccount.com.בקטע Assign roles, בתפריט Select a role, בוחרים באפשרות Pub/Sub > Pub/Sub Publisher.
לוחצים על שמירה.
CLI של gcloud
יצירת נושא Pub/Sub עם מזהה הנושא
events-api:gcloud pubsub topics create events-apiנותנים למשתמש ה-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.
מסד הנתונים של אפליקציית הצ'אט של העוזר הדיגיטלי מבוסס על מודל נתונים של NoSQL שמבוסס על מסמכים שמסודרים ב אוספים. מידע נוסף על מודל הנתונים של Firestore
הדיאגרמה הבאה היא סקירה כללית של מודל הנתונים של אפליקציית הצ'אט של עוזר ה-AI:
תיקיית הבסיס מכילה שני אוספים:
spaces, כאשר כל מסמך מייצג מרחב ב-Chat שאליו נוספה אפליקציית Chat. כל הודעה מיוצגת על ידי מסמך באוסף המשנהmessages.
users, כאשר כל מסמך מייצג משתמש שהוסיף את אפליקציית Chat למרחב ב-Chat.
הצגת הגדרות של אוסף, מסמך ושדה
spaces
מרחב ב-Chat שכולל את אפליקציית ה-Chat של העוזר הדיגיטלי מבוסס-AI.
| שדות | |
|---|---|
Document ID | Stringהמזהה הייחודי של מרחב ספציפי. חלק משם המשאב של המרחב ב-Chat API. |
messages | Subcollection of Documents (הודעות שנשלחו במרחב ב-Chat. תואם ל- Document ID של message ב-Firebase. |
spaceName | Stringהשם הייחודי של המרחב ב-Chat API. הערך תואם לשם המשאב של המרחב ב-Chat API. |
messages
ההודעות שנשלחות במרחב ב-Chat.
| שדות | |
|---|---|
Document ID | Stringמזהה ייחודי של הודעה ספציפית. |
name | Stringהשם הייחודי של הודעה ב-Chat API. הערך הזה תואם לשם המשאב של ההודעה ב-Chat API. |
text | Stringגוף הטקסט של ההודעה. |
time | String (Timestamp format)השעה שבה ההודעה נוצרה. |
users
משתמשים שהוסיפו את אפליקציית העוזר הדיגיטלי מבוסס-AI ל-Chat למרחב ב-Chat.
| שדות | |
|---|---|
Document ID | Stringמזהה ייחודי של משתמש ספציפי. |
accessToken | Stringאסימון הגישה שניתן במהלך הרשאת המשתמש ב-OAuth 2.0, שמשמש לקריאה ל-ממשקי API של Google Workspace. |
refreshToken | Stringטוקן הרענון שניתן במהלך הרשאת משתמש ב-OAuth 2.0. |
כך יוצרים את מסד הנתונים ב-Firestore:
Google API Console
ב-Google API Console, עוברים אל תפריט > Firestore.
לוחצים על יצירת מסד נתונים.
בקטע Select your Firestore mode (בחירת מצב Firestore), לוחצים על Native mode (מצב Native).
לוחצים על המשך.
מגדירים את מסד הנתונים:
בקטע Name your database (מתן שם למסד הנתונים), משאירים את Database ID (מזהה מסד הנתונים) כ-
(default).בקטע Location type, בוחרים באפשרות Region.
בקטע Region (אזור), מציינים אזור למסד הנתונים, למשל
us-central1. כדי לקבל את הביצועים הטובים ביותר, כדאי לבחור את אותו מיקום או מיקום סמוך למיקום של Cloud Functions באפליקציית Chat.
לוחצים על יצירת מסד נתונים.
CLI של gcloud
כדי ליצור מסד נתונים של Firestore במצב Native:
gcloud firestore databases create \ --location=LOCATION \ --type=firestore-nativeמחליפים את LOCATION בשם של אזור Firestore, כמו
us-central1. כדי לקבל את הביצועים הכי טובים, כדאי לבחור את אותו מיקום או מיקום סמוך למיקום של Cloud Functions באפליקציית Chat.
יצירה ופריסה של אפליקציה ל-Chat
אחרי שיוצרים ומגדירים את הפרויקט ב-Google Cloud, אפשר ליצור ולפרוס את אפליקציית Chat. בקטע הזה נסביר איך:
- יוצרים ופורסים שתי פונקציות של Cloud Functions. אחד כדי להגיב לאירועי אינטראקציה ב-Chat ואחד כדי להגיב לאירועים ב-Pub/Sub.
- יוצרים ופורסים אפליקציה ל-Chat בדף ההגדרות של Google Chat API.
יצירה ופריסה של פונקציות Cloud
בקטע הזה, יוצרים ופורסים שתי פונקציות ב-Cloud Functions בשמות:
-
app: מארח ומריץ את הקוד של אפליקציית Chat שמגיב לאירועים שמתקבלים מ-Chat כבקשות HTTP. -
eventsApp: מקבל ומעבד אירועים במרחבים ב-Chat, כמו הודעות מ-Pub/Sub.
ביחד, פונקציות Cloud האלה מרכיבות את הלוגיקה של אפליקציית הצ'אט של עוזר ה-AI.
אופציונלי: לפני שיוצרים את Cloud Functions, כדאי לעיין בקוד לדוגמה שמתארח ב-GitHub ולהכיר אותו.
יצירה ופריסה של app
Google API Console
מורידים את הקוד מ-GitHub כקובץ ZIP.
מחלצים את קובץ ה-ZIP שהורד.
התיקייה שחולצה מכילה את כל מאגר הדוגמאות של Google Workspace.
בתיקייה שחולצה, עוברים לספרייה
add-ons-samples-main/node/chat/ai-knowledge-assistant.בספרייה
add-ons-samples/node/chat/ai-knowledge-assistant, מוסיפים את הקובץcredentials.jsonשהורדתם כשיצרתם פרטי כניסה של מזהה לקוח OAuth לאימות ולהרשאה.דחיסת התוכן של התיקייה
ai-knowledge-assistantלקובץ ZIP.קובץ ה-ZIP צריך להכיל את הקבצים והתיקיות הבאים:
.gcloudignore.gitignoreREADME.mddeploy.shenv.jsevents_index.jshttp_index.jsindex.jscredentials.jsonpackage-lock.jsonpackage.jsoncontrollers/model/services/test/
ב-Google API Console, עוברים אל תפריט > Cloud Functions.
מוודאים שהפרויקט ב-Google Cloud עבור אפליקציית Chat נבחר.
לוחצים על Create Function (יצירת פונקציה).
בדף Create function (יצירת פונקציה), מגדירים את הפונקציה:
- בקטע סביבה, בוחרים באפשרות פונקציית Cloud Run.
- בשדה Function name, כותבים
app. - בקטע Region (אזור), בוחרים אזור, כמו
us-central1. האזור הזה צריך להיות זהה לאזור שהגדרתם ב-URI המורשה להפניה אוטומטית כשיצרתם פרטי כניסה של מזהה לקוח OAuth לאימות ולהרשאה. - בשדה Trigger type, בוחרים באפשרות HTTPS.
- בקטע אימות, בוחרים באפשרות התרת הפעלות לא מאומתות.
- לוחצים על הבא.
בקטע סביבת זמן ריצה, בוחרים באפשרות Node.js 20.
בקטע נקודת כניסה, מוחקים את טקסט ברירת המחדל ומזינים
app.בקטע קוד מקור, בוחרים באפשרות העלאת קובץ ZIP.
בקטע קטגוריית יעד, יוצרים או בוחרים קטגוריה:
- לוחצים על מה מעניין אותך היום?
- בוחרים קטגוריה.
- לוחצים על בחירה.
מערכת Google Cloud מעלה את קובץ ה-ZIP ומחלצת את קובצי הרכיבים בקטגוריה הזו. לאחר מכן, Cloud Functions מעתיק את קובצי הרכיב אל Cloud Function.
בקטע Zip file (קובץ ZIP), מעלים את קובץ ה-ZIP שהורדתם מ-GitHub, חילצתם ודחסתם מחדש:
- לוחצים על מה מעניין אותך היום?
- מנווטים אל קובץ ה-ZIP ובוחרים בו.
- לוחצים על פתיחה.
לוחצים על פריסה.
ייפתח הדף Cloud Functions detail והפונקציה שלכם תופיע עם שני אינדיקטורים להתקדמות: אחד לבנייה ואחד לשירות. כששני סימני ההתקדמות נעלמים ומוחלפים בסימן וי, הפונקציה מוכנה לפריסה.
עורכים את הקוד לדוגמה כדי להגדיר קבועים:
- בדף Cloud Function detail (פרטי Cloud Function), לוחצים על Edit (עריכה).
- לוחצים על הבא.
- בקטע קוד מקור, בוחרים באפשרות עורך בתוך השורה.
- בכלי לעריכה ישירה, פותחים את הקובץ
env.jsועורכים אותו:- מגדירים את הערך של project למזהה פרויקט בענן.
- מגדירים את הערך של location לאזור של Cloud Functions, כמו
us-central1.
לוחצים על פריסה.
CLI של gcloud
משכפלים את הקוד מ-GitHub:
git clone https://github.com/googleworkspace/add-ons-samples.gitעוברים לספרייה שמכילה את הקוד של אפליקציית ה-Chat של העוזר הדיגיטלי מבוסס-AI:
cd add-ons-samples/node/chat/ai-knowledge-assistantבספרייה
add-ons-samples/node/chat/ai-knowledge-assistant, מוסיפים את הקובץcredentials.jsonשהורדתם כשיצרתם פרטי כניסה של מזהה לקוח OAuth לאימות ולהרשאה.עורכים את הקובץ
env.jsכדי להגדיר משתני סביבה:- מגדירים את הערך של project למזהה הפרויקט ב-Cloud.
- מגדירים את הערך של location לאזור של Cloud Functions, כמו
us-central1.
פורסים את הפונקציה של 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 API Console
ב-Google API Console, עוברים אל תפריט > Cloud Functions.
מוודאים שהפרויקט ב-Google Cloud עבור אפליקציית Chat נבחר.
לוחצים על Create Function (יצירת פונקציה).
בדף Create function (יצירת פונקציה), מגדירים את הפונקציה:
- בקטע סביבה, בוחרים באפשרות פונקציית Cloud Run.
- בשדה Function name, כותבים
eventsApp. - בקטע Region (אזור), בוחרים אזור, כמו
us-central1. האזור הזה צריך להיות זהה לאזור שהגדרתם ב-URI המורשה להפניה אוטומטית כשיצרתם פרטי כניסה של מזהה לקוח OAuth לאימות ולהרשאה. - בקטע Trigger type, בוחרים באפשרות Cloud Pub/Sub.
- בקטע Cloud Pub/Sub topic, בוחרים את שם הנושא ב-Pub/Sub שיצרתם, בפורמט
projects/PROJECT/topics/events-api, כאשר PROJECT הוא מזהה פרויקט בענן. - אם מופיעה הודעה שמתחילה במילים
Service account(s) might not have enough permissions to deploy the function with the selected trigger., לוחצים על Grant All. - לוחצים על הבא.
בקטע סביבת זמן ריצה, בוחרים באפשרות Node.js 20.
בקטע נקודת כניסה, מוחקים את טקסט ברירת המחדל ומזינים
eventsApp.בקטע קוד מקור, בוחרים באפשרות Zip from Cloud Storage (קובץ ZIP מ-Cloud Storage).
בקטע Cloud Storage location (מיקום ב-Cloud Storage), לוחצים על Browse (עיון).
בוחרים את הקטגוריה שאליה העליתם את קובץ ה-ZIP כשנוצר
appCloud Function.לוחצים על קובץ ה-ZIP שהעליתם.
לוחצים על בחירה.
לוחצים על פריסה.
ייפתח הדף Cloud Functions detail והפונקציה שלכם תופיע עם שלושה אינדיקטורים להתקדמות: אחד לבנייה, אחד לשירות ואחד לטריגר. כשכל שלושת מחווני ההתקדמות נעלמים ומוחלפים בסימן וי, הפונקציה מוכנה לפריסה.
עורכים את הקוד לדוגמה כדי להגדיר קבועים:
- בדף Cloud Function detail (פרטי Cloud Function), לוחצים על Edit (עריכה).
- לוחצים על הבא.
- בקטע קוד מקור, בוחרים באפשרות עורך בתוך השורה.
- בכלי לעריכה ישירה, פותחים את הקובץ
env.jsועורכים אותו:- מגדירים את הערך של project למזהה פרויקט בענן.
- מגדירים את הערך של location לאזור של פונקציית Cloud Functions, כמו
us-central1.
לוחצים על פריסה.
CLI של gcloud
ב-CLI של gcloud, אם אתם לא נמצאים כבר בספרייה, עוברים לספרייה שכוללת את הקוד של אפליקציית הצ'אט של עוזר ה-AI הזה, ששיכפלתם קודם מ-GitHub:
cd add-ons-samples/node/chat/ai-knowledge-assistantבספרייה
add-ons-samples/node/chat/ai-knowledge-assistant, מוסיפים את הקובץcredentials.jsonשהורדתם כשיצרתם פרטי כניסה של מזהה לקוח OAuth לאימות ולהרשאה.עורכים את הקובץ
env.jsכדי להגדיר משתני סביבה:- מגדירים את הערך של project למזהה הפרויקט ב-Cloud.
- מגדירים את הערך של location לאזור של Cloud Functions, כמו
us-central1.
פורסים את הפונקציה של 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 של הטריגר של app Cloud Function
בקטע הבא, כשמגדירים את אפליקציית Chat ב-Google API Console, מדביקים את כתובת ה-URL של הטריגר של Cloud Function app.
Google API Console
ב-Google API Console, עוברים אל תפריט > Cloud Functions.
בעמודה Name (שם) ברשימה של Cloud Functions, לוחצים על
app.לוחצים על Trigger (טריגר).
מעתיקים את כתובת ה-URL.
CLI של gcloud
מתארים את הפונקציה
appשל Cloud Functions:gcloud functions describe appמעתיקים את
urlהנכס.
הגדרת אפליקציית Chat ב-Google API Console
בקטע הזה מוסבר איך להגדיר את Chat API ב-Google API Console עם מידע על אפליקציית Chat, כולל השם של אפליקציית Chat וכתובת ה-URL של הטריגר של פונקציית Cloud של אפליקציית Chat שאליה נשלחים אירועי אינטראקציה ב-Chat.
ב-Google API Console, לוחצים על תפריט > APIs & Services > Enabled APIs & Services > Google Chat API > Configuration.
בשדה App name, כותבים
AI knowledge assistant.בקטע כתובת ה-URL של הדמות, מקלידים
https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg.בשדה תיאור, מקלידים
Answers questions with AI.לוחצים על המתג הפעלת תכונות אינטראקטיביות כדי להפעיל אותו.
בקטע פונקציונליות, בוחרים באפשרות הצטרפות למרחבים ולשיחות קבוצתיות.
בקטע Connection settings (הגדרות חיבור), בוחרים באפשרות HTTP endpoint URL (כתובת URL של נקודת קצה בפרוטוקול HTTP).
מעתיקים את כתובת האימייל של חשבון השירות. תצטרכו את כתובת האימייל הזו כשתאשרו לתוסף להפעיל את הפונקציה.
בקטע טריגרים, בוחרים באפשרות שימוש בכתובת URL משותפת של נקודת קצה (endpoint) בפרוטוקול HTTP לכל הטריגרים.
בקטע HTTP endpoint URL (כתובת URL של נקודת קצה מסוג HTTP), מדביקים את כתובת ה-URL של הטריגר של Cloud Functions
appבפורמטhttps://REGION-PROJECT_ID.cloudfunctions.net/app, כאשר REGION הוא האזור של Cloud Functions, כמוus-central1, ו-PROJECT_ID הוא מזהה הפרויקט של פרויקט הענן שיצרתם.בקטע חשיפה, בוחרים באפשרות הפיכת האפליקציה הזו של Google Chat לזמינה לאנשים ולקבוצות ספציפיים בדומיין ומזינים את כתובת האימייל.
אם רוצים, בקטע Logs (יומנים), בוחרים באפשרות Log errors to Logging (רישום שגיאות ביומן).
לוחצים על שמירה. תוצג הודעה שההגדרה נשמרה.
אפליקציית Chat מוכנה לקבל הודעות ב-Chat ולענות עליהן.
בדיקת אפליקציית Chat
כדי לבדוק את אפליקציית הצ'אט של העוזר הדיגיטלי מבוסס-AI, אפשר לשאול שאלות במרחב ב-Chat שיש בו הודעות, שאלות שאפליקציית הצ'אט של העוזר הדיגיטלי מבוסס-AI יכולה לענות עליהן.
ריכזנו כאן כמה דרכים לבדיקת אפליקציית הצ'אט של העוזר הדיגיטלי מבוסס-AI:
- מוסיפים את אפליקציית הצ'אט של העוזר הדיגיטלי מבוסס-AI למרחב קיים ב-Chat ושואלים שאלות שרלוונטיות למרחב הזה.
- יוצרים מרחב ב-Chat ומפרסמים בו כמה הודעות כדי להשתמש בו כמקור נתונים. אפשר להשתמש בהנחיה כמו
Answer 20 common onboarding questions employees ask their teams.כדי לקבל הודעות מ-Gemini. לחלופין, אפשר להדביק כמה פסקאות מהמדריך סקירה כללית על פיתוח באמצעות Chat ואז לשאול שאלות לגביהן.
במדריך הזה, ניצור מרחב ב-Chat ונדביק כמה פסקאות מתוך המדריך סקירה כללית על פיתוח באמצעות Chat.
פותחים את Google Chat.
יצירת מרחב ב-Chat:
לוחצים על צ'אט חדש > יצירת מרחב.
בשדה Space name, כותבים
Testing AI knowledge assistant app.בקטע למה מיועד המרחב הזה?, בוחרים באפשרות עבודה משותפת.
בקטע הגדרות הגישה, בוחרים מי יכול לגשת למרחב.
לוחצים על יצירה.
הוספת הודעות לשימוש כמקור נתונים:
בדפדפן אינטרנט, עוברים אל המדריך סקירה כללית על פיתוח באמצעות Chat.
מעתיקים את התוכן של המדריך ומדביקים אותו במרחב ב-Chat שיצרתם.
מוסיפים את אפליקציית Chat של עוזר מבוסס-AI:
בסרגל כתיבת ההודעה, מקלידים
@AI knowledge assistantובתפריט ההצעות שמופיע, בוחרים באפשרות 'צ'אט' – אפליקציית העזרה מבוססת-AI, ולוחצים עלenter.תוצג הודעה עם שאלה אם רוצים להוסיף את אפליקציית הצ'אט של עוזר ה-AI החכם למרחב. לוחצים על הוספה למרחב.
אם זו הפעם הראשונה שאתם מוסיפים את אפליקציית Chat למרחב, אתם צריכים להגדיר אימות והרשאה לאפליקציית Chat:
- לוחצים על Configure (הגדרה).
- ייפתח חלון חדש בדפדפן או כרטיסייה חדשה שבה תתבקשו לבחור חשבון Google. בוחרים את החשבון שבו רוצים לבצע את הבדיקה.
- בודקים את ההרשאות שאפליקציית הצ'אט עם העוזר הדיגיטלי מבוסס-AI מבקשת. כדי להעניק להם הרשאה, לוחצים על אישור.
- מופיעה הודעה עם הכיתוב
You may close this page now.. סוגרים את חלון הדפדפן או את הכרטיסייה וחוזרים למרחב ב-Chat.
שאל שאלה:
בסרגל הכתיבה של ההודעה, מקלידים שאלה כמו
What are Google Chat apps?תשובות של אפליקציית הצ'אט של העוזר האישי מבוסס-AI.
שיקולים, אפשרויות חלופיות לארכיטקטורה והשלבים הבאים
בקטע הזה נסביר על דרכים אחרות ליצירת אפליקציית צ'אט של עוזר AI חכם.
Firestore, Cloud Storage או קריאה ל-List Messages ב-Chat API
במדריך הזה מומלץ לאחסן נתונים של מרחבים ב-Chat, כמו הודעות, במסד נתונים של Firestore. הסיבה לכך היא שזה משפר את הביצועים בהשוואה לקריאה לשיטה list במשאב Message באמצעות Chat API בכל פעם שאפליקציית Chat עונה על שאלה. בנוסף, קריאה חוזרת ל-list messages עלולה לגרום לאפליקציית Chat לחרוג ממגבלות מכסת ה-API.
עם זאת, אם היסטוריית השיחות במרחב ב-Chat ארוכה מדי, השימוש ב-Firestore עלול להיות יקר.
Cloud Storage הוא חלופה ל-Firestore. לכל מרחב שבו אפליקציית הצ'אט של העוזר הדיגיטלי מבוסס-AI פעילה יש אובייקט משלו, וכל אובייקט הוא קובץ טקסט שמכיל את כל ההודעות במרחב. היתרון בגישה הזו הוא שאפשר להזין את כל התוכן של קובץ הטקסט ל-Vertex AI עם Gemini בבת אחת, אבל החיסרון הוא שנדרשת יותר עבודה כדי לעדכן את היסטוריית השיחות, כי אי אפשר לצרף תוכן לאובייקט ב-Cloud Storage, אלא רק להחליף אותו. הגישה הזו לא מתאימה אם אתם מעדכנים את היסטוריית ההודעות באופן קבוע, אבל היא יכולה להיות בחירה טובה אם אתם מעדכנים את היסטוריית ההודעות מדי פעם, למשל פעם בשבוע.
פתרון בעיות
כשמוחזרת שגיאה מאפליקציית Google Chat או מכרטיס, בממשק של Chat מוצגת ההודעה "משהו השתבש". או 'לא ניתן לעבד את הבקשה שלך'. לפעמים בממשק המשתמש של Chat לא מוצגת הודעת שגיאה, אבל אפליקציית Chat או הכרטיס מפיקים תוצאה לא צפויה. לדוגמה, יכול להיות שהודעה בכרטיס לא תופיע.
יכול להיות שלא תוצג הודעת שגיאה בממשק המשתמש של Chat, אבל אם הפעלתם את רישום השגיאות באפליקציות של Chat, תוכלו לראות הודעות שגיאה תיאוריות ונתוני יומן שיעזרו לכם לתקן את השגיאות. לקבלת עזרה בצפייה בשגיאות, באיתור באגים ובתיקון שגיאות, אפשר לעיין במאמר פתרון בעיות ותיקון שגיאות ב-Google Chat.
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, מומלץ למחוק את פרויקט בענן.
- במסוף Google API, עוברים לדף Manage resources. לוחצים על תפריט > IAM & Admin > Manage Resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete .
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
נושאים קשורים
- תכנון נסיעות באמצעות סוכן AI שזמין בכל Google Workspace
- איך מגיבים לאירועים באמצעות Google Chat, Vertex AI, Apps Script ואימות משתמשים
- ניהול פרויקטים באמצעות Google Chat, Vertex AI ו-Firestore
- בדיקת עובדות באמצעות סוכן AI של ADK ומודל Gemini
- שילוב של מושגי יסוד בתחום ה-AI באפליקציות של Chat
- פיתוח אפליקציה ל-Chat כתוסף ל-Google Workspace באמצעות Apps Script