בדף הזה נסביר איך ליצור אפליקציה ל-Google Chat שיכולה להבין שפה טבעית ולהשיב בהתאם באמצעות Dialogflow. במדריך הזה נעשה שימוש ב-Dialogflow CX, שיש לו שילוב ישיר עם Google Chat. אפשר גם להשתמש ב-Dialogflow ES כדי ליצור אפליקציית Google Chat של Dialogflow ES. לשם כך, פועלים לפי ההוראות במדריך Dialogflow ES Google Chat.
לדוגמה, אפליקציית Chat שעוזרת לאנשים לשכור מכוניות. משתמש יכול לכתוב "אני רוצה לשכור רכב". יכול להיות שאפליקציית Chat תגיב בשאלה כמו "איפה תרצה לאסוף את הרכב?", שתתחיל שיחה עם המשתמש שנראית כמו שיחה עם בן אדם. במהלך השיחה, אפליקציית Chat תבין את מה שהמשתמש אומר ותגיב בעצמה בשפה אנושית בזמן ההזמנה של השכרת הרכב.
זו רק דוגמה אחת. אפליקציות Chat של Dialogflow שימושיות בכל סוגי האינטראקציות. אם השירות דורש דיבור טבעי אנושי, צריך להשתמש באפליקציית Dialogflow Chat. הסוכנים המוכנים מראש עוזרים לכם להתחיל במהירות ולהציג את היכולות של 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 מוסבר איך יוצרים פרויקט ומגדירים חיוב.
ארכיטקטורה
התרשים הבא מציג את הארכיטקטורה של אפליקציית Chat שנוצרה באמצעות Dialogflow:
בתרשים הקודם, כשמשתמש מקיים אינטראקציה עם אפליקציית Chat של Dialogflow, מתרחש תהליך העברת המידע הבא:
- משתמש שולח הודעה ב-Chat לאפליקציית Chat, בצ'אט אישי או במרחב משותף ב-Chat.
- נציג וירטואלי של Dialogflow שנמצא ב-Google Cloud מקבל את ההודעה ומעבד אותה כדי ליצור תשובה.
- אפשר גם להשתמש בDialogflow webhook כדי לאפשר לסוכן של Dialogflow לקיים אינטראקציה עם שירותים חיצוניים של צד שלישי, כמו מערכת ניהול פרויקטים או כלי ליצירת כרטיסים.
- הנציג של Dialogflow שולח תשובה בחזרה לשירות של אפליקציית Chat ב-Chat.
- התשובה תישלח למרחב המשותף ב-Chat.
הגדרת הסביבה
לפני שמשתמשים ב-Google APIs, צריך להפעיל אותם בפרויקט ב-Google Cloud. אפשר להפעיל ממשק API אחד או יותר בפרויקט אחד ב-Google Cloud.במסוף Google Cloud, מפעילים את Google Chat API ואת Dialogflow API.
מוודאים שאתם מפעילים את ממשקי ה-API בפרויקט הנכון ב-Cloud ולוחצים על הבא.
מוודאים שאתם מפעילים את ממשקי ה-API הנכונים ולוחצים על Enable.
יצירת סוכן ב-Dialogflow CX
נציג CX של Dialogflow הוא נציג וירטואלי שמטפל בשיחות בו-זמניות עם משתמשי הקצה. זהו מודול להבנת שפה טבעית שמבין את הניואנסים של השפה האנושית. Dialogflow מתרגם את הטקסט של משתמש הקצה במהלך השיחה לנתונים מובְנים שהאפליקציות והשירותים שלכם יכולים להבין. אתם מתכננים ויוצרים נציג של Dialogflow שיטפל בסוגי השיחות הנדרשים למערכת שלכם.
נציג ב-Dialogflow הוא כמו נציג אנושי במוקד טלפוני. אתם מארגנים אימון לשני המודלים כדי לטפל בתרחישי שיחה צפויים, והאימון לא צריך להיות מפורט מדי.
כך יוצרים את הסוכן של Dialogflow CX:
במסוף Dialogflow CX, פותחים את מסוף Dialogflow CX. לוחצים על תפריט > Dialogflow CX.
בוחרים פרויקט ב-Google Cloud. יכול להיות שתצטרכו ללחוץ על הכול ואז לחפש את הפרויקט.
עכשיו יש לכם אפשרות לבחור סוכן שנוצר מראש או ליצור סוכן משלכם. אם אתם מעדיפים לבדוק את ההתאמה האישית של הנציגים בהמשך, תוכלו לבחור באחד מהנציגים שנוצרו מראש. הם גם יכולים לעזור לכם להבין מה הנציגים יכולים לעשות.
כדי לבחור סוכן שנוצר מראש:
- לוחצים על שימוש בסוכנים מוכנים מראש.
בוחרים סוכן שנוצר מראש. במדריך הזה, בוחרים באפשרות נסיעות: השכרת רכב.
הנציגים מדורגים כמתחילים, ברמה בינונית או ברמה מתקדמת, בהתאם למספר התכונות שבהן הם משתמשים ולמורכבות של לוגיקה של השיחה. אם בוחרים סוכן ברמה בינונית או מתקדמת, יכול להיות שתצטרכו לבצע התאמות אישיות והגדרות ספציפיות לסוכן, כולל הפעלת תכונות וממשקי API במסוף Google Cloud.
לוחצים על ייבוא כסוכן.
כדי ליצור סוכן משלכם:
- לוחצים על Create agent.
- בוחרים באפשרות Auto-generate כדי ליצור סוכן של מאגר נתונים, או באפשרות Build your own כדי ליצור סוכנים מסוגים אחרים.
למדריך מפורט על תהליך היצירה של נציג, קראו את המאמר יצירת נציג ב-Dialogflow CX.
מגדירים את ההגדרות הבסיסיות של הסוכנים:
- בשדה Display name, מזינים שם מוצג.
- בוחרים את המיקום המועדף. כדי לשנות את הגדרות המיקום המתקדמות, לוחצים על Edit.
- בוחרים את אזור הזמן המועדף.
- בוחרים את שפת ברירת המחדל של הנציג. אי אפשר לשנות את שפת ברירת המחדל של נציג אחרי היצירה שלו.
לוחצים על יצירה. מערכת Dialogflow CX תתחיל ליצור את הסוכן, ואז תוצג תהליך ההתחלה שמוגדר כברירת מחדל לסוכן.
אפשר גם להתאים אישית את הסוכן. במאמר יצירת נציג של Dialogflow CX מוסבר בהרחבה על תהליך ההתאמה אישית של הנציג.
מומלץ לבדוק את הסוכן:
- לוחצים על Test agent.
- בוחרים באפשרות בדיקת הסוכן בסביבה.
- בקטע Environment (סביבה), בוחרים באפשרות Draft (טיוטה).
- ב-Flow, בוחרים באפשרות Default Start Flow.
- בקטע 'דף', בוחרים באפשרות דף הפתיחה.
- בסרגל הכתיבה Talk to agent, מקלידים
Hello
ומקישים על Enter. הנציג מציג את עצמו. - כדי להשלים את הבדיקה, צריך לנהל שיחת בדיקה לדוגמה.
נוצר הנציג ב-Dialogflow CX. חוזרים למסוף Dialogflow CX. לוחצים על סמל התפריט > Dialogflow CX.
בקטע סוכנים, לוחצים על > העתקת השם. שומרים את השם הזה, כי תצטרכו להשתמש בו כשמגדירים את אפליקציית Chat.
יצירת אפליקציית צ'אט וקישור שלה לנציג של Dialogflow
אחרי שיוצרים סוכן של Dialogflow CX, מבצעים את השלבים הבאים כדי להפוך אותו לאפליקציית Chat:
נכנסים לדף Google Chat API במסוף Google Cloud. מחפשים את 'Google Chat API' ולוחצים על Google Chat API ואז על ניהול.
לוחצים על Configuration (הגדרה) ומגדירים את אפליקציית Chat:
- בשדה App name, מזינים
Dialogflow App
. - בקטע Avatar URL, מזינים את הערך
https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png
. - בשדה Description, מזינים
Responds to real human conversation
. - בקטע פונקציונליות, בוחרים באפשרויות קבלת הודעות בצ'אט אישי והצטרפות למרחבים משותפים ולשיחות קבוצתיות.
- בקטע Connection settings (הגדרות החיבור), בוחרים באפשרות Dialogflow.
- בקטע Dialogflow settings (הגדרות Dialogflow), בוחרים באפשרות Dialogflow CX.
- בשדה Agent or Environment resource name, מדביקים את שם הסוכן של Dialogflow CX שהעתקתם בסוף הקטע יצירת סוכן של Dialogflow CX.
- מגדירים את אפליקציית Chat הזו כזמינה לאנשים ולקבוצות ספציפיים בדומיין, ומזינים את כתובת האימייל שלכם.
- בקטע יומנים, בוחרים באפשרות רישום שגיאות ביומן.
- בשדה App name, מזינים
לוחצים על שמירה.
אפליקציית Chat מוכנה לקבל הודעות ולענות להן ב-Chat.
בדיקת אפליקציית Chat
כדי לבדוק את אפליקציית Dialogflow CX Chat, שולחים לה הודעה ב-Google Chat.
פותחים את Google Chat באמצעות חשבון Google Workspace שסיפקתם כשהוספת את עצמכם כבודקים מהימנים.
- לוחצים על צ'אט חדש.
- בשדה Add 1 or more people, מקלידים את שם אפליקציית Chat.
בוחרים את אפליקציית Chat בתוצאות. ייפתח צ'אט אישי.
בצ'אט האישי החדש עם האפליקציה, מקלידים
Hello
ומקישים עלenter
.אפליקציית Dialogflow Chat תגיב על כך בהצגת עצמה.
- כדי להשלים את הבדיקה, צריך לנהל שיחת בדיקה לדוגמה.
שיחה לדוגמה לבדיקה
כדי לבדוק את אפליקציית Dialogflow CX Chat במסוף Dialogflow CX או ב-Google Chat, מנהלים את השיחה הבאה. ההסבר עוזר לכם להבין איך הסוכן של Dialogflow CX מפרש את השפה הטבעית של המשתמש ויוצר תשובה משלו בשפה טבעית בכל שלב בשיחה. השיחה לדוגמה מבוססת על הסוכן שנוצר מראש שנקרא Travel: car rental.
תיבת דו-שיח | הסבר |
---|---|
משתמש קצה: שלום נציג: שלום! אני הנציגה הווירטואלית של חברת השכרת הרכב. אוכל לעזור לך להתחיל להזמין רכב חדש. איך אוכל לעזור לך? |
|
משתמש קצה: אני רוצה לשכור רכב. נציג: איפה תרצה לאסוף את הרכב? |
|
משתמש קצה: לאס וגאס נציג: בסדר, האיסוף יהיה בלאס וגאס. נציג/ה: האם מיקום המסירה שונה ממיקום האיסוף? |
|
משתמש קצה: כן. אחזיר את הרכב בלוס אנג'לס. נציג/ה: בסדר, האיסוף יהיה בלוס אנג'לס. נציג/ה: באיזה תאריך ושעה ברצונך לאסוף את הרכב? |
|
משתמש קצה: אני רוצה לאסוף את הרכב ב-5 במרץ בשעה 12:00. נציג/ה: מהו התאריך והשעה שבהם ברצונך להביא את הרכב? |
|
משתמש קצה: 15 במרץ בשעה 12:00. נציג התמיכה: רק רציתי לוודא: הרכב יאסוף בלאס וגאס בתאריך 05 במרץ 2024 בשעה 12:00:00 ויוחזר בלוס אנג'לס בתאריך 15 במרץ 2024 בשעה 12:00:00 זה נכון? |
|
משתמש קצה: כן, תודה. נציג: מצוין! עכשיו נבחר רכב. נציג/ה: רוצה רכב חסכוני או רכב יוקרה? |
|
משתמש קצה: משלוח בסיסי, בבקשה. נציג: רוצה את המכונית של Cymbal או את המשאית של Cymbal? |
|
משתמש קצה: Cymbal Truck. נציג: העלות של Cymbal Truck היא 50.33 $ליום. היא מתאימה ל-4 אנשים ומגיעה עם רדיו AM/FM. רוצה להמשיך לתשלום? משתמש קצה: כן, בבקשה. |
|
נציג: באיזה סוג כרטיס ברצונך להשתמש? משתמש קצה: Altostrat נציג: יש להזין את מספר הכרטיס. משתמש קצה: 1234 1234 1234 1234 נציג: מה השם שמופיע בכרטיס? משתמש קצה: רון נציג: מהו הרחוב של הכתובת לחיוב? משתמש קצה: 1800 Amphibious Blvd. Mountain View, CA נציג: מהו המיקוד לחיוב? משתמש קצה: 94045 נציג: עליך לאסוף את הרכב של Cymbal ב-Las Vegas ב-05 במרץ 2024 בשעה 12:00:00 ולהחזיר אותו ב-15 במרץ 2024 בשעה 12:00:00. העלות הכוללת של הנסיעה הזו היא 175.38$. נציג/ה: תודה ששכרת דירה דרך האתר שלנו. שיהיה לך יום מצוין! |
|
שליחת הודעות בכרטיסים מ-Dialogflow
Dialogflow יכול להשיב בהודעות טקסט או כרטיס. כדי להשיב באמצעות הודעת כרטיס, צריך לציין אותה כמטען נתונים מותאם אישית במילוי.
קובץ ה-JSON הבא מראה איך שולחים הודעת כרטיס כמטען ייעודי (payload) בהשלמה:
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
בהודעה ב-Chat. אם ההודעה כוללת פקודת קו נטוי, המערכת תשתמש בערך של השדהtext
במקום זאת. - באירועים מסוג
CARD_CLICKED
, קלט השאילתה שנשלח לסוכנות Dialogflow מעוצב כ-CARD_CLICKED.functionName
, כאשרfunctionName
תואם לערך של השדהfunction
באובייקט Action שמצורף לרכיב הכרטיס האינטראקטיבי (כמו לחצן). - עומס העבודה המלא בפורמט JSON של כל אירוע אינטראקציה ב-Chat נשלח ל-Dialogflow כעומס עבודה מותאם אישית בפרמטר השאילתה. אפשר לגשת אליו באמצעות webhook של Dialogflow על ידי שליחת שאילתה לגבי הערך של השדה
WebhookRequest.payload
.
- יש תמיכה בסוגי אירועי האינטראקציה הבאים:
- שיקולים שצריך לקחת בחשבון כשמשיבים לפקודות דרך שורת הפקודה ומקבלים נתונים מכרטיסים או מחלוניות דו-שיח:
- כשאפליקציות Dialogflow Chat מקבלות הודעה עם פקודת קו נטוי, קלט השאילתה מכיל רק את הערך של השדה
text
. השדהtext
מתחיל בשם של פקודת הפסיק (למשל,/command
). אפשר להשתמש בשם הזה כדי להגדיר את הכוונה של סוכן Dialogflow לזהות פקודת פסיק. - אם סוכני Dialogflow צריכים לעבד את המטען הקונטייננטי בפורמט JSON של אירוע אינטראקציה בצ'אט, הם יכולים לעשות זאת באמצעות Dialogflow webhook כדי לבדוק את המטען הקונטייננטי המותאם אישית בפרמטר השאילתה.
- כדי להציג תיבת דו-שיח מנציג Dialogflow, צריך להשיב עם עומס נתונים מותאם אישית יחיד בפורמט JSON שכולל הודעה עם תגובת פעולה מסוג
DIALOG
. - כדי לעבד נתונים שהוזנו מכרטיסים, סוכן Dialogflow יכול לזהות כוונות שמתחילות בטקסט
CARD_CLICKED
ולהשיב באמצעות עומס נתונים יחיד של JSON בהתאמה אישית שמכיל את הפעולה המתאימה.
- כשאפליקציות Dialogflow Chat מקבלות הודעה עם פקודת קו נטוי, קלט השאילתה מכיל רק את הערך של השדה
- אי אפשר להשתמש בתצוגות מקדימות של קישורים.
- אם הנציג של Dialogflow משיב רק בהודעה אחת, ההודעה נשלחת ל-Google Chat באופן סינכרוני. אם נציג Dialogflow משיב במספר הודעות, כל ההודעות נשלחות ל-Chat באופן אסינכררוני באמצעות קריאה ל-method
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, שמאפשרת לכם לשלוט בצורה ברורה ומפורשת בשיחה, ליהנות מחוויית משתמש טובה יותר ולשפר את תהליך הפיתוח. כשאתם מפתחים אפליקציית Chat של Dialogflow, מומלץ להשתמש ב-Dialogflow CX.
- מידע נוסף על פיתוח והגדרה של סוכני תמיכה זמין במאמר סוכני תמיכה של Dialogflow CX.
- במאמר יצירת סוכן של Dialogflow CX מוסבר בפירוט איך יוצרים סוכנים ומגדירים אותם.
- יצירת אפליקציות ל-Google Chat באמצעות Gemini. Codelab: דוגמה ליצירת סוכן של מאגר נתונים של Dialogflow CX מופיעה באפליקציית הידע ב-Chat במדריך ב-Codelab
- יצירת אפליקציות ל-Google Chat באמצעות Gemini. Codelab: דוגמה ליצירת סוכן שיחה של Dialogflow CX מופיעה באפליקציית Chat למשוב ב-codelab
- Dialogflow ES היא דרך נוספת להשתמש ב-Dialogflow עם אפליקציית Chat.