בדף הזה מוסבר איך ליצור אפליקציית Google Chat שיכולה להבין שפה טבעית ולענות באמצעותה באמצעות Dialogflow. במדריך הזה נעשה שימוש ב-Dialogflow CX, שמשולב ישירות עם Google Chat. אפשר גם להשתמש ב-Dialogflow ES כדי ליצור אפליקציית Google Chat ל-Dialogflow ES. לשם כך, צריך לפעול לפי ההוראות במדריך בנושא Dialogflow ES Google Chat.
לדוגמה, אפליקציה ל-Chat שעוזרת לאנשים לשכור מכוניות. משתמש יכול לכתוב, למשל, "אני רוצה לשכור רכב". אפליקציית Chat עשויה להגיב בשאלה כמו "איפה תרצה לאסוף את הרכב?" וכך להתחיל שיחה עם המשתמש שדומה לשיחה עם בן אדם, שבה אפליקציית Chat מבינה את המשתמש ומגיבה לו בשפה טבעית בזמן הזמנת השכרת הרכב.
זו רק דוגמה אחת. אפליקציות צ'אט של Dialogflow שימושיות בכל מיני אינטראקציות. אם נדרשת דיבור אנושי טבעי, צריך להשתמש באפליקציית צ'אט של Dialogflow. סוכנים מוכנים מראש עוזרים להתחיל במהירות ומציגים את היכולות של Dialogflow, כמו:
- הזמנת טיסות
- קביעת תורים לרופאים
- הזמנת משלוח אוכל
- לענות על שאלות לגבי קטלוג מוצרים קמעונאי, למשל אם פריטים זמינים בצבעים אחרים
-
איור 1. בחירת נציג מוכן מראש לאפליקציית צ'אט ב-Dialogflow. -
איור 2. בדיקת הסוכן ב-Dialogflow CX כדי לוודא שהלוגיקה וההגדרה שלו פועלות כמצופה. בדיאגרמה מוצגת קבוצה עוקבת של דפים לפי נושאים שקשורים לשלבים ספציפיים בשיחה, כמו הגדרת מיקום לאיסוף ולהחזרה של רכב שכור, ומוגדר הלוגיקה שמקשרת ביניהם. השיחה נבדקת בסימולטור. -
איור 3. הגדרת אפליקציית Chat לעיבוד תשובות באמצעות סוכן Dialogflow CX בדף ההגדרות של Chat API במסוף Google Cloud. -
איור 4. שיחה על הזמנת רכב להשכרה עם אפליקציית Dialogflow Chat ב-Google Chat.
מטרות
- מגדירים את הסביבה.
- יוצרים ופורסים סוכן Dialogflow CX.
- יצירה ופריסה של אפליקציה ל-Chat שמבוססת על סוכן Dialogflow CX.
- בודקים את אפליקציית Chat.
דרישות מוקדמות
- חשבון Google Workspace במהדורת Business או Enterprise עם גישה ל-Google Chat.
- פרויקט ב-Google Cloud שהחיוב בו מופעל. כדי לבדוק אם החיוב מופעל בפרויקט קיים, אפשר לעיין במאמר אימות סטטוס החיוב של הפרויקטים. כדי ליצור פרויקט ולהגדיר חיוב, אפשר לעיין במאמר בנושא יצירת פרויקט ב-Google Cloud.
ארכיטקטורה
התרשים הבא מציג את הארכיטקטורה של אפליקציית צ'אט שנבנתה באמצעות Dialogflow:
בתרשים שלמעלה, משתמש שמקיים אינטראקציה עם אפליקציית צ'אט של Dialogflow, נתוני המידע עוברים באופן הבא:
- משתמש שולח הודעה באפליקציית Chat, בצ'אט ישיר או במרחב ב-Chat.
- נציג וירטואלי של Dialogflow, ששייך ל-Google Cloud, מקבל את ההודעה ומעבד אותה כדי ליצור תשובה.
- אפשר גם להשתמש ב-webhook של Dialogflow כדי שהסוכן של Dialogflow יוכל ליצור אינטראקציה עם שירותים חיצוניים של צד שלישי, כמו מערכת לניהול פרויקטים או כלי לניהול פניות.
- סוכן Dialogflow שולח תשובה בחזרה לשירות של אפליקציית Chat ב-Chat.
- התשובה נשלחת למרחב ב-Chat.
הגדרת הסביבה
לפני שמשתמשים בממשקי Google API, צריך להפעיל אותם בפרויקט ב-Google Cloud. אפשר להפעיל ממשק API אחד או יותר בפרויקט יחיד ב-Google Cloud.במסוף Google Cloud, מפעילים את Google Chat API ואת Dialogflow API.
מוודאים שמפעילים את ממשקי ה-API בפרויקט הנכון ב-Cloud ולוחצים על הבא.
מוודאים שמפעילים את ממשקי ה-API הנכונים ולוחצים על הפעלה.
יצירת סוכן Dialogflow CX
נציג וירטואלי ב-Dialogflow CX הוא נציג וירטואלי שמטפל בשיחות מקבילות עם משתמשי הקצה. זהו מודול להבנת שפה טבעית שמבין את הניואנסים של השפה האנושית. Dialogflow מתרגם טקסט של משתמשי קצה במהלך שיחה לנתונים מובנים שהאפליקציות והשירותים שלכם יכולים להבין. אתם מעצבים ויוצרים סוכן Dialogflow שיטפל בסוגי השיחות שנדרשים למערכת שלכם.
נציג ב-Dialogflow הוא כמו נציג אנושי במוקד טלפוני. אתם מאמנים את שניהם לטפל בתרחישי שיחה צפויים, והאימון לא צריך להיות מפורט מדי.
כך יוצרים סוכן Dialogflow CX:
במסוף Dialogflow CX, פותחים את Dialogflow CX Console. לוחצים על תפריט > Dialogflow CX.
בוחרים פרויקט ב-Google Cloud. כדי למצוא את הפרויקט, יכול להיות שתצטרכו ללחוץ על הכול ואז לחפש אותו.
עכשיו יש לכם אפשרות לבחור סוכן מובנה מראש או ליצור סוכן משלכם. אם אתם מעדיפים לעיין בפרטים על התאמה אישית של נציגים מאוחר יותר, אתם יכולים לבחור באחד מהנציגים המוכנים מראש, שיכולים לעזור לכם להבין מה נציגים יכולים לעשות.
כדי לבחור סוכן מובנה מראש, פועלים לפי השלבים הבאים:
- לוחצים על שימוש בסוכנים מוכנים מראש.
בוחרים סוכן וירטואלי מוכן מראש. במדריך הזה, בוחרים באפשרות נסיעות: השכרת רכב.
הסוכנים מקבלים דירוג של מתחילים, בינוניים או מתקדמים, בהתאם למספר התכונות שהסוכן משתמש בהן ולמורכבות של לוגיקת השיחה שלו. בחירה בסוכן ברמת ביניים או ברמה מתקדמת עשויה לדרוש התאמות אישיות והגדרות ספציפיות לסוכן, כולל הפעלת תכונות וממשקי API במסוף Google Cloud.
לוחצים על ייבוא כסוכן.
כדי ליצור סוכן משלכם, פועלים לפי השלבים הבאים:
- לוחצים על יצירת סוכן.
- בוחרים באפשרות יצירה אוטומטית כדי ליצור סוכן מאגר נתונים, או באפשרות יצירה משלך כדי ליצור סוגים אחרים של סוכנים.
הוראות מפורטות ליצירת סוכן מופיעות במאמר יצירת סוכן Dialogflow CX.
קובעים את ההגדרות הבסיסיות של הסוכן:
- בשדה שם לתצוגה, מזינים שם לתצוגה.
- בוחרים את המיקום המועדף. אם רוצים לשנות את הגדרות המיקום המתקדמות, לוחצים על עריכה.
- בוחרים את אזור הזמן המועדף.
- בוחרים את שפת ברירת המחדל של הסוכן. אי אפשר לשנות את שפת ברירת המחדל של נציג אחרי שיוצרים אותו.
לוחצים על יצירה. מערכת Dialogflow CX מתחילה ליצור את הסוכן, ואז מציגה את זרימת ההתחלה שמוגדרת כברירת מחדל של הסוכן.
אפשר גם להתאים אישית את הנציג. הוראות מפורטות לגבי תהליך ההתאמה האישית של הסוכן זמינות במאמר יצירת סוכן Dialogflow CX.
מומלץ לבדוק את הסוכן:
- לוחצים על סוכן בדיקה.
- בוחרים באפשרות בדיקת הסוכן בסביבה.
- בקטע Environment (סביבה), בוחרים באפשרות Draft (טיוטה).
- ב-Flow, בוחרים באפשרות Default Start Flow (ברירת מחדל של התחלת זרימה).
- בדף, בוחרים באפשרות דף הפתיחה.
- בסרגל הכתיבה של שיחה עם נציג, מקלידים
Hello
ומקישים על Enter. הנציג מציג את עצמו. - כדי להשלים את הבדיקה, צריך לנהל את שיחת הבדיקה לדוגמה.
הסוכן של Dialogflow CX נוצר. חוזרים למסוף Dialogflow CX. לוחצים על תפריט > Dialogflow CX.
בקטע סוכנים, לוחצים על > העתקת השם. חשוב לשמור את השם הזה, כי תצטרכו אותו כשמגדירים את אפליקציית Chat.
יצירת אפליקציה ל-Chat וקישור שלה לסוכן Dialogflow
אחרי שיוצרים סוכן Dialogflow CX, פועלים לפי השלבים הבאים כדי להפוך אותו לאפליקציית צ'אט:
במסוף Google Cloud, עוברים אל Google Chat API. מחפשים את Google Chat API, לוחצים על Google Chat API ואז על ניהול.
לוחצים על Configuration (הגדרה) ומגדירים את אפליקציית Chat:
- בשדה App name, מזינים
Dialogflow App
. - בקטע כתובת ה-URL של הדמות, מזינים את הערך
https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png
. - בשדה תיאור, מזינים
Responds to real human conversation
. - בקטע פונקציונליות, בוחרים באפשרות הצטרפות למרחבים ולשיחות קבוצתיות.
- בקטע הגדרות חיבור, בוחרים באפשרות Dialogflow.
- בקטע הגדרות Dialogflow, בוחרים באפשרות Dialogflow CX.
- בשדה Agent or Environment resource name (שם משאב של סוכן או סביבה), מדביקים את שם הסוכן של Dialogflow CX שהעתקתם בסוף השלב יצירת סוכן Dialogflow CX.
- האפליקציה הזו של Chat תהיה זמינה לאנשים ולקבוצות ספציפיים בדומיין שלכם, ואז מזינים את כתובת האימייל.
- בקטע יומנים, בוחרים באפשרות רישום שגיאות ביומן.
- בשדה App name, מזינים
לוחצים על שמירה.
אפליקציית Chat מוכנה לקבל הודעות ב-Chat ולענות עליהן.
בדיקת אפליקציית Chat
כדי לבדוק את אפליקציית הצ'אט של Dialogflow CX, שולחים לה הודעה ב-Google Chat.
פותחים את Google Chat באמצעות חשבון Google Workspace שציינתם כשנוספתם כבודקים מהימנים.
- לוחצים על צ'אט חדש.
- בשדה הוספת אדם אחד או יותר, מקלידים את השם של אפליקציית Chat.
בוחרים את אפליקציית Chat מתוך התוצאות. ייפתח צ'אט ישיר.
בצ'אט הישיר החדש עם האפליקציה, כותבים
Hello
ולוחצים עלenter
.אפליקציית Dialogflow Chat מציגה את עצמה.
- כדי להשלים את הבדיקה, צריך לנהל את שיחת הבדיקה לדוגמה.
שיחה לדוגמה עם המורה
כדי לבדוק את אפליקציית הצ'אט של Dialogflow CX במסוף Dialogflow CX או ב-Google Chat, צריך לנהל את השיחה הבאה. ההסבר עוזר להבין איך סוכן Dialogflow CX מפרש את השפה הטבעית של המשתמש ומפיק תגובה בשפה טבעית בכל שלב בשיחה. השיחה לדוגמה הזו מבוססת על סוכן מוכן מראש בשם Travel: car rental.
תיבת דו-שיח | הסבר |
---|---|
משתמש קצה: שלום נציג: שלום! אני סוכן וירטואלי להשכרת רכב. אוכל לעזור לך ליצור הזמנה חדשה להשכרת רכב. איך אוכל לעזור לך היום? |
|
משתמש קצה: אני רוצה לשכור רכב. נציג: איפה היית רוצה לאסוף את הרכב? |
|
משתמש קצה: לאס וגאס נציג: בסדר, האיסוף יהיה בלאס וגאס. נציג: האם מיקום ההורדה שונה ממיקום האיסוף? |
|
משתמש קצה: כן. אחזיר את הרכב בלוס אנג'לס. נציג: בסדר, ההחזרה שלך תהיה בלוס אנג'לס. נציג: לאילו תאריך ושעה ברצונך להגיע לאסוף את הרכב? |
|
משתמש קצה: אני רוצה לאסוף את הרכב ב-5 במרץ בצהריים. נציג: לאילו תאריך ושעה ברצונך להחזיר את הרכב? |
|
משתמש קצה: 15 במרץ בצהריים. נציג: כדי לוודא: תאסוף את הרכב ב לאס וגאס בתאריך 2024-03-05 בשעה 12:00 ותחזיר אותו בלוס אנג'לס בתאריך 2024-03-15 בשעה 12:00 האם זה נכון? |
|
משתמש קצה: כן, תודה. נציג: מצוין! עכשיו נבחר רכב. נציג: האם תרצה רכב חסכוני או רכב יוקרתי? |
|
משתמש קצה: משלוח בסיסי, בבקשה. Agent: Would you like the Cymbal Car or the Cymbal Truck? |
|
משתמש קצה: Cymbal Truck. נציג: המחיר של Cymbal Truck הוא 50.33 USD ליום. היא מתאימה ל-4 אנשים ומגיעה עם רדיו AM/FM. רוצה להמשיך לתשלום? משתמש קצה: כן, בבקשה. |
|
נציג: באיזה סוג כרטיס תרצה להשתמש? משתמש קצה: אלטוסטרטוס נציג: עליך להזין את מספר הכרטיס. משתמש קצה: 1234 1234 1234 1234 נציג: מה השם שמופיע בכרטיס? משתמש קצה: צ'ארלי נציג: מהי הכתובת לחיוב? משתמש קצה: 1800 Amphibious Blvd. Mountain View, CA נציג: מהו המיקוד לחיוב? משתמש קצה: 94045 נציג: אתה תאסוף את Cymbal Car בלאס וגאס, בתאריך 2024-03-05 בשעה 12:00:00 ותחזיר אותו, בתאריך 2024-03-15 בשעה 12:00:00. הסכום הכולל לנסיעה הזו יהיה 175.38$. נציג: תודה ששכרת מאיתנו, שיהיה לך יום מצוין! |
|
שליחת הודעות בכרטיסים מ-Dialogflow
Dialogflow יכול להשיב באמצעות הודעות טקסט או כרטיס. כדי להשיב עם הודעה בכרטיס, צריך לציין אותה כמטען ייעודי (payload) בהתאמה אישית בביצוע ההזמנה.
קובץ ה-JSON הבא מראה איך לשלוח הודעת כרטיס כמטען ייעודי (payload) בהתאמה אישית ב-fulfillment:
json
{
'cardsV2': [{
'cardId': 'createCardMessage',
'card': {
'header': {
'title': 'A card message!',
'subtitle': 'Sent from Dialogflow',
'imageUrl': 'https://developers.google.com/chat/images/chat-product-icon.png',
'imageType': 'CIRCLE'
},
'sections': [
{
'widgets': [
{
'buttonList': {
'buttons': [
{
'text': 'Read the docs!',
'onClick': {
'openLink': {
'url': 'https://developers.google.com/workspace/chat'
}
}
}
]
}
}
]
}
]
}
}]
}
מגבלות ושיקולים
- אירועים של אינטראקציות בצ'אט
נתמכים באופן מוגבל, ויש כמה דברים שצריך לקחת בחשבון:
- אלה סוגי אירועי האינטראקציה שנתמכים:
MESSAGE
ADDED_TO_SPACE
CARD_CLICKED
- באירועים מסוג
MESSAGE
אוADDED_TO_SPACE
, קלט השאילתה שנשלח לסוכן Dialogflow תואם לערך של השדהargumentText
בהודעה בצ'אט. אם ההודעה כוללת פקודת לוכסן, המערכת משתמשת בערך של השדהtext
במקום זאת. - באירועים מסוג
CARD_CLICKED
, הקלט של השאילתה שנשלח לסוכן Dialogflow מעוצב כ-CARD_CLICKED.functionName
, כאשרfunctionName
מתאים לערך של השדהfunction
באובייקט Action שמצורף לרכיב הכרטיס האינטראקטיבי (כמו לחצן). - המטען הייעודי (payload) המלא של JSON של כל אירוע אינטראקציה בצ'אט נשלח ל-Dialogflow כמטען ייעודי מותאם אישית בפרמטר השאילתה, ואפשר לגשת אליו באמצעות webhook של Dialogflow על ידי שליחת שאילתה לגבי הערך של השדה
WebhookRequest.payload
.
- אלה סוגי אירועי האינטראקציה שנתמכים:
- שיקולים למענה לפקודות דרך שורת הפקודות ולקבלת נתונים מכרטיסים או מתיבות דו-שיח:
- כשמגיעה לאפליקציות צ'אט של Dialogflow הודעה עם פקודת לוכסן, קלט השאילתה מכיל רק את הערך של השדה
text
. השדהtext
מתחיל בשם של הפקודה (לדוגמה,/command
), שאפשר להשתמש בו כדי להגדיר כוונה של סוכן Dialogflow לזיהוי פקודה. - אם סוכן Dialogflow צריך לעבד את מטען ה-JSON של אירוע האינטראקציה בצ'אט, הוא יכול לעשות זאת באמצעות Dialogflow webhook כדי לבדוק את המטען הייעודי (payload) המותאם אישית בפרמטר השאילתה.
- כדי להציג תיבת דו-שיח מסוכן Dialogflow, צריך להשיב עם מטען ייעודי (payload) יחיד של JSON בהתאמה אישית, שכולל הודעה שמכילה
DIALOG
תגובה לפעולה. - כדי לעבד נתונים שהוזנו מכרטיסים, סוכן Dialogflow יכול לזהות כוונות שמתחילות בטקסט
CARD_CLICKED
ולהגיב עם מטען ייעודי (payload) יחיד של JSON בהתאמה אישית שמכיל את הפעולה המתאימה.
- כשמגיעה לאפליקציות צ'אט של Dialogflow הודעה עם פקודת לוכסן, קלט השאילתה מכיל רק את הערך של השדה
- אין תמיכה בתצוגה מקדימה של קישורים.
- אם סוכן Dialogflow מגיב בהודעה אחת בלבד, ההודעה נשלחת ל-Google Chat באופן סינכרוני. אם נציג Dialogflow מגיב עם כמה הודעות, כל ההודעות נשלחות ל-Chat באופן אסינכרוני על ידי קריאה לשיטה
create
במשאבspaces.messages
ב-Chat API פעם אחת לכל הודעה. - כשמשתמשים בשילוב של Dialogflow CX עם Chat, צריך להגדיר את סוכן Dialogflow ואת אפליקציית Chat באותו פרויקט ב-Google Cloud. אם אתם צריכים להגדיר את Dialogflow ואת Chat בפרויקטים שונים ב-Cloud, אתם יכולים להגדיר שרת ביניים כדי לאפשר את החיבור. בדוגמה הזו לשילוב של Chat עם Dialogflow CX ב-GitHub מוסבר איך עושים את זה.
פתרון בעיות
כשמוחזרת שגיאה מאפליקציית Google Chat או מכרטיס, מוצגת בממשק של Chat ההודעה 'משהו השתבש'. או 'לא ניתן לעבד את הבקשה שלך'. לפעמים בממשק המשתמש של Chat לא מוצגת הודעת שגיאה, אבל אפליקציית Chat או הכרטיס מפיקים תוצאה לא צפויה. לדוגמה, יכול להיות שהודעה בכרטיס לא תופיע.
יכול להיות שלא תוצג הודעת שגיאה בממשק המשתמש של Chat, אבל אם הפעלתם את רישום השגיאות באפליקציות של Chat, תוכלו לראות הודעות שגיאה תיאוריות ונתוני יומן שיעזרו לכם לתקן את השגיאות. לקבלת עזרה בצפייה בשגיאות, באיתור באגים ובתיקון שלהן, אפשר לעיין במאמר פתרון בעיות ב-Google Chat.
הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, מומלץ למחוק את פרויקט Cloud.
- במסוף Google Cloud, עוברים לדף Manage resources. לוחצים על תפריט > IAM & Admin > Manage Resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete .
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
נושאים קשורים
- Dialogflow CX משתמש בגישה של מכונת מצבים לעיצוב סוכן Dialogflow, שמאפשרת לכם שליטה ברורה ומפורשת בשיחה, חוויית משתמש טובה יותר ותהליך פיתוח יעיל יותר. כשמפתחים אפליקציית צ'אט של Dialogflow, מומלץ להשתמש ב-Dialogflow CX.
- מידע נוסף על יצירה והגדרה של סוכנים זמין במאמר סוכני Dialogflow CX.
- הוראות מפורטות ליצירה ולהגדרה של סוכנים מופיעות במאמר יצירת סוכן Dialogflow CX.
- Build apps for Google Chat with Gemini (יצירת אפליקציות ל-Google Chat באמצעות Gemini). Codelab: דוגמה לאיך ליצור סוכן מאגר נתונים של Dialogflow CX אפשר לראות באפליקציית הצ'אט של מאגר הידע מתוך ה-codelab
- Build apps for Google Chat with Gemini (בניית אפליקציות ל-Google Chat באמצעות Gemini). Codelab: דוגמה לאופן שבו אפשר לבנות סוכן שיחות ב-Dialogflow CX מופיעה באפליקציית הצ'אט למשוב מתוך ה-codelab
- Dialogflow ES היא דרך נוספת להשתמש ב-Dialogflow עם אפליקציית צ'אט.