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

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

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

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

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

שילוב של כוונות מובנות

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

Dialogflow

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

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

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

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

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

Actions SDK

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

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

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

לדוגמה, קטע הקוד הבא מראה איך מוסיפים את 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ים מובנים בפעולות שיחה, אפשר לעיין בקטע חומר עזר בנושא כוונות מובנות.

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

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

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

בקטע הקוד הבא מוצגת דוגמה ל-webhook של השיחה (JSON) כשמשתמש מפעיל את הפעולה, הוא יכול לומר "מה איכות האוויר בסביבה? סן פרנסיסקו מחר?":

"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 בתור "חיפה".
  • הפרמטר temporalCoverage מכיל את schema.org/Duration של התאריך של מחר ביחס לזמן ההפעלה.
  • אין ערכים לפרמטרים attributes ו-timeIndicator כי ביטוי ההפעלה של המשתמש לא הכיל מידע כזה.

אם אתם משתמשים בפעולות בספריית הלקוח של Google עבור 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. אומרים או מקלידים שאילתה שמשויכת ל-Intent המובנה הזה. לדוגמה, "אני רוצה לשחק משחק".
  3. בתיבת הדו-שיח של בחירת האפליקציה שמופיעה, מחפשים את הפעולה הרצויה.
  4. כדי לשלוח Intent לאפליקציה, צריך לבחור את האפליקציה.
איור 3. תיבת הדו-שיח של בחירת הפעולה מובילה
לביטוי מובנה של Intent.
איור 4. הפעלת פעולה שמצורפת ל-Intent מובנה.

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

כדאי לפעול לפי השיטות המומלצות הבאות כשמשתמשים באובייקטים מובנים של Intent:

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