במדריך הזה מוסבר איך ליצור אפליקציה ל-Google Chat שעונה על שאלות על סמך שיחות במרחבים ב-Chat, באמצעות AI גנרטיבי שמבוסס על Vertex AI עם Gemini. אפליקציית Chat משתמשת ב-Google Workspace Events API וב-Pub/Sub כדי לזהות שאלות שפורסמו במרחבים ב-Chat ולענות עליהן בזמן אמת, גם אם לא תייגו אותה.
אפליקציית Chat משתמשת בכל ההודעות שנשלחו במרחב כמקור נתונים וכמאגר ידע: כשמישהו שואל שאלה, אפליקציית Chat בודקת אם כבר שותפה תשובה ואז משתפת אותה. אם לא נמצאה תשובה, הוא יגיד שהוא לא יכול לענות. אפליקציית Google Chat מבוססת על Gemini AI, ולכן היא מתאימה את עצמה ומרחיבה את מאגר הידע שלה ככל שהיא מתאמנת על שיחות במרחבים שבהם היא נוספה.
כך פועלת אפליקציית Chat במרחב לתמיכה ולצירוף עובדים חדשים:
-
איור 1. צ'ארלי מוסיף למרחב ב-Chat את אפליקציית ה-Chat של עוזר מבוסס-AI עם ידע. -
איור 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:
משתמש מוסיף את אפליקציית העוזר החכם מבוסס-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 ולהגיב להם.
- רשימת ההודעות שנשלחו במרחב.
- לפרסם תשובות לשאלות של משתמשים במרחב.
- מגדירים מאפיינים שקובעים איך הוא יופיע בצ'אט, כמו שם ותמונת אווטאר.
- 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 (ניהול הרשאות גישה וניהול) > 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הוא מזהה הפרויקט של פרויקט בענן שרוצים להפעיל בו חיוב. -
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
אם צריך, מגדירים את פרויקט בענן הנוכחי לפרויקט שיצרתם:
gcloud config set project PROJECT_IDמחליפים את PROJECT_ID במזהה הפרויקט של פרויקט בענן שיצרתם.
מפעילים את 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 Auth > מיתוג.
אם כבר הגדרתם את פלטפורמת האימות של 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).
בקטע URIs 1, מקלידים את הטקסט הבא:
https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2מחליפים את מה שכתוב בשדות הבאים:
- REGION: האזור של Cloud Functions, כמו
us-central1. בהמשך, כשתיצרו את שתי הפונקציות של Cloud Functions, תצטרכו להגדיר את האזור שלהן לערך הזה. - PROJECT_ID: מזהה הפרויקט של פרויקט הענן שיצרתם.
- REGION: האזור של Cloud Functions, כמו
לוחצים על יצירה.
בחלון 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 Console, נכנסים אל תפריט > Pub/Sub.
לוחצים על יצירת נושא.
בשדה Topic ID (מזהה הנושא), כותבים
events-api.מבטלים את הסימון של הוספת מינוי שמוגדר כברירת מחדל.
בקטע Encryption, בוחרים באפשרות Google-managed encryption key.
לוחצים על יצירה. יופיע נושא 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, שמשמש לקריאה ל-Google Workspace APIs. |
refreshToken | Stringטוקן הרענון שניתן במהלך הרשאת משתמש מסוג OAuth 2.0. |
כך יוצרים את מסד הנתונים ב-Firestore:
Google API Console
ב-Google API Console, עוברים אל תפריט > Firestore.
לוחצים על יצירת מסד נתונים.
בקטע בחירת מצב Firestore, לוחצים על מצב 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 Functions
בקטע הזה, יוצרים ופורסים שתי פונקציות ב-Cloud Functions בשמות:
-
app: מארח ומריץ את הקוד של אפליקציית Chat שמגיב לאירועים שמתקבלים מ-Chat כבקשות HTTP. -
eventsApp: מקבל ומעבד אירועים במרחב ב-Chat, כמו הודעות מ-Pub/Sub.
ביחד, הפונקציות האלה של Cloud Functions מרכיבות את הלוגיקה של אפליקציית הצ'אט של עוזר ה-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, לוחצים על תפריט > Cloud Functions.
מוודאים שהפרויקט ב-Google Cloud של אפליקציית Chat נבחר.
לוחצים על Create Function (יצירת פונקציה).
בדף Create function (יצירת פונקציה), מגדירים את הפונקציה:
- בקטע Environment (סביבה), בוחרים באפשרות Cloud Run Function (פונקציית Cloud Run).
- בשדה Function name, כותבים
app. - בקטע Region (אזור), בוחרים אזור, כמו
us-central1. האזור הזה צריך להיות זהה לאזור שהגדרתם ב-URI המורשה להפניה אוטומטית כשיצרתם פרטי כניסה של מזהה לקוח OAuth לאימות ולהרשאה. - בשדה Trigger type, בוחרים באפשרות HTTPS.
- בקטע אימות, בוחרים באפשרות התרת הפעלות לא מאומתות.
- לוחצים על הבא.
בקטע Runtime (סביבת זמן ריצה), בוחרים באפשרות Node.js 20.
בקטע נקודת כניסה, מוחקים את טקסט ברירת המחדל ומזינים
app.בקטע קוד מקור, בוחרים באפשרות העלאת קובץ ZIP.
בקטע קטגוריית יעד, יוצרים או בוחרים קטגוריה:
- לוחצים על מה מעניין אותך היום?
- בוחרים קטגוריה.
- לוחצים על בחירה.
מערכת Google Cloud מעלה את קובץ ה-ZIP ומחלצת את קובצי הרכיבים בקטגוריה הזו. לאחר מכן, Cloud Functions מעתיק את קובצי הרכיבים אל Cloud Functions.
בקטע 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 למזהה הפרויקט בענן.
- מגדירים את הערך של 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, לוחצים על תפריט > Cloud Functions.
מוודאים שהפרויקט ב-Google Cloud של אפליקציית Chat נבחר.
לוחצים על Create Function (יצירת פונקציה).
בדף Create function (יצירת פונקציה), מגדירים את הפונקציה:
- בקטע Environment (סביבה), בוחרים באפשרות Cloud Run 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. - לוחצים על הבא.
בקטע Runtime (סביבת זמן ריצה), בוחרים באפשרות Node.js 20.
בקטע נקודת כניסה, מוחקים את טקסט ברירת המחדל ומזינים
eventsApp.בקטע קוד מקור, בוחרים באפשרות Zip from 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 למזהה הפרויקט בענן.
- מגדירים את הערך של 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.
מעתיקים את app כתובת ה-URL של הטריגר של Cloud Functions
בקטע הבא, כשמגדירים את אפליקציית Chat ב-Google API Console, מדביקים את כתובת ה-URL של הטריגר של פונקציית Cloud app.
Google API Console
במסוף Google API, לוחצים על תפריט > 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 Function של אפליקציית Chat, שאליה נשלחים אירועי אינטראקציה עם Chat.
ב-Google API Console, לוחצים על Menu > 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 תהיה זמינה לאנשים ולקבוצות ספציפיים בדומיין ומזינים את כתובת האימייל.
אם רוצים, בקטע יומנים, בוחרים באפשרות רישום שגיאות ביומן.
לוחצים על שמירה. תוצג הודעה שההגדרה נשמרה.
אפליקציית Chat מוכנה לקבל הודעות ב-Chat ולענות להן.
בדיקת אפליקציית Chat
כדי לבדוק את אפליקציית הצ'אט של עוזר ה-AI, אפשר לשאול שאלות במרחב ב-Chat שבו יש הודעות.
ריכזנו כאן כמה דרכים לבדיקת אפליקציית הצ'אט של עוזר ה-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