עכשיו, אחרי שיצרתם את ישות הרצף, אתם יכולים ליצור את הכוונות לאיסוף הרצף ממשתמש הקצה. מומלץ להגדיר לפחות שלוש כוונות עם האחריות הבאה:
- כוונה ראשית 'רצף'
- מזהה ביטויים כדי להתחיל את איסוף הרצף.
- מופעל על ידי אירועים של מעקב כדי להמשיך לתעד רצפים עד שהמשתמש אומר שהוא סיים.
- כוונה הקשרית 'רצף – עריכה'
- מזהה ביטויים כדי לתקן את הרצף האחרון שנאסף.
- הסוכן חוזר באופן אוטומטי אל כוונת ה'רצף' כדי לאסוף את הרצף המתוקן.
- כוונה הקשרית 'רצף – סיום'
- תופס ביטויים שמציינים שהרצף הושלם.
בקטע הבא נסביר איך webhook יקשר בין כל אלה, אבל קודם נגדיר את ה-intents.
יצירת הכוונה 'רצף'
זו הכוונה העיקרית מאחורי איסוף רצפים. מגדירים אותו כך:
- משאירים את ההקשרים של הקלט ריקים כדי שמשתמשי הקצה יוכלו להפעיל את הכוונה הזו בתחילת השיחה.
- מוסיפים הקשר של פלט collect-sequence. ההקשר הזה יעזור לנו להפעיל את כוונות התיקון והסיום במהלך התהליך.
- מוסיפים הקשר פלט editing-sequence ומגדירים את משך החיים שלו ל-0. נפעיל את ההקשר הזה עם משך חיים מהכוונה Sequence - Edit בקטע הבא, וחשוב לנקות את ההקשר הזה כאן כדי שההקשר editing-sequence יהיה פעיל רק מיד אחרי הפעלת הכוונה Edit.
מוסיפים אירוע מסוג continue-sequence (המשך רצף) כדי ש-webhook יוכל להריץ בלולאה את הכוונה הזו כדי לאסוף את כל הרצפים החלקיים.

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

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

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

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

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

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