הוספת אוטומציה באמצעות Dialogflow

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

נציגים של Business Messages תומכים בשילובים ישירים עם

כדי לשלב סוכן Business Messages עם תכונות נוספות של Dialogflow ES או Dialogflow CX, צריך לעיין בתיעוד של כל מוצר.

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

שילוב עם Dialogflow

כדי להשתמש באוטומציה מבוססת Dialogflow דרך Business Messages, צריך להפעיל את השילוב עם Dialogflow.

דרישות מוקדמות

כדי להתחיל, צריך

  • סוכן של Business Messages
  • סוכן של Dialogflow באזור Global עם שפת בסיס של אנגלית (en)

אם אין לכם סוכן של Dialogflow, צרו אותו.

Dialogflow ES

כדי להפעיל שילוב עם Dialogflow ES צריך את מזהה הפרויקט ב-Dialogflow. כדי לאתר את מזהה הפרויקט,

  1. נכנסים ל-Dialogflow Console.
  2. צריך לבחור את הסוכן של Dialogflow שרוצים לקשר ל-Business Messages, ואז ללחוץ על סמל גלגל השיניים .
  3. בקטע Google Project, מזינים את הערך של Project ID.

Dialogflow CX

כדי להפעיל שילוב עם Dialogflow CX, צריך להשתמש במזהה הפרויקט ובמזהה הנציג של Dialogflow. כדי לאתר את המזהים האלה,

  1. עוברים ל-Dialogflow CX Console.
  2. בוחרים את פרויקט Dialogflow.
  3. בבורר, לוחצים על סמל האפשרויות הנוספות לצד נציג ה-Dialogflow.
  4. לוחצים על העתקת השם. פעולה זו מעתיקה את השם המלא של הנציג בפורמט הבא: projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID.
  5. שימו לב לערכים של מזהה הפרויקט ושל מזהה הנציג.

הפעלת השילוב

  1. ב-Business Communications Developer Console, עוברים אל שילובים.
  2. עבור Dialogflow, לוחצים על הפעלת שילוב.
  3. לוחצים על קישור מודל קיים.
  4. עבור מהדורת Dialogflow, בוחרים את המהדורה להפעלה.
  5. צריך להזין את מזהה הפרויקט של Dialogflow.
  6. כדי להפעיל את Dialogflow CX, צריך גם להזין את מזהה הסוכן של Dialogflow'
  7. אם רוצים שמערכת Business Messages תגיב באופן אוטומטי למשתמשים באמצעות התגובות של Dialogflow, אפשר לבחור באפשרות הפעלת תגובה אוטומטית.
  8. לוחצים על הבא.
  9. מעתיקים את כתובת האימייל של חשבון השירות. החשבון הזה מקשר בין Business Messages לנציגי Dialogflow.
  10. ב-Google Cloud Console, בוחרים את הפרויקט ב-Dialogflow.
  11. נכנסים להרשאות IAM.
  12. לוחצים על הוספה ומזינים את כתובת האימייל של חשבון השירות של חשבונות ניהול חדשים.
  13. בשדה Select a role (בחירת תפקיד), בוחרים באפשרות Dialogflow Console Agent Editor (עורך הנציג של Dialogflow Console).
  14. לוחצים על הוספת תפקיד ובוחרים באפשרות Dialogflow API Client.
  15. לוחצים על שמירה.
  16. במסוף המפתחים של התקשורת העסקית, לוחצים על הבא.
  17. לוחצים על התחלת השילוב.

תהליך החיבור בין Business Messages ל-Dialogflow נמשך כ-2 דקות.

עדכון השילוב

  1. ב-Business Communications Developer Console, עוברים אל שילובים.
  2. לוחצים על סמל גלגל השיניים לצד Dialogflow.
  3. מפעילים או משביתים את ההגדרה הפעלה של תגובה אוטומטית, בהתאם להחלטה שלכם אם לענות למשתמשים ב-Business Messages באופן אוטומטי באמצעות תשובות של Dialogflow.

מעבר בין מהדורות של Dialogflow

נציג של Business Messages יכול לתמוך רק בשילוב אחד של Dialogflow בכל פעם. כדי לעבור ממהדורה אחת של Dialogflow למהדורה אחרת, צריך להשבית את השילוב הנוכחי לפני שמפעילים את השילוב החדש.

