יצירת אפליקציית Google Chat ב-Dialogflow ES

בדף הזה מוסבר איך ליצור אפליקציית Chat ל-Google Chat שמשתמשת ב-Dialogflow ES כדי להבין שפה טבעית ולהגיב לה. אפשר גם להשתמש ב-Dialogflow CX, שיש לו שילוב ישיר עם Google Chat, כדי ליצור אפליקציית Dialogflow CX ל-Google Chat. לשם כך, אפשר להיעזר במדריך Dialogflow CX ל-Google Chat.

מטרות

  • מגדירים את הסביבה.
  • יוצרים ופורסים סוכן Dialogflow ES.
  • יצירה ופריסה של אפליקציה ל-Chat שמבוססת על סוכן Dialogflow ES.
  • בודקים את אפליקציית Chat.

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

ארכיטקטורה

התרשים הבא מציג את הארכיטקטורה של אפליקציית צ'אט שנבנתה באמצעות Dialogflow:

ארכיטקטורה של אפליקציית Chat שהוטמעה באמצעות Dialogflow.

בתרשים שלמעלה, משתמש שמקיים אינטראקציה עם אפליקציית צ'אט של Dialogflow, נהנה מזרימת המידע הבאה:

  1. משתמש שולח הודעה באפליקציית Chat, בצ'אט ישיר או במרחב ב-Chat.
  2. נציג וירטואלי של Dialogflow, שנמצא ב- , מקבל את ההודעה ומעבד אותה כדי ליצור תשובה.
  3. אפשר גם להשתמש בווּבּהוּק של Dialogflow כדי שהסוכן של Dialogflow יוכל ליצור אינטראקציה עם שירותים חיצוניים של צד שלישי, כמו מערכת לניהול פרויקטים או כלי לניהול כרטיסים.
  4. סוכן Dialogflow שולח תשובה בחזרה לשירות של אפליקציית Chat ב-Chat.
  5. התשובה נשלחת למרחב ב-Chat.

הגדרת הסביבה

לפני שאתם משתמשים בממשקי Google API, אתם צריכים להפעיל אותם בפרויקט ב-Google Cloud. בכל פרויקט אפשר להפעיל ממשק API אחד או יותר.
  1. ב-Google API Console, מפעילים את Google Chat API ואת Dialogflow API.

    הפעלת ממשקי ה-API

  2. מוודאים שאתם מפעילים את ממשקי ה-API בפרויקט הנכון ב-Cloud, ואז לוחצים על הבא.

  3. מוודאים שמפעילים את ממשקי ה-API הנכונים ולוחצים על הפעלה.

יצירת נציג Dialogflow ES

אם אין לכם סוכן קיים ב-Dialogflow ES:

  1. עוברים אל מסוף Dialogflow ES.
  2. לוחצים על יצירת סוכן.
  3. נותנים לו שם, בוחרים שפת ברירת מחדל ואזור זמן.
  4. משייכים אותו לפרויקט בענן.
  5. לוחצים על יצירה.
  6. יוצרים את הכוונות והישויות לפי הצורך לזרימת השיחה באפליקציית Chat. אפשר להתחיל עם כוונת ברכה.
  7. רושמים את מזהה הפרויקט.

מדריך מפורט זמין במאמר יצירת סוכן.

יצירת אפליקציית צ'אט וקישור שלה לסוכן Dialogflow

אחרי שיוצרים סוכן Dialogflow ES, פועלים לפי השלבים הבאים כדי להפוך אותו לאפליקציית צ'אט:

  1. ב-Google API Console, עוברים אל Google Chat API. מחפשים את Google Chat API ולוחצים על Google Chat API ואז על ניהול.

    ל-Chat API

  2. לוחצים על Configuration (הגדרה) ומגדירים את אפליקציית Chat:

    1. בשדה App name, מזינים Dialogflow App.
    2. בקטע כתובת ה-URL של האווטאר, מזינים את הערך https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png.
    3. בשדה תיאור, מזינים Responds to real human conversation.
    4. בקטע פונקציונליות, בוחרים באפשרות הצטרפות למרחבים ולשיחות קבוצתיות.
    5. בקטע הגדרות חיבור, בוחרים באפשרות Dialogflow.
    6. בקטע הגדרות Dialogflow, בוחרים באפשרות Dialogflow ES.
    7. האפליקציה הזו של Chat תהיה זמינה לאנשים ולקבוצות ספציפיים בדומיין שלכם, ואז מזינים את כתובת האימייל שלכם.
    8. בקטע יומנים, בוחרים באפשרות רישום שגיאות ביומן.
  3. לוחצים על שמירה.

אפליקציית Chat מוכנה לקבל הודעות ב-Chat ולענות עליהן.

בדיקת אפליקציית Chat

בודקים את אפליקציית הצ'אט של Dialogflow ES על ידי שליחת הודעה אליה ב-Google Chat.

  1. פותחים את Google Chat באמצעות חשבון Google Workspace שציינתם כשנרשמתם כבודקים מהימנים.

    מעבר אל Google Chat

  2. לוחצים על צ'אט חדש.
  3. בשדה Add 1 or more people (הוספת אדם אחד או יותר), מקלידים את השם של אפליקציית Chat.
  4. בוחרים את אפליקציית Chat מתוך התוצאות. ייפתח צ'אט ישיר.

  5. בצ'אט הישיר החדש עם האפליקציה, כותבים Hello ולוחצים על enter.

    אפליקציית הצ'אט של Dialogflow מגיבה בהודעת פתיחה.

תשובות בהודעת טקסט

