עכשיו, כשיש לכם את ישות הרצף, אתם יכולים ליצור את ה-intent כדי לאסוף את הרצף ממשתמש הקצה. כדאי להגדיר לפחות שלוש כוונות עם תחומי האחריות הבאים:
- כוונה ראשית "רצף"
- מזהה ביטויים כדי להתחיל את אוסף הרצפים.
- מופעל על ידי אירועי המשך כדי להמשיך לתעד רצפים עד שמשתמש הקצה אומר שהוא סיים.
- כוונה (intent) בתוך ההקשר "Sequence - Edit"
- קולט ביטויים כדי לתקן את הרצף האחרון שנאסף.
- הקוד חוזר באופן פרוגרמטי ל-intent "רצף" כדי לאסוף את הרצף המתוקן.
- כוונה (intent) בתוך ההקשר "Sequence - Done"
- מזהה ביטויים שמציינים שהרצף הושלם.
בקטע הבא נסביר איך ה-webhook יחבר את כל אלה, אבל קודם נגדיר את ה-Intent.
יצירת כוונת המשתמש "Sequence"
זו המטרה העיקרית של איסוף הרצפים. מגדירים אותו כך:
- משאירים את הקשרי הקלט ריקים כדי שמשתמשי הקצה יוכלו להפעיל את ה-intent הזה בתחילת השיחה.
- מוסיפים הקשר פלט בשם "collecting-sequence". נשתמש בהקשר הזה כדי להפעיל את כוונות התיקון והסיום במהלך התהליך.
- מוסיפים הקשר פלט בשם "editing-sequence" ומגדירים את משך החיים ל-0. נפעיל את ההקשר הזה עם משך חיים מהכוונה "Sequence - Edit" בקטע הבא, וחשוב לנקות את ההקשר הזה כאן כדי שההקשר "editing-sequence" יהיה פעיל רק מיד אחרי הפעלת הכוונה "Edit".
מוסיפים אירוע "continue-sequence" כדי ש-webhook יוכל להפעיל את ה-intent הזה בלולאה כדי לאסוף את כל הרצפים החלקיים.

מוסיפים ביטויי אימון כדי שמשתמש הקצה יוכל להפעיל את ה-intent הזה ולהתחיל את התהליך. בדוגמה הזו נעשה שימוש בביטויים כמו "מה סטטוס ההזמנה שלי", "מעקב אחרי ההזמנה שלי", "איפה ההזמנה שלי" וכו'.
מוסיפים את שם הפעולה handle-sequence כדי שה-webhook יידע מתי לפעול. בקטע הבא של המדריך, אחרי שכל ה-intent יוגדרו, תכתבו את הקוד של ה-webhook.
מוסיפים את הפרמטר הנדרש "new_sequence" באמצעות ישות הביטוי הרגולרי שיצרתם כדי לאסוף רצפים חלקיים בקטע הקודם. מגדירים את סוג הישות בתור "@alphanumeric" ואת הערך בתור "$new_sequence".
מוסיפים את הפרמטר האופציונלי "existing_sequence" עם הערך "#continue-sequence.existing_sequence" כדי לחלץ את הרצף הקיים החדש מהאירוע. אפשר להשאיר את סוג הישות ריק.
מוסיפים את הפרמטר האופציונלי "previous_sequence" עם הערך "#continue-sequence.previous_sequence" כדי לחלץ את הרצף הקודם מהאירוע. אפשר להשאיר את סוג הישות ריק.
מפעילים את האפשרות Enable webhook call for this intent (הפעלת קריאת webhook ל-Intent הזה) וגם את האפשרות webhook call for slot filling (קריאת webhook למילוי משבצות).

יצירת הכוונה "Sequence - Edit"
הכוונה הזו מאזינה לביטויים שמציינים שהסוכן לא שמע נכון את הרצף הקודם. כך מגדירים את זה:
- מוסיפים הקשר קלט "collecting-sequence" כדי שהכוונה הזו תיקרא רק כשאנחנו באמצע תהליך הרצף. זה אותו הקשר שמופעל על ידי הכוונה "רצף".
- מוסיפים הקשר פלט בשם "editing-sequence" כדי ש-webhook המילוי יוכל להפנות אליו. כשהכוונה הזו מופעלת, ה-webhook יחזיר את Dialogflow לכוונה הראשית "Sequence" כדי לאסוף את הרצף הבא. ה-webhook למילוי המשבצות של כוונת המשתמש "Sequence" יבדוק אם יש הקשר פעיל של "editing-sequence" כדי לספק למשתמש הקצה תגובה אמפתית של "נסה שוב".
מוסיפים ביטויי אימון כמו "לא", "זה לא נכון" וכו'.

מוסיפים את שם הפעולה "handle-sequence". זו אותה פעולה כמו ב-Intent של Sequence, אז אנחנו יכולים להשתמש שוב באותו לוגיקה של ה-webhook.
מוסיפים את הפרמטר "new_sequence" עם הערך "#collecting-sequence.previous_sequence" כדי לחלץ את הרצף הקודם מההקשר, וכך לבטל את האמירה האחרונה. אנחנו לא מוסיפים כאן את הפרמטר "existing_sequence", כדי שה-webhook יחליף את הרצף הקיים ברצף הקודם.
הפעלת קריאת webhook ל-intent הזה.

יוצרים כוונה מסוג "Sequence - Done" (רצף – סיום).
- מוסיפים הקשר לקלט "collecting-sequence"
- מוסיפים הקשר פלט "collecting-sequence" ומגדירים את משך החיים ל-0 כדי לנקות את ההקשר. ניקוי ההקשר מונע מהכוונות "עריכה" ו "סיום" להפעיל שוב את הסוכן, כי הוא סיים לאסוף את הרצף.
מוסיפים ביטויי אימון כמו "זהו", "סיימתי" וכו'.

מוסיפים את הפרמטר "sequence" עם הערך "#collecting-sequence.existing_sequence" כדי לחלץ את הרצף הסופי מההקשר.
הפעלת קריאת webhook ל-intent הזה.

קישור כוונות המשתמש באמצעות תגובה לפעולה מאתר אחר (webhook)
עכשיו יש לכם את כל מה שצריך כדי לתכנת את הלוגיקה של הכוונות האלה. בקטע הבא נסביר איך לתכנת את ה-webhook כך שישתמש בכל ההקשרים, הפעולות, הפרמטרים והאירועים האלה כדי להשלים את תהליך האימות של הרצף.