הקשרים של הקלט והפלט חלים על כוונות. הם פועלים יחד כדי לשלוט בזרימת השיחה:
- הקשרי פלט שולטים בהקשרים פעילים. כשמזוהה כוונה, כל הקשרים של הפלט שהוגדרו עבור הכוונה הזו הופכים לפעילים.
- הקשרים לקלט שולטים בהתאמה ל-Intent. בזמן שההקשרים פעילים, סביר יותר ש-Dialogflow יתאים כוונות שהוגדרו עם הקשרים של קלט שהם קבוצת משנה של ההקשרים הפעילים כרגע.
בעזרת הקשרים, אתם יכולים:
- שליטה בסדר ההתאמה של הכוונות.
- יצירת כוונות ספציפיות להקשר עם אותם ביטויי אימון.
לדוגמה, נניח את כוונות המשתמש הבאות:
| שם הכוונה (Intent) | ביטויים לאימון | פרמטרים | הקשרים של הקלט | הקשרים של הפלט | תשובה |
|---|---|---|---|---|---|
| pet-init | "What do they look like?" | - | - | - | "איזה סוג של חיית מחמד אתה אוהב?" |
| pet-select-dogs | "I like dogs" (אני אוהב כלבים) | - | - | כלבים | "מה אתה רוצה לדעת על כלבים?" |
| pet-select-cats | "I like cats" (אני אוהב/ת חתולים) | - | - | חתולים | "מה אתה רוצה לדעת על חתולים?" |
| dog-show | "What do they look like?" | - | כלבים | - | "הנה תמונה של כלב". |
| cat-show | "What do they look like?" | - | חתולים | - | "הנה תמונה של חתול". |
כמשתמש הקצה אומר I like dogs:
- הכוונה
pet-select-dogsתואמת. - הקשר הפלט הוא
dogs, ולכן הוא הופך להקשר הפעיל.
כמשתמש הקצה אומר I like cats:
- ה-Intent
pet-select-catsתואם. - הקשר הפלט הוא
cats, ולכן הוא הופך להקשר הפעיל.
כמשתמש הקצה אומר What do they look like?:
- אם
dogsהוא ההקשר הפעיל:- ה-Intent
dog-showתואם. - למשתמש הקצה מוצגת תמונה של כלב.
- ה-Intent
- אם
catsהוא ההקשר הפעיל:- ה-Intent
cat-showתואם. - למשתמש הקצה מוצגת תמונה של חתול.
- ה-Intent
- אם אין הקשר פעיל:
- ה-Intent
pet-initתואם. - משתמש הקצה נשאל איזו חיית מחמד הוא אוהב.
- ה-Intent
הקשרים של הפלט
אפשר להחיל כמה הקשרים של פלט על כוונת משתמש. כשכוונה תואמת, כל הקשרי הפלט שחלים על הכוונה הופכים לפעילים.
הפניות לפרמטרים בהקשרים פעילים
כשמתבצעת התאמה לכוונת משתמש עם הקשר פלט, ערכי הפרמטרים שנאספו יכולים לשמש כאחסון זמני עם הפניות לפרמטרים עבור הקשרים פעילים. אפשר לגשת לערכים האלה במהלך התאמה עתידית של כוונות, כל עוד ההקשר פעיל.
לדוגמה, נניח שמשנים את הדוגמה של חיית המחמד שצוינה למעלה:
| שם הכוונה (Intent) | ביטויים לאימון | פרמטרים | הקשרים של הקלט | הקשרים של הפלט | תשובה |
|---|---|---|---|---|---|
| pet-init | "What do they look like?" | - | - | - | "איזה סוג של חיית מחמד אתה אוהב?" |
| pet-select | "I like dogs" (אני אוהב כלבים), "I like cats" (אני אוהב חתולים) | חיית מחמד | - | חיית המחמד שנבחרה | "מה אתה רוצה לדעת על $pet?" |
| pet-show | "What do they look like?" | - | חיית המחמד שנבחרה | - | "הנה תמונה של #pet-chosen.pet". |
כשמשתמש הקצה אומר I like dogs או I like cats:
- ה-Intent
pet-selectתואם. - ה
petפרמטר מוגדר לסוג חיית המחמד שנבחרה. - הקשר הפלט הוא
pet-chosen, לכן הוא הופך להקשר הפעיל.
כמשתמש הקצה אומר What do they look like?:
- אם
pet-chosenהוא ההקשר הפעיל:- ה-Intent
pet-showתואם. - אם משתמש הקצה בחר באפשרות
dogsבתור הקודם של השיחה, תוצג לו תמונה של כלב. - אם משתמש הקצה בחר באפשרות
catsבתור הקודם של השיחה, תוצג לו תמונה של חתול.
- ה-Intent
- אם אין הקשר פעיל:
- ה-Intent
pet-initתואם. - משתמש הקצה מתבקש לבחור סוג של חיית מחמד.
- ה-Intent
תוחלת חיים
לכל הקשר פעיל יש משך חיים שמגדיר את מספר התורות בשיחה שבהן ההקשר נשאר פעיל. משך החיים שמוגדר כברירת מחדל הוא חמישה תורות לשיחה עבור כוונות רגילות ושני תורות לשיחה עבור כוונות למעקב. אפשר לשנות את משך החיים שמוגדר כברירת מחדל לכל ההקשרים. בנוסף, התוקף של כל ההקשרים פג אחרי 20 דקות של פעילות. כשכוונת משתמש תואמת להקשר פלט שכבר פעיל, משך החיים והטיימר לסיום התוקף מתאפסים.
לדוגמה, אלה תיאורי כוונות של סוכן שמספק מידע על חיות מחמד:
| שם הכוונה (Intent) | ביטויים לאימון | פרמטרים | הקשרים של הקלט | הקשרים של הפלט | תשובה |
|---|---|---|---|---|---|
| pet-init | "What do they look like?" (איך הם נראים?) "What do they sound like?" (איך הם נשמעים?), "How big are they?" (מה הגודל שלהם?) | - | - | - | "איזה סוג של חיית מחמד אתה אוהב?" |
| pet-select | "I like dogs" (אני אוהב כלבים), "I like cats" (אני אוהב חתולים) | חיית מחמד | - | חיית מחמד שנבחרה (תוחלת חיים = 2) | "מה אתה רוצה לדעת על $pet?" |
| pet-show | "What do they look like?" | - | חיית המחמד שנבחרה | - | "הנה תמונה של #pet-chosen.pet. מה עוד תרצה לדעת?" |
| pet-audio | "What do they sound like?" (איך הם נשמעים?) | - | חיית המחמד שנבחרה | - | "Here is a #pet-chosen.pet sound. מה עוד תרצה לדעת?" |
| גודל של חיית מחמד | "How big are they?" (מה הגודל שלהם?) | - | חיית המחמד שנבחרה | - | "הנה טבלת מידות של #pet-chosen.pet. מה עוד תרצה לדעת?" |
בטבלה הבאה מוצגת דוגמה לדיאלוג עם סוכן מחקר זה שמספק מידע על חיות מחמד, כדי להמחיש את משך החיים של ההקשר pet-chosen:
| הפעלה | דו שיח | הסבר |
|---|---|---|
| 1 | נציג: איזה סוג של חיית מחמד אתה אוהב? | ה-Intent pet-init תואם. |
| 2 | משתמש: אני אוהב חתולים. סוכן: מה אתה רוצה לדעת על חתולים? |
ה-Intent pet-select תואם. הקשר הפלט pet-chosen הופך להקשר הפעיל. |
| 3 | משתמש: איך הם נראים? סוכן: הנה תמונה של חתול. מה עוד תרצה לדעת? |
לכוונה pet-show יש הקשר קלט pet-chosen, ולכן היא תואמת. ההקשר של pet-chosen היה פעיל לתור אחד. |
| 4 | משתמש: איך הם נשמעים? נציג: הנה צליל של חתול. מה עוד תרצה לדעת? |
לכוונה pet-audio יש הקשר קלט pet-chosen, ולכן היא תואמת. ההקשר pet-chosen פעיל כבר 2 תורות. |
| 5 | משתמש: מה הגודל שלהם? סוכן: איזה סוג של חיית מחמד אתה אוהב? |
הכוונה pet-init תואמת שוב, כי ההקשר pet-chosen כבר לא פעיל. |
הקשרים של הקלט
כשההקשרים פעילים, יש סיכוי גבוה יותר ש-Dialogflow יתאים כוונות שהוגדרו עם הקשרים של קלט שמתאימים להקשרים הפעילים הנוכחיים. אלה כללי ההתאמה המפורטים של הכוונות:
- כדי שההתאמה תתבצע, רשימת הקלט של ההקשר של הכוונה חייבת להיות קבוצת משנה של רשימת ההקשר הפעילה הנוכחית. ההגדרה הזו חלה גם על כוונות ללא הקשרים של קלט.
- לכוונות שמקיימות את כלל מספר 1, יש סיכוי גבוה יותר להתאמה אם יש להן רשימת הקשר של הקלט שהכי דומה לרשימת ההקשר הפעילה הנוכחית.
לדוגמה:
- אפשר להתאים כוונות ללא הקשרים של הקלט בכל שלב.
- אם אין הקשרים פעילים, אפשר להתאים רק כוונות ללא הקשרים של קלט.
- אם ההקשרים 'א' ו'ב' פעילים, לא ניתן להתאים כוונת משתמש עם הקשרים 'א' ו'ג'.
- אם ההקשרים 'א', 'ב' ו'ג' פעילים, אפשר להתאים כוונה עם הקשרי קלט 'א' ו'ב'.
- אם ההקשרים 'א' ו'ב' פעילים, סביר יותר שתהיה התאמה ל-Intent עם הקשרים 'א' ו'ב' כקלט, מאשר ל-Intent ללא הקשר קלט או ל-Intent עם הקשר 'א' בלבד כקלט.