סוגים

סוגים מאפשרים להגדיר את מנוע ה-NLU (הבנת שפה טבעית) של Assistant לחילוץ נתונים מובְנים מקלט של משתמשים. אפשר להשתמש בסוגים הבאים:

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

  • בשלב מילוי יחידות הקיבולת (Slot) בסצנה, אפשר לציין מספר יחידות קיבולת (Slot) שרוצים שהמשתמש יספק לפני שיוכל לעבור מהסצנה או לצאת ממנה.

  • בשלב הconditions של סצנה, אפשר לבסס לוגיקה אם לפרמטר יש ערך ספציפי שמוגדר בסוג.

סוגים בהתאמה אישית

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

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

סוגי מערכות

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

תיאור התיאור
actions.type.DateTime מכילה תאריך, שעה ואזור זמן על סמך הגדרות המכשיר של המשתמש. זמין למילוי משבצות זמן ולהוספת הערות על ביטוי לאימון.
actions.type.Date מכיל תאריך בלבד. זמין למילוי יחידות קיבולת בלבד.
actions.type.Time כולל זמן בלבד. זמין למילוי יחידות קיבולת בלבד.
actions.type.Number הסוג Number תואם למספרים סידוריים ולמספרים קרדינליים.

שימוש ב-DateTime, ב-Date וב-Time

אופן הפעולה של הסוגים האלה משתנה בהתאם לסוג הקהל ולקלט של המשתמש שתואם לסוג.

שימוש עם Intents

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

"date_time": {
  "year": 2019
}

שימוש במילוי של יחידות קיבולת (Slot)

מילוי יחידת הקיבולת (Slot) תומך ב-DateTime, ב-Date וב-Time.

  • אם סוג יחידת הקיבולת (Slot) הוא DateTime, Assistant מציגה למשתמש בקשה עד שמזינים ערך מלא.
  • אם סוג יחידת הקיבולת (Slot) הוא Date, Assistant מציגה למשתמש בקשה עד שיסופק ערך לתאריך. כשהוא נאסף, הפרמטר שמתקבל הוא DateTime מלא, והזמן מוגדר ל-00:00.
  • אם סוג יחידת הקיבולת (Slot) הוא Time, Assistant תציג למשתמש בקשה עד שיסופק ערך זמן. אחרי האיסוף, הפרמטר שמתקבל הוא אובייקט DateTime מלא עם התאריך שמוגדר כתאריך הנוכחי.

לדוגמה, נניח שמשתמש בלוס אנג'לס אמר, "Hey Google, create a reminder for בינואר 2024 at 20:00". כשמחלצים את הערך DateTime כחלק מתהליך מילוי של יחידת קיבולת (Slot), הפרמטר המלא עשוי להיראות כך:

"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' ברמה העליונה אינו מספר או מחרוזת.

שינויים של סוג זמן הריצה

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

למידע נוסף על יצירת שינויים מברירת המחדל של סוג ה-build, קראו את המדריך בנושא webhook.