הודעות

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

סוגי תגובה

בכל הנחיה בוחרים מתוך מגוון סוגי תשובות מעניינים ש-Assistant תציג למשתמשים:

  • תגובות פשוטות: תשובות פשוטות מופיעות בצורת בועת צ'אט באופן חזותי, והתכונה 'המרת טקסט לדיבור' (TTS) או 'מדברים' (SSML) יוצרת סאונד. תגובות פשוטות הן התגובות היחידות שנתמכות בכל סוגי המכשירים.
  • תגובות עשירות: תשובות עשירות מכילות רכיבים חזותיים או פונקציונליים שמשפרים את האינטראקציות של המשתמשים עם הפעולות. בעזרת התשובות העשירות, אפשר גם להציג נתונים בטבלאות או להפעיל תוכן אודיו בפורמט ארוך יותר.
  • תגובות חזותיות של בחירה: תגובות בחירה חזותיות מספקות למשתמשים ממשק חזותי שבו הם יכולים לבחור בין כמה אפשרויות, שמבדילות ביניהן בקלות לפי הכותרת או התמונה.
  • תגובות למדיה: תגובות מדיה מאפשרות לכם להפעיל תוכן אודיו בפורמט ארוך יותר מ-SSML, ולספק רכיב חזותי עם פקדי מדיה.
  • Interactive Canvas: הכלי 'לוח הציור האינטראקטיבי' מציג את התשובות כצפיות באינטרנט במסך מלא, ומתפקד כאפליקציית אינטרנט אינטראקטיבית ש-Assistant שולחת כתגובה למשתמש בשיחה. בלוח הציור נעשה שימוש בפורמט הנחיות שונה במקצת כדי להתאים לגמישות נוספת בתקני אינטרנט כמו HTML, CSS ו-JavaScript.

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

פורמט של הנחיה

בפרויקט הפעולות, אפשר להגדיר הנחיות בפורמט YAML או JSON. כל הצעה יכולה להכיל עד שתי תשובות פשוטות ואפשר גם להגדיר תשובה עשירה. תגובות מוגדרות בדרכים הבאות:

  • first_simple: תגובה ראשונית של טקסט או דיבור (פשוט) לשליחה למשתמש.
  • content: תוכן נוסף של תשובות עשירות שצריך לשלוח אחרי תגובות פשוטות.
  • last_simple תגובה סופית של טקסט או דיבור (פשוט) לשליחה למשתמש.
  • canvas: הפניה לאפליקציית אינטרנט שמשתלבת עם לוח הציור האינטראקטיבי.

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

בנוסף, תוכלו לספק גמישות בהנחיה באמצעות התכונות הבאות:

  • מועמדים: הם מאפשרים להגדיר תשובות בהתאם ליכולות המכשיר של המשתמש. לדוגמה, Assistant יכולה להציג תשובות עשירות רק כשמשתמש מקיים אינטראקציה עם הפעולה במכשיר שאפשר להציג אותו.
  • וריאציות: וריאציות הן גרסאות חלופיות של הודעה יחידה. לדוגמה, תוכלו להגדיר ל-Assistant לבחור בין חמש וריאציות שונות של הודעת פתיחה בכל פעם שמשתמש מפעיל את הפעולה.
  • הצעות: ההצעות כוללות צ'יפים של הצעות למשתמשים במכשירים עם תצוגה מקדימה כש-Assistant מציגה את הבקשה.

ההנחיה שמוגדרת כברירת מחדל כוללת מועמד אחד, וריאנט אחד ותשובה first_simple.

מועמדים

בבקשה, האובייקט candidates מאפשר להגדיר תשובות בהתאם ליכולות המכשיר של המשתמש. לדוגמה, Assistant יכולה להציג תשובות עשירות רק כשמשתמש מקיים אינטראקציה עם הפעולה במכשיר שאפשר להציג אותו. כדי להגדיר את סוגי המכשירים שבהם Assistant יכולה להחזיר מועמד, צריך להשתמש במאפיין selector של האובייקט candidates.

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

