הקשרים של קלט ופלט חלים על כוונות. הם פועלים יחד כדי לשלוט בזרימת השיחה:
- הקשרי פלט שולטים בהקשרים פעילים. כשמזוהה כוונה, כל הקשרים של הפלט שהוגדרו עבור הכוונה הזו הופכים לפעילים.
- הקשרים לקלט שולטים בהתאמה ל-Intent. בזמן שההקשרים פעילים, סביר יותר ש-Dialogflow יתאים כוונות שהוגדרו עם הקשרים של קלט שהם קבוצת משנה של ההקשרים הפעילים כרגע.
בעזרת הקשרים, אתם יכולים:
- שליטה בסדר ההתאמה של הכוונות.
- יצירת כוונות ספציפיות להקשר עם אותם ביטויי אימון.
לדוגמה, נניח את כוונות המשתמש הבאות:
| שם הכוונה | ביטויים לאימון | פרמטרים | הקשרים של הקלט | הקשרים של הפלט | תשובה |
|---|---|---|---|---|---|
| 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:
- ה-Intent
pet-select-dogsתואם. - הקשר הפלט הוא
dogs, ולכן הוא הופך להקשר הפעיל.
כמשתמש הקצה אומר I like cats:
- ה-Intent
pet-select-catsתואם. - הקשר הפלט הוא
cats, ולכן הוא הופך להקשר הפעיל.
כמשתמש הקצה אומר What do they look like?:
- אם
dogsהוא ההקשר הפעיל:- הכוונה
dog-showתואמת. - למשתמש הקצה מוצגת תמונה של כלב.
- הכוונה
- אם
catsהוא ההקשר הפעיל:- ה-Intent
cat-showתואם. - למשתמש הקצה מוצגת תמונה של חתול.
- ה-Intent
- אם אין הקשר פעיל:
- ה-Intent
pet-initתואם. - משתמש הקצה נשאל איזה סוג חיית מחמד הוא אוהב.
- ה-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 דקות של פעילות. כשכוונת משתמש תואמת להקשר פלט שכבר פעיל, משך החיים והטיימר של התפוגה מתאפסים.
לדוגמה, אלה תיאורי כוונות של סוכן שמספק מידע על חיות מחמד:
| שם הכוונה | ביטויים לאימון | פרמטרים | הקשרים של הקלט | הקשרים של הפלט | תשובה |
|---|---|---|---|---|---|
| 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?" (איך הם נשמעים?) | - | חיית המחמד שנבחרה | - | "הנה צליל של #pet-chosen.pet. מה עוד תרצה לדעת?" |
| גודל חיית מחמד | "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 עם הקשר 'א' בלבד כקלט.