השבתת השילוב

  1. ב-Business Communications Developer Console, עוברים אל שילובים.
  2. לוחצים על סמל גלגל השיניים לצד Dialogflow.
  3. לוחצים על השבתת שילוב.
  4. לוחצים על השבתה.

ההפעלה של שילוב Dialogflow קיים יכולה להימשך כדקה.

מבצעים את השלבים הבאים כדי להפעיל שילוב חדש עם Dialogflow.

התאמת Intent

אחרי שמפעילים את השילוב ב-Dialogflow לנציג של Business Messages, הנציג יכול להשתמש בכוונות הפרויקט שהוגדרו ב-Dialogflow כדי להבין את השאלות של המשתמשים ולהגיב להן, בלי לכתוב קוד. למידע נוסף על כוונות, אפשר לעיין במסמכים ל-Dialogflow ES ול-Dialogflow CX.

תוכלו להגדיר את הכוונות שלכם ב-Dialogflow לכל אפשרות שיחה שאתם מתכוונים לתמוך בה באמצעות אוטומציה. הנציגים של Business Messages מסתמכים על Dialogflow כדי להבין הודעות של משתמשים.

כשמתקשרים ל-Dialogflow APIs, המערכת של Business Messages מעבירה את המטענים הייעודיים של הודעות משתמשים אל הכוונות שלכם ואל ה-webhook שלכם למילוי הזמנות. לאחר התאמה של הודעת משתמש עם כוונה, אפשר לגשת למטען הזה בפורמט Struct בשדה business_messages_payload בתוך QueryParameters.

המטען הייעודי כולל את כל השדות מהודעת המשתמש, מלבד DialogflowResponse.

עבור Dialogflow CX, מערכת Business Messages מעבירה גם לאובייקטים שלכם פרמטר סשן שנקרא channel עם הערך google_business_messages, ואפשר להפנות אותו לנציג שלכם בפורמט הבא: $session.params.channel.

הפרמטר הזה יכול לשמש כדי להוסיף תנאים למילוי הזמנות של Dialogflow כדי לתמוך בכמה ערוצים באותו סוכן של Dialogflow.

למידע נוסף על פרמטרים של שאילתות, עיינו בהפניות Dialogflow ES ו-Dialogflow CX.

דרישות מוקדמות

כשיוצרים מודלים של NLU ב-Dialogflow, אפשר להגדיר סוגים שונים של תגובות לכוונת רכישה. Business Messages תומך בתגובת ברירת המחדל, שכוללת את הפרטים הבאים:

  • טקסט
  • מטען ייעודי (payload) בהתאמה אישית
  • העברה של נציג תמיכה (Dialogflow CX בלבד)

מטען ייעודי (payload) בהתאמה אישית חייב להתאים לאובייקט הודעת JSON חוקי ב-Business Messages. במהלך ההגדרה של תגובות ייעודיות למטענים, Business Messages מתעלם מהשדות הבאים:

  • name
  • messageId
  • representative

תוכלו לראות את התשובות לדוגמה הבאות.

טקסט עם הצעות

{
  "text": "Hello World!",
  "fallback": "Hello World!\n\nReply with \"Hello\" or \"Hi!\"",
  "suggestions": [
    {
      "reply": {
        "text": "Hello",
        "postbackData": "hello-formal"
      }
    },
    {
      "reply": {
        "text": "Hi!",
        "postbackData": "hello-informal"
      }
    }
  ]
}

צ'אט אינטראקטיבי

{
  "fallback": "Hello, world!\nSent with Business Messages\n\nReply with \"Suggestion #1\" or \"Suggestion #2\"",
  "richCard": {
    "standaloneCard": {
      "cardContent": {
        "title": "Hello, world!",
        "description": "Sent with Business Messages.",
        "media": {
          "height": "TALL",
          "contentInfo":{
            "altText": "Google logo",
            "fileUrl": "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png",
            "forceRefresh": "false"
          }
        },
        "suggestions": [
          {
            "reply": {
              "text": "Suggestion #1",
              "postbackData": "suggestion_1"
            }
          },
          {
            "reply": {
              "text": "Suggestion #2",
              "postbackData": "suggestion_2"
            }
          }
        ]
      }
    }
  }
}
{
  "fallback": "Card #1\nThe description for card #1\n\nCard #2\nThe description for card #2\n\nReply with \"Card #1\" or \"Card #2\"",
  "richCard": {
    "carouselCard": {
      "cardWidth": "MEDIUM",
      "cardContents": [
        {
          "title": "Card #1",
          "description": "The description for card #1",
          "suggestions": [
            {
              "reply": {
                "text": "Card #1",
                "postbackData": "card_1"
              }
            }
          ],
          "media": {
            "height": "MEDIUM",
            "contentInfo": {
              "fileUrl": "https://my.files/cute-dog.jpg",
              "forceRefresh": false
            }
          }
        },
        {
          "title": "Card #2",
          "description": "The description for card #2",
          "suggestions": [
            {
              "reply": {
                "text": "Card #2",
                "postbackData": "card_2"
              }
            }
          ],
          "media": {
            "height": "MEDIUM",
            "contentInfo": {
              "fileUrl": "https://my.files/elephant.jpg",
              "forceRefresh": false
            }
          }
        }
      ]
    }
  }
}

