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

תשובות של נציג (אפשרויות לדיאלוג)
הודעות תגובה של סוכן הן תגובות של סוכן שאתם מגדירים בזמן העיצוב. אתם מגדירים אותם כשאתם יוצרים את תהליך השלמת ההזמנה. בזמן הריצה, התשובות האלה מתווספות לתור התשובות.
יש כמה סוגים של הודעות תגובה, שמתוארים בקטעי המשנה הבאים. כשמשתמשים במסוף, בחלונית של מילוי הפרטים מופיע כרטיס Agent dialogue, אבל אפשר ללחוץ על + Add dialogue response כדי להוסיף עוד כרטיסים לסוגים אחרים של הודעות תגובה.
תשובה בטקסט סטטי
הודעות תגובה עם טקסט סטטי שולחות דיאלוג טקסט למשתמש הקצה. אם הקריאות ל-API או הקריאות לשילוב שלכם לזיהוי כוונות משתמש משתמשות בסינתזת דיבור, הטקסט הזה ישמש ליצירת תוכן אודיו. במקרה כזה, אפשר להשתמש בטקסט שסופק בשפת הסימון לסינתזת דיבור (SSML).
אפשר להגדיר כמה כרטיסים עם תשובות טקסט וכמה תשובות טקסט בכל כרטיס. אם מגדירים כמה כרטיסים, הם משורשרים לתגובה אחת בזמן הריצה. אם מגדירים כמה תגובות בכרטיס, אחת מההודעות בכרטיס נבחרת באופן אקראי בזמן הריצה.
הודעות הטקסט האלה יכולות להכיל הפניות לפרמטרים ופונקציות מערכת מוטמעות.
מטען ייעודי (payload) בהתאמה אישית
חלק מהשילובי האפליקציות תומכים בתגובת מטען ייעודי (payload) מותאמת אישית כדי לטפל בתשובות עשירות. המטען הייעודי (payload) המותאם אישית צריך להיות בפורמט JSON שמוגדר במסמכי התיעוד של השילוב. לדוגמה, אפשר לעיין בפורמט המטען הייעודי (payload) המותאם אישית של Dialogflow CX Messenger.
אפשר לכלול הפניות לפרמטרים ב-JSON של מטען ייעודי (payload) בהתאמה אישית. צריך להתייחס אליהם כאל ערכי מחרוזת JSON, ולכן חשוב להקיף אותם במירכאות כפולות. לדוגמה:
{
"someField": "$session.params.date"
}
אפשר גם לשלוח מטען ייעודי (payload) מותאם אישית לשילובים שאתם מפתחים. הבקשה לא תעובד על ידי Dialogflow CX, ולכן תצטרכו לטפל בה בלוגיקה העסקית שלכם.
אפשר לעיין גם בקטע הבא בנושא תבניות מותאמות אישית של מטען ייעודי (payload).
העברה לנציג תמיכה
התשובה הזו מסמנת למי שקורא ל-Detect Intent API שהשיחה צריכה לעבור לנציג אנושי. מערכת Dialogflow CX משתמשת באות הזה רק כדי לזהות שיחות שמועברות למטרות מדידה, והיא לא משנה את מצב הסשן בשום צורה. המערכת או השילוב יכולים להשתמש באות הזה כדי לבצע את הפעולות הנדרשות להעברת השיחה. ב-Dialogflow CX אין מבנה מוגדר לנתונים האלה, כך שאתם יכולים לבחור כל מבנה שמתאים למערכת שלכם.
מטא-נתונים של הצלחת השיחה
התגובה הזו מסמנת למי שקורא ל-API לזיהוי כוונות שהשיחה עם סוכן Dialogflow CX הצליחה. מערכת Dialogflow CX משתמשת באות הזה רק כדי לזהות שיחות שהסתיימו בהצלחה למטרות מדידה, והיא לא משנה את מצב הסשן בשום צורה. המערכת או השילוב יכולים להשתמש באות הזה כדי לבצע את הפעולות הנדרשות. ב-Dialogflow CX לא מוטלת מגבלה על מבנה הנתונים, כך שאתם יכולים לבחור כל מבנה שמתאים למערכת שלכם.
הפעלת אודיו שהוקלט מראש
בתגובה הזו מושמע קובץ אודיו לשילובים שתומכים בתכונה הזו.
יכול להיות שיהיו הבדלים בדרישות לגבי פורמט קובץ האודיו בשילובים שונים. לדוגמה, אפשר לעיין בדרישות של שער הטלפון של Dialogflow CX.
במקרה של שילובים של טלפוניה של שותפים, השותף צריך להיות בעל גישה לכתובת ה-URL של קובץ האודיו. שותף תמיד יכול לגשת לכתובת URL שזמינה באופן ציבורי, כמו קובץ ציבורי ב-Cloud Storage. השותף עשוי גם לספק גישה מוגבלת לקובצי אודיו. פרטים נוספים מופיעים במסמכי התיעוד של השותף.
פלט טקסט אודיו
התגובה הזו דומה לתגובה text, אבל היא רלוונטית רק לסינתזת דיבור. אם הסוכן יכול לטפל גם בשיחות טקסט וגם בשיחות קוליות, אפשר להשתמש בתשובות ייחודיות של טקסט ופלט של טקסט אודיו כדי ליצור חוויית משתמש שונה לטקסט לעומת קול. אם מספקים טקסט של פלט אודיו להפעלה של קול, המערכת מתעלמת מהתשובות בטקסט פשוט.
אם הסוכן שלכם מטפל בסשנים של טקסט ושל קול, ואתם רוצים להשתמש באותן הודעות תגובה, פשוט השתמשו בתגובות טקסט גם בסשנים של טקסט וגם בסשנים של קול.
טקסט האודיו בפלט מחובר כמו בתשובות טקסט. אם התשובות של הטקסט לאודיו הן שילוב של טקסט ו-SSML, התוצאה המשורשרת נחשבת ל-SSML. מומלץ שמעצב הסוכן ישתמש באופן עקבי בטקסט או ב-SSML.
תשובה מותנית
סוג התשובה הזה משמש לתשובות מותנות. הפורמט הכללי הוא:
if [condition] [response] elif [condition] [response] elif [condition] [response] else [response] endif
where:
- הפורמט של
[condition]זהה לפורמט שמשמש לתנאי מסלול -
[response]היא תשובה שהיא טקסט - הבלוקים
elifוגםelseהם אופציונליים
לדוגמה:
if $session.params.user-age >= 21 Ok, you may enter. else Sorry, you cannot enter. endif
גם [condition] וגם [response] יכולות להשתמש בפונקציות מוטבעות של המערכת כדי ליצור ערכים דינמיים במהלך שיחות.
מידע נוסף זמין במאמרים בנושא פונקציות מערכת ותנאים למסלולים. הערך של
[condition] נקבע לפי מצב הסשן בתחילת תהליך השלמת ההזמנה. אם [response] מסתמך על מצב הסשן, הוא נפתר על סמך מצב הסשן המעודכן בסוף ההשלמה.
בסוכנים רב-לשוניים, התוכן של [condition] משותף לכל השפות, ואילו התוכן של [response] ספציפי לשפה. כשמשנים את [condition] בשפה אחת במסוף, החלק הזה מתעדכן בכל השפות של הסוכן, ומכיוון שהוא הופך לתנאי חדש, [response] מתבטל בכל השפות מלבד השפה שנבחרה כשמעדכנים את [condition].
העברת שיחה בטלפוניה
באינטגרציות מסוימות של טלפוניה, אפשר לציין מספר טלפון בארה"ב להעברת שיחות. בזמן הריצה, כשנציג וירטואלי של Dialogflow CX מתקשר לשרשור פעולה (fulfillment) עם העברת שיחה, השיחה מועברת למספר שצוין והטיפול בנציג הווירטואלי מושהה.
תגובה של כלי מאגר הנתונים
סוג התשובה הזה מגדיר את התשובות של הסוכן שמוחזרות מכלים של מאגרי נתונים מקושרים. אם הגדרתם כלי של מאגר נתונים בתהליך הזה, כרטיס התגובה של הכלי של מאגר נתונים יאוכלס אוטומטית.
- קישורי מקור: מאפשרת להגדיר את המספר המקסימלי של ציטוטים שיוחזרו למשתמש אחרי התשובה. ציטוט הוא קישור למקור המידע במאגר הנתונים, שמוצג ככפתור. ערך ברירת המחדל הוא 1.
- ציטוטים בתוך הטקסט: במקום קישורים שמופיעים אחרי התשובה, בשדה הזה אפשר להגביל את מספר הציטוטים בתוך הטקסט שמוחזרים לכל משפט.
- מענה גנרטיבי כגיבוי: אם מסמנים את התיבה הזו, הסוכן ינסה ליצור תשובה נוצר על ידי AI אם מאגר הנתונים יחזיר תוצאה ריקה. אם היא תיכשל, המערכת תעבור לתגובות סטטיות.
- תשובות סטטיות: אפשר להזין תשובות סטטיות בשדה האחרון. ההודעות האלה נשלחות למשתמש מילה במילה.
הודעות תגובה ספציפיות לערוץ
כשמגדירים מילוי, אפשר ליצור הודעות תגובה ספציפיות לערוץ, כדי ליצור תגובות ממוקדות לצ'אט בטקסט, לקול, ל-SMS, לשילובים ספציפיים שתומכים בערוצים וכן הלאה. הודעות תגובה שלא ספציפיות לערוץ מסוים נקראות הודעות תגובה שמוגדרות כברירת מחדל.
בזמן הריצה, מערכת Dialogflow CX תבחר את הודעת התגובה שמוגדרת כברירת מחדל או הודעת תגובה ספציפית לערוץ, אם בקשת זיהוי הכוונה מציינת ערוץ. מומלץ להגדיר הודעות ברירת מחדל לתשובות, גם אם אתם משתמשים בהודעות תשובה ספציפיות לערוץ. הודעות התגובה שמוגדרות כברירת מחדל יכולות לשמש כחלופה אם המערכת לא מצליחה לספק ערוץ תקין.
שם הערוץ הוא שדה בהתאמה אישית שאפשר להגדיר בו כל טקסט. אם אתם משתמשים ישירות ב-Dialogflow CX API לקריאות בזמן ריצה, אתם יכולים להשתמש בכל שם ערוץ שתרצו. אם אתם משתמשים בשילוב קיים, אתם צריכים להשתמש בשמות הערוצים שהשילוב מזהה.
הגדרת הודעות תגובה ספציפיות לערוץ בזמן העיצוב
כדי לספק הודעות תגובה ספציפיות לערוץ לצורך מילוי בקשות כשמשתמשים במסוף:
- אחרי שמוסיפים הודעות תגובה שמוגדרות כברירת מחדל, לוחצים על הוספת ערוץ. ממשק המשתמש יאפשר לכם להוסיף הודעות תגובה ספציפיות לערוץ. כדי להוסיף ערוץ אחר, לוחצים שוב על הוספת ערוץ.
כדי לספק הודעות תגובה ספציפיות לערוץ לצורך ביצוע הזמנה כשמשתמשים ב-API:
- מגדירים את השדה
Fulfillment.messages[i].channelלערוץ הרצוי לכל הודעת תגובה. אם השדה הזה לא מוגדר, התשובה היא הודעת ברירת מחדל.
שימוש בהודעות תגובה ספציפיות לערוץ בזמן ריצה
כדי לקבל הודעת תגובה ספציפית לערוץ, צריך לציין את הערוץ בהודעת הבקשה לזיהוי הכוונה.
אפשר לראות את השדה queryParams.channel בשיטה detectIntent של הסוג Sessions.
בוחרים פרוטוקול וגרסה להפניה של הסשן:
| פרוטוקול | V3 | V3beta1 |
|---|---|---|
| REST | Session resource | Session resource |
| RPC | ממשק הסשן | ממשק הסשן |
| C++ | SessionsClient | לא זמין |
| C# | SessionsClient | לא זמין |
| המשך | SessionsClient | לא זמין |
| Java | SessionsClient | SessionsClient |
| Node.js | SessionsClient | SessionsClient |
| PHP | לא זמין | לא זמין |
| Python | SessionsClient | SessionsClient |
| Ruby | לא זמין | לא זמין |
אם לא מוגדר ערוץ בבקשה, או אם לא נמצא ערוץ תואם בתהליך מילוי הבקשה, תוחזר הודעת התגובה שמוגדרת כברירת מחדל על ידי Dialogflow CX.
תבניות של מטען ייעודי (payload) בהתאמה אישית
אם אתם משתמשים לעיתים קרובות במטענים ייעודיים (payload) בהתאמה אישית, כדאי להשתמש בתבניות של מטענים ייעודיים בהתאמה אישית. מטענים ייעודיים (payloads) מותאמים אישית הם לפעמים גדולים ומורכבים, ולכן שימוש בתבניות יכול להקל על תהליך יצירת הסוכן.
אפשר לספק את התבניות האלה בהגדרות הסוכן, וכך הן יהיו זמינות לבחירה בכל פעם שיוצרים מילוי לסוכן.
לדוגמה, אפשר להגדיר את מטען ה-JSON הייעודי של הכפתורים 'כן' ו'לא' כתבניות מטען ייעודי בהתאמה אישית. כשיוצרים מילוי הזמנות שדורש את הלחצנים האלה, צריך רק לבחור את התבנית כשיוצרים את מילוי ההזמנות.
כשבוחרים תבנית למטען ייעודי (payload) מותאם אישית של ביצוע הזמנה, התוכן של התבנית מוכנס למטען הייעודי. לאחר מכן תוכלו לערוך את מטען הייעודי לפי הצורך.
אם משנים תבנית, השינוי לא מועבר אוטומטית לכל מטען הייעודי (payload) של מילוי הזמנות שבו התבנית מוזכרת.
כדי ליצור תבנית מותאמת אישית של מטען ייעודי, אפשר לעיין במאמר בנושא הגדרות כלליות של סוכנים.
כדי לבחור תבנית מטען ייעודי בהתאמה אישית כשיוצרים מילוי, לוחצים על בחירת תבנית כשיוצרים מטען ייעודי בהתאמה אישית למילוי.
שיחות webhook
כשמפעילים מילוי, ואם למילוי יש webhook, הסוכן שולח בקשה ל-webhook. ה-webhook יכול לבצע כל פעולה שנדרשת בשירות שלכם, לספק הודעת תגובה דינמית, לשנות ערכי פרמטרים ולשנות את הדף הנוכחי.
בהמשך מפורטות הגדרות ה-webhook לביצוע הזמנות:
| מונח | הגדרה |
|---|---|
| הפעלת webhook | כך מפעילים את ה-webhook לביצוע ההזמנה. |
| Webhook | בוחרים את משאב ה-webhook. |
| תג | תג הטקסט שתספקו כאן יאוכלס בשדה WebhookRequest.fulfillmentInfo.tag של בקשת ה-webhook שנשלחת לשירות ה-webhook שלכם. אפשר להשתמש בזה כדי לשלוט בהתנהגות של ה-webhook באופן שספציפי למילוי ההזמנה. |
| החזרת תשובה חלקית | מאפשרת לבטל השמעה של תשובה חלקית. פרטים נוספים זמינים במאמר בנושא הגדרות מתקדמות של דיבור. |
הגדרות קבועות מראש של פרמטרים
אתם יכולים להשתמש בביצוע הזמנה כדי לספק הגדרות קבועות מראש שקובעות או משנות את ערכי הפרמטרים הנוכחיים. ההגדרות הקבועות מראש האלה יחולו לפני פתרון של הודעות תגובה סטטיות או לפני הפעלת webhook.
אפשר גם להשתמש בפונקציות מערכת כדי להגדיר מראש את הפרמטר לערך שנוצר באופן דינמי.
הנה כמה דוגמאות:
הגדרת פרמטר
nowלזמן הנוכחי:פרמטר ערך עכשיו $sys.func.NOW() הגדלה של פרמטר קיים
counterב-1:פרמטר ערך מונה $sys.func.ADD($session.params.counter, 1) הגדרת פרמטר
new-costלערך הפרמטרother-cost, תוך שמירה על הערך המלא של האובייקט המורכב:פרמטר ערך new-cost $sys.func.IDENTITY($session.params.other-cost)
כלים למאגרי נתונים
מידע נוסף על התכונה הזו מופיע במאמרי העזרה בנושא כלי מאגר הנתונים.
הגדרות מתקדמות של דיבור
הגדרות הדיבור המתקדמות האלה יכולות לבטל את אותן הגדרות דיבור בדף, הגדרות דיבור בתהליך והגדרות דיבור של הסוכן.
תור התגובות
במהלך תור של סוכן, אפשר (ולפעמים רצוי) להפעיל כמה מילויים, שכל אחד מהם יכול ליצור הודעת תגובה. Dialogflow CX שומר את התשובות האלה בתור תשובות.
תגובה חלקית ל-Streaming API
כברירת מחדל, מערכת Dialogflow CX שולחת את התשובות המסודרות למשתמש הקצה רק אחרי שהתור של הנציג מסתיים. אפשר גם להפעיל את האפשרות החזרת תשובה חלקית ב-fulfillment כדי להחזיר תשובות שנמצאות כרגע בתור כתשובה חלקית כשמשתמשים בממשקי ה-API של הסטרימינג. פרטים נוספים מופיעים במאמר בנושא מחזור החיים של דף.
לדוגמה, אם סביר להניח שה-webhook יפעל במשך זמן רב, אפשר להוסיף תשובה סטטית ב-fulfillment ולאפשר מילוי חלקי. כך Dialogflow CX מרוקן את תור התגובות ושולח את כל ההודעות כתגובה חלקית לפני שהוא קורא ל-webhook.
אין כרגע תמיכה בתגובה חלקית עבור הפריטים הבאים, אבל התמיכה תהיה זמינה בהמשך:
- קלט אודיו בסימולטור.
- שילובים של טלפוניה עם שותפים יכולים לתמוך במילוי חלקי או לא לתמוך בו בשלב הזה. כדי לבדוק, אפשר לעיין בתיעוד של השותף.
כדי לבדוק את התכונה הזו בסימולטור, צריך להפעיל מילוי חלקי.

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