YAML

candidates:
  - selector:
      surface_capabilities:
        capabilities:
          - RICH_RESPONSE
    first_simple:
      variants:
        - speech: Here's a simple message.
    content:
      card:
        title: Image card title
        text: Some details about the image
        image:
          url: 'https://www.example.com/image/'
  - first_simple:
      variants:
        - speech: Text explains what the image might have shown in more detail.
    

JSON

{
  "candidates": [{
    "selector": {
      "surface_capabilities": {
        "capabilities": ["RICH_RESPONSE"]
      }
    },
    "first_simple": {
      "variants": [{
        "speech": "Here's a simple message."
      }]
    },
    "content": {
      "card": {
        "title": "Image card title",
        "text": "Some details about the image",
        "image": {
          "url": "https://www.example.com/image/"
        }
      }
    }
  }, {
    "first_simple": {
      "variants": [{
        "speech": "Text explains what the image might have shown in more detail."
      }]
    }
  }]
}
    

תוכלו לספק למועמד מסוים דרישת יכולות אחת או יותר. ברשימה הבאה מפורטות היכולות הזמינות:

  • SPEECH: המכשיר יכול לדבר אל המשתמש באמצעות המרת טקסט לדיבור (TTS) או SSML.
  • RICH_RESPONSE: המכשיר יכול להציג תשובות עשירות כמו כרטיסים, רשימות וטבלאות.
  • LONG_FORM_AUDIO: המכשיר יכול להפעיל מדיה באודיו בפורמט ארוך, כמו מוזיקה ופודקאסטים.
  • INTERACTIVE_CANVAS: המכשיר יכול להציג תגובה אינטראקטיבית של לוח הציור.
  • WEB_LINK: המכשיר יכול להשתמש בקישורי אינטרנט בתשובות עשירות כדי לפתוח דפדפן אינטרנט.
  • HOME_STORAGE: המכשיר יכול לאחסן נתונים מתוך האחסון בבית ולגשת אליהם.

וריאנטים

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

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

YAML

candidates:
  - first_simple:
      variants:
        - speech: Hello.
        - speech: Hi there.
        - speech: Welcome.
    

JSON

{
  "candidates": [{
    "first_simple": {
      "variants": [{
        "speech": "Hello."
      },{
        "speech": "Hi there."
      },{
        "speech": "Welcome."
      }]
    }
  }]
}
    

הצעות

דוגמה לצ'יפים של הצעות במסך חכם

ההצעות מספקות למשתמשים במכשירים עם יכולות תצוגה צ'יפים של הצעות כש-Assistant מציגה את הבקשה. אפשר להשתמש בצ'יפים של הצעות כדי לרמוז על תשובות המשתמשים כדי להמשיך את השיחה או לשנות את חשיבותה. כשמקישים על קיצור, צ'יפ ההצעות מחזיר את הטקסט שמוצג לשיחה מילה במילה, כאילו המשתמש הקליד אותו.

יכולים להיות עד 8 הצעות בכל הנחיה, וכל אחת מהן באורך 25 תווים לכל היותר בטקסט ללא הצפנה.

כדי להוסיף הצעה, צריך להזין אובייקט Suggestion שמכיל כל הצעה בשדה title נפרד. כל שם צריך להיות ייחודי בקבוצת הצ'יפים של ההצעות. ב-Actions Builder, האובייקט הזה מיוצג ב-YAML וב-JSON כ-suggestions.

לדוגמה, אפשר להציע הצעות מסוג 'כן' ו'לא' לצד שאלה:

YAML

candidates:
  - first_simple:
      variants:
        - speech: 'Welcome, do you want to play a game?'
    suggestions:
      - title: 'Yes'
      - title: 'No'
    

JSON

{
  "candidates": [{
    "first_simple": {
      "variants": [{
        "speech": "Welcome, do you want to play a game?"
      }]
    },
    "suggestions": [{
      "title": "Yes"
    }, {
      "title": "No"
    }]
  }]
}