העברת נציג אנושי

{
  "metadata": {}
}

בוטים עם שאלות נפוצות

אחרי שמפעילים שילוב עם Dialogflow ES עבור סוכן Business Messages, אפשר ליצור בוט לשאלות נפוצות. כשאתם מספקים שאלות ותשובות כמסמך ידע נתמך, Business Messages ו-Dialogflow יוצרים את התשתית הנדרשת כדי להבין שאלות של משתמשים ולענות עליהן בלי לכתוב קוד.

כדי לראות בוט של שאלות נפוצות בפעולה, צ'אט עם בוט השאלות הנפוצות של Business Messages.

דרישות מוקדמות

לפני שתיצרו בוט של שאלות נפוצות, תצטרכו את השאלות והתשובות שלכם כמסמך ידע (עד 50MB): קובץ HTML שזמין לכולם או קובץ CSV.

באופן כללי, מסמכי ידע

  • יכולה לכלול סימון Markdown מוגבל בתשובות, כפי שמצוין בטקסט עשיר.
  • גודל מקסימלי של 50MB.
  • אין לחרוג מ-2000 צמדי שאלות/תשובות.
  • אין תמיכה בשאלות כפולות עם תשובות שונות.

בקובצי HTML,

  • קבצים מכתובות URL ציבוריות צריכים לעבור סריקה על ידי אינדקס החיפוש של Google, כך שיהיו קיימים באינדקס החיפוש. ניתן לבדוק זאת באמצעות Google Search Console. לתשומת ליבכם, האינדקס לא מרענן את התוכן. עליכם לעדכן את המסמך באופן מפורש כאשר התוכן המקורי משתנה.
  • Dialogflow מסיר תגי HTML מהתוכן בעת יצירת תגובות. לכן מומלץ להימנע מתגי HTML ולהשתמש בטקסט פשוט כשהדבר אפשרי.
  • אין תמיכה בקבצים עם צמד אחד של שאלה/תשובה.

בקובצי CSV,

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

יצירת בוט לשאלות נפוצות

  1. ב-Business Communications Developer Console, עוברים אל שילובים.
  2. בקטע מאגר הידע (שאלות נפוצות) לוחצים על יצירת מאגר ידע.
  3. מזינים את שם מאגר הידע ולוחצים על הבא.
  4. בוחרים סוג מין.
  5. הוספת מסמך ידע.
    • אם בחרתם באפשרות HTML לסוג מקצוע, תוכלו להזין בכתובת ה-URL את כתובת ה-URL הגלויה לכול של השאלות הנפוצות.
    • אם בחרתם באפשרות CSV לסוג MIME, לוחצים על העלאה ובוחרים את קובץ ה-CSV.
  6. לוחצים על הוספה וסיום.

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

כשתסיימו לבצע את השלבים האלה, Business Messages יכלול את המטרה dialogflowResponse ההודעות שנשלחו למשתמש. אם מפעילים תגובה אוטומטית, Business Messages מגיבה למשתמש עם צמד השאלות/תשובות עם הציון הגבוה ביותר של matchConfidence בהשוואה להודעה של המשתמש.

תשובות אוטומטיות

אם מפעילים מענה אוטומטי במהלך השילוב של Dialogflow, מערכת Business Messages מגיבה למשתמש באופן אוטומטי דרך Dialogflow. נציג של Business Messages יגיב ברמת האמינות הגבוהה ביותר. בשילוב עם Dialogflow ES, אם יש התאמות גם לתשובה וגם לשאלות בהתאמה אישית, מערכת Business Messages מגיבה להתאמה עם רמת האמינות הגבוהה ביותר.

