אירועים מותאמים אישית הם אירועים שאתם מגדירים. הם משמשים לטיפול בדברים שקורים מחוץ לשיחה עם משתמש הקצה. לדוגמה, משתמש הקצה לחץ על לחצן, עבר פרק זמן מסוים, המלאי הזמין השתנה במהלך השיחה, וכך הלאה.
אפשר להפעיל את האירועים האלה באמצעות fulfillment או ה-API.
הפעלת אירועים באמצעות ה-API
הבקשה לשיחה מסוג SessionsdetectIntent מכילה שדה queryInput.event, שמשמש להפעלת אירועים.
הסוג של השדה הזה הוא EventInput, והוא מכיל שדות לשם האירוע, פרמטרים אופציונליים וקוד השפה.
כשמספקים אירוע לקריאה לזיהוי כוונות, לא מספקים נתונים אחרים, כמו ביטוי של משתמש קצה. המטרה היחידה של השיחה היא להפעיל אירוע ולהפעיל כוונה.
הפעלת אירועים באמצעות מילוי פרטים
אפשר להפעיל אירועים באמצעות fulfillment על ידי הגדרת השדה followupEventInput של WebhookResponse.
אפשר גם להגדיר את השדה followupEventInput.parameters כדי לספק פרמטרים לכוונת המשתמש.
לדוגמה:
{
"followupEventInput": {
"name": "event-name",
"parameters": {
"parameter-name-1": "parameter-value-1",
"parameter-name-2": "parameter-value-2"
},
"languageCode": "en-US"
}
}
אם הפרמטר followupEventInput מוגדר עבור WebhookResponse, Dialogflow מתעלם מהשדות fulfillmentText, fulfillmentMessages ו-payload.
בנוסף, השדה followupEventInput.languageCode הוא שדה חובה, אבל Dialogflow מתעלם מהשדה הזה כי השפה כבר הוגדרה בבקשה המקורית לזיהוי כוונות.
כש-Dialogflow מקבל תגובת webhook שכוללת אירוע, הוא מפעיל באופן מיידי את כוונת המשתמש המתאימה שהוגדרה בה.
התרשים הבא מתאר את השלבים:
- משתמש הקצה מקליד או אומר ביטוי.
- Dialogflow מתאים את הביטוי של משתמש הקצה ל-Intent-1, שהוגדר לביצוע.
- Dialogflow שולח בקשת webhook לשרת שלכם.
- השרת מגיב בתגובת webhook שכוללת אירוע המשך.
- במקום להגיב למשתמש על ההתאמה ל-Intent-1, מערכת Dialogflow מפעילה את Intent-2, שמוגדר לאירוע.
- מערכת Dialogflow ממשיכה כאילו משתמש הקצה יזם את ההתאמה לIntent-2 ומטפלת בפרמטרים הנדרשים ובמילוי כפי שנקבע בהגדרה של Intent-2.
שרשור של התאמות כוונות עם אירועי תגובה של webhook
אפשר לשרשר התאמות של כוונות עם אירועי תגובה של webhook. בתרשים הזרימה שמתואר למעלה, אפשר להגדיר את Intent-2 גם לצורך ביצוע הזמנה. אם תגובת ה-webhook של השרת מספקת אירוע אחר, מערכת Dialogflow ממשיכה להתאמה לIntent-3 (שהוגדר לאירוע) בלי להגיב למשתמש הקצה לגבי Intent-2.
Dialogflow לא מגיב למשתמש הקצה עד שהשרשרת מסתיימת. כשמשרשרים כוונות בצורה כזו, כל תגובה של webhook צריכה להישלח במסגרת מגבלות הזמן הקצוב לתפוגה.