תשובות טקסט נשלחות ל-Google Chat כהודעות טקסט. בעזרת העיצוב הזה אפשר להדגיש טקסט או להטות אותו על ידי הוספת סימנים מסוימים (בפורמט Markdown Light) מסביב לטקסט.

התגובה בהודעת SMS נראית בדיוק כמו התגובה הטקסטואלית שמוגדרת כברירת מחדל ב-Dialogflow Console. עם זאת, התשובה הגולמית של ה-API תיראה קצת שונה. היא גם מגדירה את תצורת הפלטפורמה ל-GOOGLE_HANGOUTS, וזה יכול להיות שימושי כשיוצרים סוכנים לכמה שילובים.

"fulfillmentMessages": [
{
   "text": {
   "text": [
        "This is a test."
   ]
},
  "platform": "GOOGLE_HANGOUTS"
},

כרטיסים

תשובות לכרטיסים נשלחות ל-Google Chat בתור הודעות כרטיס.

תמונות

תשובות עם תמונות נשלחות ל-Google Chat בתור ווידג'טים של תמונות ב-Google Chat.

מטען ייעודי (payload) בהתאמה אישית

כדי לשלוח סוגים אחרים של הודעות צ'אט ב-Google Chat, אפשר להשתמש בpayload בהתאמה אישית.

‫Google Chat Custom Payload מאפשר ליצור כרטיסים מתקדמים יותר. כרטיס אחד יכול לכלול קטע אחד או כמה קטעים. לכל סעיף יכולה להיות כותרת. במדריך להודעות בכרטיסים אפשר לראות כמה מהשילובים שאפשר ליצור באמצעות התכונה הזו. עם זאת, אם משתמשים במטענים ייעודיים (payloads) מותאמים אישית, צריך לספק את פורמט ה-JSON.

דוגמה למטען ייעודי (payload) ליצירת הודעה עם כרטיס:

{ "hangouts": { "hostAppDataAction": { "chatDataAction": {
  "createMessageAction": { "message": { "cardsV2": [{
    "cardId": "pizza",
    "card": {
      "header": {
        "title": "Pizza Delivery Customer Support",
        "subtitle": "pizzadelivery@example.com",
        "imageUrl": "https://goo.gl/aeDtrS"
      },
      "sections": [{ "widgets": [{ "textParagraph": {
        "text": " Your pizza is here!"
      }}]}]
    }
  }]}}
}}}}

מגבלות ושיקולים

  • כשמשתמשים באפליקציות של Google Chat עם Dialogflow, יש כמה מגבלות ושיקולים שצריך לקחת בחשבון לגבי אובייקטים של אירועים ב-Chat:
    • אירועים בדף הבית של האפליקציה: עדיין אין תמיכה באירועים מסוג APP_HOME.
    • קלט שאילתה ב-Dialogflow: הטקסט שנשלח כקלט שאילתה לסוכן Dialogflow תלוי בסוג האירוע:
      • ‫MESSAGE: הערך של השדה argumentText מהודעת הצ'אט.
      • ‫APP_COMMAND: המחרוזת "APP_COMMAND_PAYLOAD".
      • ‫ADDED_TO_SPACE: נשלח אירוע ברירת מחדל של קבלת פנים.
      • ‫REMOVED_FROM_SPACE: המחרוזת "REMOVED_FROM_SPACE_PAYLOAD".
      • ‫CARD_CLICKED: המחרוזת "BUTTON_CLICKED_PAYLOAD".
      • ‫WIDGET_UPDATED: המחרוזת "WIDGET_UPDATED_PAYLOAD" (משמשת להשלמה אוטומטית).
    • מטען ייעודי (payload) מלא של האירוע: מטען ייעודי (payload) מלא של אירוע האינטראקציה בצ'אט בפורמט JSON נשלח אל Dialogflow בשדה WebhookRequest.payload. אפשר לגשת לזה ב-webhook של Dialogflow. מידע נוסף מופיע במאמרי העזרה בנושא בקשות webhook ב-Dialogflow ES.
  • שיקולים לגבי תגובה לפקודות וקבלת נתונים מכרטיסים או מתיבות דו-שיח:
  • אין תמיכה בתצוגה מקדימה של קישורים.
  • אם סוכן Dialogflow משיב בהודעה אחת בלבד, ההודעה נשלחת ל-Google Chat באופן סינכרוני. אם נציג Dialogflow מגיב עם כמה הודעות, כל ההודעות נשלחות ל-Chat באופן אסינכרוני על ידי קריאה לשיטה create במשאב spaces.messages ב-Chat API פעם אחת לכל הודעה.
  • כשמשתמשים בשילוב של Dialogflow ES עם Chat, הסוכן של Dialogflow ואפליקציית Chat צריכים להיות מוגדרים באותו פרויקט בענן של Google.

פתרון בעיות

כדי לנפות באגים באפליקציית Chat, כדאי להתחיל בבדיקת יומני השגיאות. האפליקציה הזו משתמשת ב-Dialogflow, ולכן יש לכם כמה משאבים לרישום ביומן ולפתרון בעיות:

הסרת המשאבים

כדי להימנע מחיובים בחשבון על המשאבים שבהם השתמשתם במדריך הזה, מומלץ למחוק את פרויקט בענן.

  1. במסוף Google API, עוברים לדף Manage resources. לוחצים על תפריט > IAM & Admin > Manage Resources.

    כניסה ל-Resource Manager

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על מחיקה .
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
  • ‫Dialogflow CX היא דרך נוספת להשתמש ב-Dialogflow עם אפליקציית צ'אט.