התכונה Business Messages מסמנת את כל ההודעות שהגיבו אוטומטית כי הגיעו מנציגי BOT. אם הנציג תומך בנציגים אנושיים, הפיצ'ר Business Messages השעה את התגובות האוטומטיות אחרי REPRESENTATIVE_JOINED אירועים וחדש את התשובות באופן אוטומטי אחרי REPRESENTATIVE_LEFT אירועים. רוצים לדעת איך מעבירים את הבוט לנציג?

מענה אוטומטי עם תשובה לשאלה נפוצה

אם השילוב של Dialogflow ES מאפשר לעסק לענות על השאלה הספציפית ביותר, מערכת Business Messages ממפה את התשובה להודעת טקסט. אם יש תשובה קשורה, שונה, תוצג ההודעה "הצגת הצעה אחרת של answer" אם לא, ההודעה כוללת שאלה ומציעה שאלה האם היא נענית לבקשת המשתמש.

תגובה אוטומטית בתגובת כוונה

תגובות מסוג Intent יכולות לכלול אחת או יותר מהתגובות הבאות.

אם תגובת הכוונה היא ברמת האמינות הגבוהה ביותר, הכללים הבאים יחולו.

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

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

מענה אוטומטי לבקשת נציג אנושי

באמצעות Dialogflow CX יש תמיכה בתגובה למסירת נציג תמיכה. היא מסמנת שהשיחה מועברת לנציג אנושי, ומאפשרת לכם להעביר מטא-נתונים מותאמים אישית של תהליך הטיפול. אם תגובת Intent תואמת לרמת האמינות הגבוהה ביותר, והיא כוללת העברת הודעות פעילה, Business Messages שולחת אירוע שהתבקש על ידי נציג התמיכה ל-webhook שלכם. כדי לטפל באירוע הזה, קראו את המאמר העברת הבוט לנציג תמיכה.

מענה אוטומטי עם הודעת גיבוי

אם ל-Dialogflow לא מגיעה התאמה ברמת המהימנות הגבוהה, המערכת של Business Messages שולחת תגובה חלופית. הגיבויים מתבצעים באופן שונה ב-Dialogflow ES וב-Dialogflow CX.

Dialogflow ES

אם יש בוטים של שאלות נפוצות, אם לא תהיה התאמה לשאלה של Business Messages, תקבלו מ-Business Messages הודעה חלופית על כך שהיא לא הצליחה למצוא תשובה.

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

זוהי דוגמה לתגובה חלופית עם webhook שניתן לקבל:

{
  "intentResponses": [
    {
      "intentName": "projects/df-integration/agent/intents/12345",
      "intentDisplayName": "Default Fallback Intent",
      "intentDetectionConfidence": "1.0",
      "fulfillmentMessages": [
        {
          "text": "One more time?"
        }
      ]
    }
  ]
}

Dialogflow מאכלס את השדות intent_name ו-intent_display_name מראש.

Dialogflow CX

Dialogflow CX מטפל בתשובות לכוונת החזרה כאירועים מובנים. אם לא נמצאה התאמה לתגובת Intent, Business Messages תשלח הודעת גיבוי מאירוע ברירת המחדל ללא התאמה ב-Dialogflow. תוכלו להשתמש בטקסט החלופי שניתן על ידי Dialogflow, או להגדיר חזרה למצב ראשוני עם אפשרויות נוספות של טקסט, מטען ייעודי (payload) בהתאמה אישית ואפשרות להעברת סוכן אנושי.

זוהי דוגמה לתגובה חלופית עם webhook שניתן לקבל:

{
  "intentResponses": [
    {
      "intentName": "sys.no-match-default",
      "intentDisplayName": "Default Fallback Intent",
      "intentDetectionConfidence": "0.3",
      "fulfillmentMessages": [
        {
          "text": "I missed that, say that again?"
        }
      ]
    }
  ]
}

ל-Business Messages יש הצפנה בתוך הקוד intent_name ו-intent_display_name.

שדות ספציפיים ל-Dialogflow

אחרי שמפעילים את השילוב עם Dialogflow, המשתמש שולח הודעה לסוכן, שמקבל את האובייקט, dialogflowResponse. ה-webhook שלכם יקבל מטען ייעודי (payload) של כל ההודעות מהמשתמשים, בין אם ההודעה ב-Business Messages נשלחה אליכם באופן אוטומטי ובין אם לא. כדי לבדוק אם קיימת תגובה אוטומטית, צריך לבדוק את הערך בשדה autoResponded ולהחליט אם להגיב למשתמש.

