סוגים מאפשרים להגדיר את Assistant NLU (הבנת שפה טבעית) לחילוץ נתונים מובְנים מפרטים של משתמשים. שלך יכולים להשתמש בסוגים במצבים הבאים:
בכוונות, אתם יכולים להוסיף הערות לביטויי אימון עם סוגים כדי ליצור משבצות. כשמשתמשים אומרים משהו שתואם למיקום מסוים, המנוע של NLU מחלצת אותו כפרמטר מוקלד כדי לעבד אותו בסצנה.
בשלב מילוי המשבצת של סצנה, אפשר לציין כמה משבצות שאתם רוצים שהמשתמש יספק לפני שהוא לעבור או לצאת מהסצנה.
בתוך שלב התנאים של סצנה, אפשר לבסס הלוגיקה שקובעת אם לפרמטר יש ערך ספציפי שמוגדר בסוג.
סוגים בהתאמה אישית
סוגים מותאמים אישית מאפשרים לכם ליצור מפרט סוגים משלכם כדי להודיע ל-NLU להקצות קבוצת ערכים למפתח יחיד. אפשר לציין סוגים שונים דרכים:
- מילים ומילים נרדפות מאפשרות למפות כמה ערכים למפתח אחד,
שנקראים רשומה. הסוג יכול להכיל רשומה אחת או יותר. אם
לבחור באפשרות הזו, ניתן גם להפעיל את הגדרות NLU הבאות:
- הפעלת התאמה חלקית – התכונה הזו מאפשרת ערכים עם יותר מפריט אחד להתאמה של המילים בהתאמה, גם כשהמילים נאמרות בסדר שונה.
- אישור ערכים לא ידועים – אם לא ניתן לציין את כל הערכים האפשריים, הפונקציה שמעבד השפה יכול לקבל מילים או ביטויים לא ידועים על סמך הסביבה נתונים של אימון קלט וכוונת רכישה, כמו פריטים שאפשר להוסיף לחנות מכולת חדשה.
- ביטויים רגולריים מאפשרים לסוג להתאים ערכים באמצעות ביטוי רגולרי ודפוסי ביטוי שמבוססים על תקן RE2 של Google.
- טקסט חופשי מאפשר לסוג להתאים כל מה שמשתמש אומר. הוספת הערות Intent עם הסוג הזה מאפשר לכם לצרוך את כל הקלט כפרמטר תוכלו לנתב את הנתונים ל-NLU שלכם.
סוגי מערכות
סוגי מערכות מאפשרים להוסיף הערות לנתונים ידועים ולחלץ אותם מקלט של משתמשים באמצעות נתונים וערכים שסופקו על ידי המערכת. סוגי המערכות הבאים נתמך:
סוג | תיאור |
---|---|
actions.type.DateTime |
כולל תאריך, שעה ואזור זמן על סמך הגדרות המכשיר של המשתמש. זמין למילוי משבצות ולהערה על ביטוי לאימון. |
actions.type.Date |
מכיל תאריך בלבד. זמין למילוי משבצות בלבד. |
actions.type.Time |
כולל זמן בלבד. זמין למילוי משבצות בלבד. |
actions.type.Number |
הסוג Number תואם לסדר ולקרדינל
. |
שימוש ב-DateTime
, ב-Date
וב-Time
הסוגים האלה מתנהגים באופן שונה בהתאם למקום שבו משתמשים בסוג קלט של משתמשים שתואם לסוג.
שימוש עם כוונות
הוספת הערות לביטויי אימון בכוונות תומכת רק בסוג DateTime
. משתמשים
הקלט לא צריך להתאים לערך שלם של DateTime
. לדוגמה, אם משתמש
מספק רק את השנה, פרמטר הסשן עשוי להיראות כך:
"date_time": {
"year": 2019
}
שימוש עם מילוי של יחידות קיבולת (Slot)
המילוי של יחידת הקיבולת (Slot) תומך ב-DateTime
, ב-Date
וב-Time
.
- אם סוג יחידת הקיבולת הוא
DateTime
, Assistant תבקש מהמשתמש מצוין. - אם סוג יחידת הקיבולת הוא
Date
, Assistant תציג למשתמש בקשה עד לתאריך מצוין. כשהפרמטר שמתקבל נאסף,DateTime
כשהשעה מוגדרת ל-00:00. - אם סוג יחידת הקיבולת הוא
Time
, Assistant תשלח למשתמש בקשה עד לזמן מסוים מצוין. לאחר האיסוף, הפרמטר שמקבלים הוא אובייקטDateTime
עם התאריך המוגדר לתאריך הנוכחי.
לדוגמה, נניח שמשתמש בתל אביב אמר, "Hey Google, create a תזכורות"
ל-15 בינואר 2024 בשעה 20:00." כשמתבצעת חילוץ של DateTime
כחלק מחריץ,
, הפרמטר המלא עשוי להיראות כך:
"date_time": {
"day": 15,
"hours": 20,
"minutes": 0,
"month": 1,
"nanos": 0,
"seconds": 0,
"time_zone": {
"id": "America/Los_Angeles"
},
"year": 2024
}
שימוש עם תנאים
התנאים מאפשרים להשתמש רק במספרים ובמחרוזות, לכן שימוש ברמה העליונה
כשמשתמשים בפרמטר DateTime
, תתקבל תוצאת False עבור התנאי. לדוגמה:
$session.params.my_dateTime.day > 5
הוא תנאי תקין, כי הערךday
הוא מספר והוא נתמך.$session.params.my_dateTime > "01-01-2010"
הוא תנאי לא חוקי, כי ברמה העליונה DateTime האובייקט אינו מספר או מחרוזת.
שינויים בסוגי זמן הריצה
שינויים בסוגי זמן הריצה מאפשרים ליצור או לשנות באופן דינמי סוגים של תכונה זו מאפשרת לך להוסיף למפרט של סוג או להחליף אותו ב בסביבת זמן ריצה. לדוגמה, אפשר לבדוק מקור נתונים של קצה עורפי כדי לטעון את התפריט היומי לסוג של מילוי ההזמנות.
מידע נוסף זמין במדריך בנושא תגובה לפעולה מאתר אחר (webhook) שמסבירה איך ליצור שינויים מברירת המחדל של סוגים.