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

תשובות של נציג (אפשרויות לדיאלוג)
מגדירים את הודעות התגובה של הסוכן בזמן העיצוב כשיוצרים מילוי. בזמן הריצה, התגובות האלה מתווספות לתור התגובות.
יש כמה סוגים של הודעות תגובה, שמתוארים בקטעי המשנה הבאים. כשמשתמשים במסוף, יש כרטיס Agent dialogue ראשוני בחלונית של ה-fulfillment, אבל אפשר ללחוץ על Add dialogue response כדי להוסיף עוד כרטיסים לסוגים אחרים של הודעות תגובה.
תשובה בטקסט סטטי
הודעות תגובה עם טקסט סטטי מספקות למשתמש דיאלוג טקסטואלי. אם הקריאות ל-API או הקריאות לשילוב של detect intent משתמשות בסינתזת דיבור, הטקסט הזה יוצר תוכן אודיו. בהודעות האלה, הטקסט שסופק משתמש ב-Speech Synthesis Markup Language (SSML).
אפשר להגדיר כמה כרטיסי תגובה טקסטואלית וכמה תגובות טקסטואליות בכל כרטיס. אם מגדירים כמה כרטיסים, הם משורשרים לתגובה אחת בזמן הריצה. אם מגדירים כמה תגובות בכרטיס, אחת מההודעות בכרטיס נבחרת באופן אקראי בזמן הריצה.
הודעות הטקסט האלה יכולות להכיל הפניות לפרמטרים ופונקציות מערכת מוטמעות.
מטען ייעודי (payload) בהתאמה אישית
חלק מהשילובים תומכים בתגובת מטען ייעודי (payload) מותאמת אישית כדי לטפל בתשובות עשירות. צריך לספק את המטענים הייעודיים האלה בפורמט JSON שמוגדר במסמכי התיעוד של השילוב. לדוגמה, אפשר לעיין בפורמט המטען הייעודי (payload) בהתאמה אישית של Dialogflow CX Messenger.
אפשר לכלול הפניות לפרמטרים ב-JSON של מטען ייעודי (payload) בהתאמה אישית. כדי שהמערכת תתייחס אליהם כאל ערכי מחרוזת JSON, צריך להקיף אותם במירכאות כפולות. לדוגמה:
{
"someField": "$session.params.date"
}
מטען ייעודי מותאם אישית בפורמט JSON יכול לכלול עד 24 רמות עומק.
אפשר גם לשלוח מטען ייעודי (payload) מותאם אישית לשילובים שאתם מפתחים. הבקשה לא תעובד על ידי Dialogflow CX, ולכן תצטרכו לטפל בה בלוגיקה העסקית שלכם.
מידע נוסף זמין במאמר בנושא תבניות של מטען ייעודי (payload) בהתאמה אישית.
העברה לנציג תמיכה
התשובה הזו מסמנת למי שקורא ל-API לזיהוי כוונות שהשיחה צריכה לעבור לנציג אנושי. מערכת Dialogflow CX משתמשת באות הזה רק כדי לזהות שיחות שהועברו למטרות מדידה. היא לא משנה את מצב הסשן.
המערכת או השילוב יכולים להשתמש באות הזה כדי לבצע את הפעולות הנדרשות להעברת השיחה. מכיוון ש-Dialogflow CX לא כופה מבנה על הנתונים האלה, אתם יכולים לבחור כל מבנה שמתאים למערכת שלכם.
מטא-נתונים של הצלחת השיחה
התגובה הזו מסמנת למי שקורא ל-API לזיהוי כוונות שהשיחה עם סוכן Dialogflow CX הצליחה. מערכת Dialogflow CX משתמשת באות הזה כדי לזהות שיחות שהצליחו למטרות מדידה, והיא לא משנה את מצב הסשן בשום צורה.
המערכת או השילוב יכולים להשתמש באות הזה כדי לבצע את הפעולות הנדרשות. Dialogflow CX לא כופה מבנה כלשהו על הנתונים האלה, כך שאתם יכולים לבחור כל מבנה שמתאים למערכת שלכם.
הפעלת אודיו שהוקלט מראש
בתשובה הזו מושמע קובץ אודיו של שילובים שתומכים בתכונה הזו.
יכול להיות שיהיו הבדלים בדרישות לגבי פורמט קובץ האודיו בשילובים שונים. לדוגמה, אפשר לעיין בדרישות ל-Dialogflow CX Phone Gateway.
במקרה של שילובים של טלפוניה של שותפים, השותף צריך להיות בעל גישה לכתובת ה-URL של קובץ האודיו. שותף תמיד יכול לגשת לכתובת URL שזמינה באופן ציבורי, כמו קובץ ציבורי ב-Cloud Storage. השותף עשוי גם לספק גישה מוגבלת לקובצי אודיו. פרטים נוספים מופיעים במסמכי התיעוד של השותף.
פלט טקסט אודיו
התגובה הזו דומה לתגובת הטקסט, אבל היא רלוונטית רק לסינתזת דיבור. אם הסוכן יכול לטפל בסשנים של טקסט וקול, אפשר להשתמש בתשובות ייחודיות של טקסט ופלט של אודיו טקסט כדי ליצור חוויית משתמש שונה לטקסט לעומת קול. אם מספקים טקסט של פלט אודיו עבור הפעלה של קול, המערכת מתעלמת מהתשובות בטקסט פשוט.
אם הסוכן מטפל בסשנים של טקסט ושל קול, ואתם רוצים להשתמש באותן הודעות תגובה, השתמשו בתגובות טקסט גם בסשנים של טקסט וגם בסשנים של קול.
טקסט האודיו שמתקבל מחובר באופן דומה לתשובות טקסט. אם התשובות של פלט הטקסט של האודיו הן שילוב של טקסט ו-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.
בחלק מהשילובים של טלפוניה, אפשר לציין מספר טלפון בארה"ב להעברת שיחות. בזמן הריצה, כשסוכן Dialogflow CX מפעיל מילוי עם העברת שיחה, השיחה מועברת למספר ולנציג שצוינו, והטיפול של הסוכן מושהה.
תגובה של כלי מאגר הנתונים
סוג התשובה הזה מגדיר את התשובות של הסוכן שמוחזרות מכלים של מאגרי נתונים מקושרים. אם הגדרתם כלי של מאגר נתונים בתהליך הזה, כרטיס התגובה של הכלי של מאגר נתונים יאוכלס אוטומטית.
- קישורי מקור: הגדרת המספר המקסימלי של ציטוטים שיוצגו למשתמש אחרי התשובה. ציטוט הוא קישור למקור המידע במאגר הנתונים, שמוצג ככפתור. ערך ברירת המחדל הוא 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) בהתאמה אישית
אם אתם משתמשים לעיתים קרובות במטענים ייעודיים (payloads) בהתאמה אישית, כדאי להשתמש בתבניות של מטענים ייעודיים בהתאמה אישית. מטענים ייעודיים (payloads) מותאמים אישית הם לפעמים גדולים ומורכבים, ולכן השימוש בתבניות מפשט את תהליך יצירת הסוכן.
כדי שהתבניות האלה יהיו זמינות לבחירה כשיוצרים מילוי לסוכן, צריך לספק אותן בהגדרות הסוכן.
לדוגמה, אפשר להגדיר תבניות מטען ייעודי (Payload) מותאמות אישית למטען הייעודי (Payload) של כפתורי 'כן' ו'לא'. כשיוצרים מילוי הזמנה שדורש את הלחצנים האלה, צריך לבחור את התבנית כשיוצרים את מילוי ההזמנה.
כשבוחרים תבנית בשביל מטען ייעודי (payload) מותאם אישית של ביצוע הזמנה, התוכן של התבנית מוכנס למטען הייעודי. לאחר מכן תוכלו לערוך את מטען הייעודי לפי הצורך.
אם משנים תבנית, השינויים לא מועברים אוטומטית לכל מטעני הנתונים של תהליך השלמת ההזמנה שבהם יש הפניה לתבנית.
כדי ליצור תבנית מותאמת אישית של מטען ייעודי, אפשר לעיין במאמר בנושא הגדרות כלליות של סוכנים.
כדי לבחור תבנית מטען ייעודי בהתאמה אישית כשיוצרים מילוי, לוחצים על בחירת תבנית כשיוצרים מטען ייעודי בהתאמה אישית למילוי.
שיחות webhook
כשמתבצעת בקשה למימוש (fulfillment) שמופעל על ידי webhook, הסוכן שולח בקשה לשירות שלכם. ה-webhook יכול לבצע פעולות, לספק הודעות תגובה דינמיות, לשנות ערכי פרמטרים ולשנות את הדף הנוכחי.
בהמשך מפורטות הגדרות ה-webhook לביצוע הזמנות:
| X | פריט |
|---|---|
| הפעלת 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.
אין תמיכה במילוי חלקי במקרים הבאים:
- קלט אודיו בסימולטור.
- יכול להיות ששילובי טלפוניה של שותפים לא תומכים בתגובה חלקית. כדי לבדוק, אפשר לעיין בתיעוד של השותף.
כדי לבדוק את התכונה הזו בסימולטור, צריך להפעיל תגובה חלקית.

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