Dialogflow ES

...
"dialogflowResponse": {
  "queryText": "TEXT",
  "intentResponse": {
    "intentName": "INTENT_ID",
    "intentDisplayName": "INTENT_NAME",
    "intentDetectionConfidence": "CONFIDENCE_NUMERIC",
    "fulfillmentMessages": [{
      "text": "FULFILLMENT_TEXT",
      "jsonPayload": "JSON",
      "error": "ERROR_STATUS",
    }],
  "faqResponse": {
    "userQuestion": "USER_QUESTION",
    "answers": [{
      "faqQuestion": "FAQ_QUESTION",
      "faqAnswer": "FAQ_ANSWER",
      "matchConfidenceLevel": "CONFIDENCE_LEVEL",
      "matchConfidence": "CONFIDENCE_NUMERIC",
    }],
  },
  "autoResponded": "BOOLEAN",
  "autoRespondedMessages": [{
    "message": "MESSAGE_JSON",
    "responseSource": "SOURCE",
  }],
},
...
שדה תיאור
queryText הטקסט המקורי של שאילתת השיחה. אם תיקון האיות האוטומטי מופעל במודל Dialogflow, השדה queryText מכיל את קלט המשתמש המתוקן.
intentName המזהה הייחודי של הכוונה המותאמת.
intentDisplayName השם של כוונת ההתאמה.
intentDetectionConfidence דירוג הביטחון המספרי בהתאמה בין queryText ל-intentName.
text תגובת טקסט.
jsonPayload מטענים מותאמים אישית. המחרוזת הזו תואמת למטענים המותאמים אישית שהוגדרו ב-Dialogflow. אם המטען הייעודי לא כולל מבנה אובייקטים חוקי של Business Messages, error מתאר את הבעיה.
error תיאור של שגיאה בהודעת מימוש כוונה.
userQuestion השאלה שהמשתמש שאל, כפי שהוגדרה על ידי Dialogflow.
faqQuestion שאלה מ-Dialogflow תואמת לשאלה של המשתמש.
faqAnswer תשובה מ-Dialogflow מתאימה לשאלה של המשתמש.
matchConfidenceLevel רמת הביטחון בהתאמה בין userQuestion לבין faqQuestion.
matchConfidence דירוג האמינות המספרי בהתאמה בין userQuestion ל-faqQuestion.
autoResponded האם Business Messages הגיב אוטומטית למשתמש עם תשובה מ-Dialogflow.
message המטען הייעודי של התגובה האוטומטית.
responseSource המקור של התגובה האוטומטית. עיינו בResponseSource.

Dialogflow CX

...
"dialogflowResponse": {
  "queryText": "TEXT",
  "intentResponse": {
    "intentName": "INTENT_ID",
    "intentDisplayName": "INTENT_NAME",
    "intentDetectionConfidence": "CONFIDENCE_NUMERIC",
    "fulfillmentMessages": [{
      "text": "FULFILLMENT_TEXT",
      "jsonPayload": "JSON",
      "error": "ERROR_STATUS",
      "liveAgentHandoff": {
        "metadata": {}
      }
    }],
  "autoResponded": "BOOLEAN",
  "autoRespondedMessages": [{
    "message": "MESSAGE_JSON",
    "responseSource": "SOURCE",
  }],
},
...
שדה תיאור
queryText הטקסט המקורי של שאילתת השיחה. אם תיקון האיות האוטומטי מופעל במודל Dialogflow, השדה queryText מכיל את קלט המשתמש המתוקן.
intentName המזהה הייחודי של הכוונה המותאמת.
intentDisplayName השם של כוונת ההתאמה.
intentDetectionConfidence דירוג הביטחון המספרי בהתאמה בין queryText ל-intentName.
text תגובת טקסט.
jsonPayload מטענים מותאמים אישית. המחרוזת הזו תואמת למטענים המותאמים אישית שהוגדרו ב-Dialogflow. אם המטען הייעודי לא כולל מבנה אובייקטים חוקי של Business Messages, error מתאר את הבעיה.
error תיאור של שגיאה בהודעת מימוש כוונה.
liveAgentHandoff מטא-נתונים מותאמים אישית עבור תהליך המסירה של הנציג.
autoResponded האם Business Messages הגיב אוטומטית למשתמש עם תשובה מ-Dialogflow.
message המטען הייעודי של התגובה האוטומטית.
responseSource המקור של התגובה האוטומטית. עיינו בResponseSource.