פיתוח תוסף ל-Google Chat באמצעות Dialogflow ES

בדף הזה מוסבר איך ליצור אפליקציית Google Chat כתוסף ל-Google Workspace שמשתמש ב-Dialogflow ES כדי להבין שפה טבעית ולהגיב לה. אפשר גם להשתמש ב-Dialogflow CX, שמשולב ישירות עם Google Chat, כדי ליצור אפליקציית Google Chat של Dialogflow CX. לשם כך, צריך לפעול לפי ההוראות במדריך 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. משייכים אותו לפרויקט ב-Cloud.
  5. לוחצים על יצירה.
  6. יוצרים את הכוונות והישויות לפי הצורך לזרימת השיחה באפליקציית Chat. אפשר להתחיל עם כוונת שיחה.
  7. רושמים את מזהה הפרויקט.

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

יצירת אפליקציה ל-Chat וקישור שלה לסוכן 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. בשדה הוספת אדם אחד או יותר, מקלידים את השם של אפליקציית Chat.
  4. בוחרים את אפליקציית Chat מתוך התוצאות. ייפתח צ'אט ישיר.

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

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

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

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

התגובה בהודעת הטקסט נראית בדיוק כמו התגובה הטקסטואלית שמוגדרת כברירת מחדל במסוף Dialogflow. עם זאת, התשובה הגולמית של ה-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 (מטען ייעודי (payload) בהתאמה אישית ב-Google Chat) אפשר ליצור כרטיסים מתקדמים יותר. כרטיס אחד יכול להכיל קטע אחד או כמה קטעים. לכל קטע יכולה להיות כותרת. כדי לראות כמה מהשילובים שאפשר ליצור, אפשר לעיין במדריך העזר בנושא הרחבת כרטיסי Chat באמצעות תוספים ל-Google Workspace. עם זאת, אם משתמשים במטענים ייעודיים (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 Workspace עם Dialogflow, יש מגבלות ושיקולים לגבי
      אובייקטים של אירועים ב-Chat:
    • אירועים בדף הבית של האפליקציה: עדיין אין תמיכה באירועים מסוג APP_HOME.
    • Dialogflow Query Input: הטקסט שנשלח כקלט לשאילתה לסוכן 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 Cloud.

פתרון בעיות

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

הסרת המשאבים

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

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

    כניסה ל-Resource Manager

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