אובייקטים מובנים מסוג Intent (Dialogflow)

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

  • הכוונה המובנית של 'Play game': "Ok Google. הפעלת משחק זיכרון"
  • אובייקט הכוונה המובנה של"קבלת הורוסקופ": "Ok Google. השיגו לי הורוסקופ"

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

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

איך משלבים אובייקטים מובנות מסוג Intent

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

Dialogflow

אם אתם משתמשים ב-Dialogflow כדי ליצור את הפעולה, אפשר לצרף גרפיקה של Intent ממסוף Dialogflow.

כדי לצרף Intent מובנה באמצעות Dialogflow, פועלים לפי השלבים הבאים:

  1. פותחים את מסוף Dialogflow, בוחרים את הסוכן ונכנסים למסך Intents.
  2. אפשר ליצור או לבחור את הכוונה שהנציג מפעיל כשהוא מקבל כוונה מובנית ספציפית. פותחים את הקטע Events (אירועים) ולוחצים על Add Event.

    איור 1. הוספת אירוע Dialogflow במסוף Dialogflow.
  3. בשדה Events (אירועים), מקלידים את השם של אירוע ה-Intent המובנה של הסוכן (לדוגמה, actions_intent_PLAY_GAME).

    איור 2. צירוף כוונה מובנית לנציג במסוף Dialogflow.
  4. לוחצים על שמירה.

Actions SDK

אם אתם משתמשים ב-Actions SDK כדי ליצור את הפעולה, עליכם לציין את המיפוי בין האובייקטים המובְנים לבין הפעולות בחבילת הפעולות.

כדי לצרף Intent מובנה באמצעות Actions SDK, יש לפעול לפי השלבים הבאים:

  1. מציינים את ה-Intent המובנה בשדה השם בהגדרת הפעולה.
  2. מעלים את חבילת הפעולות לפרויקט Actions באמצעות הכלי gactions, כפי שמתואר בסקירה הכללית על Actions SDK.

לדוגמה, קטע הקוד הבא מראה איך להוסיף את ה-Intent המובנה CHECK_AIR_QUALITY:

{
   "actions":[
      {
         "description":"Default Welcome Intent",
         "name":"MAIN",
         "fulfillment":{
            "conversationName":"conversation_1"
         },
         "intent":{
            "name":"actions.intent.MAIN"
         }
      },
      {
         "description":"Check Air Quality",
         "name":"CHECK_AIR_QUALITY",
         "fulfillment":{
            "conversationName":"conversation_1"
         },
         "intent":{
            "name":"actions.intent.CHECK_AIR_QUALITY"
         }
      }
   ],
   "conversations":{
      "conversation_1":{
         "name":"conversation_1",
         "url":"https://example.com/fulfillment",
         "fulfillmentApiVersion":2
      }
   }
}

טיפול בפרמטרים מובנים של Intent

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

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

לדוגמה, בסכימה של ה-Intent המובנה actions.intent.CHECK_AIR_QUALITY מוגדרים ארבעה פרמטרים אופציונליים:

שם פרמטר תיאור
attributes ערך מחרוזת.
location אובייקט schema.org/Place.
temporalCoverage אובייקט schema.org/Duration.
timeIndicator EnumeratedDuration (תוסף ספציפי ל-Google).

קטע הקוד הבא מציג דוגמה לבקשת ה-webhook (JSON) של השיחה כשמשתמש מפעיל את הפעולה באמצעות אמירת: "What's the Air Quality in San Francisco tomorrow?":

"inputs":[
      {
         "intent":"actions.intent.CHECK_AIR_QUALITY",
         "rawInputs":[
            {
               "inputType":"VOICE",
               "query":"what is the air quality in san francisco tomorrow"
            }
         ],
         "arguments":[
            {
               "name":"location",
               "structuredValue":{
                  "geo":{
                     "longitude":-122.41941550000001,
                     "latitude":37.7749295
                  },
                  "@context":"https://schema.org",
                  "@type":"Place",
                  "name":"san francisco"
               }
            },
            {
               "name":"temporalCoverage",
               "rawText":"2018-04-25",
               "textValue":"2018-04-25"
            }
         ]
      }
   ]

בדוגמה הזו, הפרמטרים מקבלים את הערכים הבאים:

  • הפרמטר location מכיל את הערך schema.org/Place של "San Francisco".
  • הפרמטר temporalCoverage מכיל את הערך schema.org/Duration לתאריך של מחר ביחס לשעת ההפעלה.
  • אין ערכים לפרמטרים attributes ו-timeIndicator כי ביטוי ההפעלה של המשתמש לא כלל מידע כזה.

אם אתם משתמשים ב-Actions on Google Client Library for Node.js, תוכלו לאחזר את הערך של הפרמטרים כפי שמוצג בקטע הקוד הבא:

app.intent('actions.intent.CHECK_AIR_QUALITY', (conv) => {
  const attributes = conv.arguments.get('attributes');
  const location = conv.arguments.get('location');
  const temporal_coverage = conv.arguments.get('temporalCoverage');
  Const time_indicator = conv.arguments.get('timeIndicator')

  // Your Action logic. If you need to use any of the parameter values,
  // you should check first that it is defined. Arguments.get returns
  // undefined if it can't find a value for a parameter.

});

בדיקת שילובים עם אובייקטים מובנים מסוג Intent

כדי לבדוק את השילוב:

  1. פותחים את סימולטור הפעולות כשפעולת הבדיקה מופעלת, או פותחים את Assistant במכשיר.
  2. אומרים או מקלידים שאילתה שמשויכת לכוונה המובנית הזו. לדוגמה, "אני רוצה לשחק במשחק".
  3. מחפשים את הפעולה בתיבת הדו-שיח שמוצגת לבחירת אפליקציה.
  4. יש לבחור את האפליקציה כדי לשלוח כוונה לאפליקציה.
איור 3. תיבת הדו-שיח של בחירת הפעולה שנוצרה
מביטוי מובנה של Intent.
איור 4. הפעלת פעולה שמצורפת ל-Intent מובנה.

שיטות מומלצות לשימוש באובייקטים מובְנים מסוג Intent

אם משתמשים באובייקטים מובנות מסוג Intent, צריך לפעול לפי השיטות המומלצות הבאות:

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