סצנות

בשילוב עם כוונות, סצנות הן אבן הבניין העיקרית הנוספת של מודל השיחה. סצנות מייצגות מצבים ספציפיים של השיחה, והמטרה העיקרית שלהן היא לארגן את השיחה לחלקים לוגיים, לבצע משימות ולהחזיר הודעות למשתמשים.

חלק מהתכונות של סצנות כוללות:

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

אתם יכולים להגדיר סצנות כחלק ממודל השיחה כסצנה מותאמת אישית. לוגיקת השיחה ב-Assistant כוללת גם סצנות מערכת שמספקות פונקציונליות סטנדרטית לשיחה.

סצנות בהתאמה אישית

סצנה בהתאמה אישית היא אבן יסוד של לוגיקת שיחה, שהיא חלק ממודל השיחה של הפעולה. בסצנות בהתאמה אישית יש שלבים שמגדירים איך ומתי היא מתחילה, שנקראת Activation (הפעלה), עיבוד השיחה שהיא מבצעת (שנקרא Execution Lifecycle (מחזור החיים של הביצוע), והאופן שבו הסצנה מסתיימת – המעבר:

  • הפעלה – כדי שסצנה תוכל לצאת לפועל, צריך להפעיל אותה באמצעות התאמה גלובלית של Intent או מעבר בין סצנות.
  • ביצוע – כשסצנה פעילה, היא מתבצעת במחזור חיים מוגדר היטב שמאפשר לבצע מגוון משימות כמו מילוי יחידות קיבולת (Slot), בדיקה מותנית, יצירת הנחיות והפעלה של אירועי webhook.
  • מעבר – כשסצנה עומדת בקריטריונים שהגדרתם, כמו התאמת כוונה או מילוי יחידות קיבולת (Slot), אפשר לעבור לסצנה אחרת כדי להפעיל את הלוגיקה עוד יותר. לחלופין, תוכלו לעבור לסצנת המערכת סיום שיחה כדי לסיים את השיחה עם המשתמש.
איור 1. מעבר נפוץ בין סצנות. כוונה גלובלית מפעילה סצנה במהלך ההפעלה, הסצנה מקבלת קלט של משתמשים ותואמת לכוונה מסוימת, שעוברת ומפעילה סצנה אחרת.

Activation (הפעלה)

כדי שסצנה תוכל להוציא לפועל, היא צריכה להיות פעילה. רק סצנה אחת יכולה להיות פעילה בכל רגע נתון. אפשר להפעיל סצנות בדרכים הבאות:

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

מחזור החיים של ביצוע

כשסצנה פעילה, היא מופעלת במחזור חיים מוגדר היטב שחוזר על עצמו עד שהסצנה עומדת בקריטריוני המעבר שהגדרתם. מחזור החיים של ביצוע סצנה מופרד לשלבים אופציונליים שפועלים בסדר הבא:

  1. בכניסה – השלב הזה פועל רק פעם אחת כשסצנה מופעלת. אפשר להפעיל תגובה לפעולה מאתר אחר (webhook) או לבקש מהמשתמש לבצע הגדרה חד-פעמית של הסצנה שלכם.

  2. תנאים – אפשר להשתמש בתנאים כדי להעריך קריטריונים מסוימים לפני שמתקדמים בשלבים במחזור החיים, מפעילים webhook או שולחים הודעות. השלב הזה יכול להגדיר קריטריוני מעבר כדי לצאת מלולאת הביצוע.

  3. מילוי משבצת – סצנה יכולה לשלוח למשתמשים הודעה באופן אוטומטי עד שהיא אוספת את כל יחידות הקיבולת (Slot) הנדרשות (נתונים מוקלדים). סצנה מבקשת משבצת אחת בכל פעם דרך לולאת הביצוע שלה. אם חסרים יחידות קיבולת (Slot), מחזור החיים של הסצנה בסופו של דבר יחזור לשלב של מילוי יחידת הקיבולת (Slot) ותודיע למשבצת הבאה. בשלב הזה אפשר להגדיר קריטריוני מעבר כדי לצאת מלולאת הביצוע.

  4. בקשות – Assistant מעבירה למשתמש את תור ההנחיות ומנקה את התור. תור ההנחיות הוא אוסף ממוזג של הנחיות שצברו מאז הפעם האחרונה שהשלב הזה ניקה את התור.

  5. קלט – Assistant מקבלת קלט של משתמשים ומחזירה אותו לתרחיש שלכם, כדי שתוכלו לעבד אותו. זה יכול לכלול התאמה של כוונה (Intents גלובליים או כוונות משתמשים בתוך הסצנה), המשך מילוי משבצת (אם היא לא הושלמה) או טיפול בשגיאות 'ללא התאמה' או 'ללא'. השלב הזה יכול להגדיר את הקריטריונים למעבר ליציאה מלולאת הביצוע. אם היא לא משתנה, לולאת הביצוע חוזרת לשלב התנאים.

איור 2. מחזור החיים של ביצוע סצנות

בקטעים הבאים נפרט יותר על כל שלב במחזור החיים.

בכניסה

on Enter הוא השלב היחיד שלא מתבצע בלולאת הביצוע של הסצנה. היא מבצעת אתחול חד-פעמי של הסצנה בסדר הבא:

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

תנאים

בעזרת תנאים אפשר לבדוק את נתוני הסשנים, המשתמשים או נתוני המשבצות כדי לוודא שתנאי מתקיים. לדוגמה, אפשר לבדוק אם כל יחידות הקיבולת (Slot) מולאו ולהגדיר זאת כקריטריון למעבר לסצנה אחרת לעיבוד יחידות הקיבולת.

  • בזמן הריצה של Assistant מתבצעת הערכה של כל תנאי לפי הסדר שבו צוינו. התנאי הראשון שמשתנה כ-true יריץ את ה-handler שמשויך ויפסיק את הערכת התנאים.
  • אם מבצעים מילוי משבצת, התנאי else if scene.slots.status = "FINAL" מתווסף באופן אוטומטי לרשימת התנאים. התנאי האופציונלי הזה בודק שמילוי יחידת הקיבולת (Slot) יושלם, ויכול להפעיל תגובה לפעולה מאתר אחר (webhook) או להוסיף הודעות לתור להודעות.

אחרי הערכת המצב, אם הסצנה לא מגדירה מעבר, היא ממשיכה למילוי המשבצת.

מילוי יחידת קיבולת (Slot)

בשלב הזה הוספה של הודעה משבצת עבור יחידת קיבולת (Slot) אחת שלא מולאה ונדרשת. אם לא תגדירו אף משבצת בסצנה, השלב הזה לא יקרה.

  • בזמן הריצה של Assistant, בוחרים את המשבצת הראשונה שלא מולאה ומוסיפה את ההנחיה המתאימה לתור ההנחיות. בגלל לולאות הביצוע של הסצנה, משבצות נוספות שלא מולאו מטופלות מאוחר יותר כשלולאת הביצוע חוזרת לשלב הזה.
  • הודעות שגיאה שעוקפות את אלה שמוגדרות בשלב הקלט בסצנה עשויות לטפל בשגיאות בחריץ הפעיל הנוכחי.
  • כשמשתמש ממלא משבצת זמן, אפשר לאמת אותה בשירות אינטרנט על ידי הפעלת webhook.

הנחיות

בזמן הריצה של Assistant, תור ההנחיות מגיע למשתמש, מנקה את התור וצורך קלט של משתמש.

קלט

בזמן הריצה של Assistant, המערכת מנסה להתאים את הקלט ל-Intent או לחריץ:

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

    • no_match_1
    • no_match_2
    • no_match_final

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

מעבר

המעברים יכולים להתרחש בשלבים הבאים:

  • תנאים – אפשר לעבור לסצנה אחרת בהתאם לתנאים שהגדרתם. אחד מהתנאים הנפוצים לבדיקה הוא השלמת יחידות הקיבולת (Slot).
  • קלט (התאמה לכוונת משתמש) – אם Intent תואם, הוא יכול להפעיל מעבר לסצנה אחרת.
  • קלט (התאמה של Intent במערכת) – אפשר להפעיל webhooks במהלך כל אירוע של התאמת Intent במערכת. אם אין התאמה או אירועי קלט, הסצנה עוברת לסצנה סיום שיחה כברירת מחדל אחרי שלושה מופעים.

סצנות מערכת

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

ברשימה הבאה מפורטות סצנות מערכת נתמכות ואיך משתמשים בהן:

  • סיום השיחה – סוגרים את המיקרופון ומסיימים את השיחה עם המשתמש. Assistant מחזירה את השליטה בחוויית המשתמש אחרי סיום הסצנה.
  • קישור חשבונות – מדריך את המשתמש בתהליך קישור חשבון, שמספק לפעולות את המידע הנדרש כדי לקשר את חשבון המשתמש בשרתים העורפיים לחשבון Google של המשתמש. במאמר בנושא קישור חשבונות מוסבר איך להשתמש בסצנה הזו.
  • עדכונים יומיים – הנחיות למשתמש לגבי תהליך האישור להוספת הפעולות לעדכונים היומיים של המשתמש. במאמר בנושא העדכונים היומיים מוסבר איך להשתמש בסצנה הזו.
  • התראות – הנחיות למשתמשים בתהליך האישור כדי לקבל התראות על הפעולות שביצעתם. למידע נוסף על השימוש בסצנה הזו, קראו את התיעוד בנושא התראות.