יש כמה אפשרויות לישות שמשנות את ההתנהגות של התאמת ישויות ושל חילוץ נתונים. האפשרויות האלה מוגדרות מראש עבור ישויות מערכת, ולכן אי אפשר לשנות אותן עבור ישויות מערכת. עם זאת, אתם יכולים לשנות אותן עבור ישויות מותאמות אישית משלכם. אתם יכולים ליצור סוגים שונים של ישויות, בהתאם לאפשרויות שנבחרו:
- ישות במפה
- רשימת ישויות
- ישות מורכבת (סוג מיוחד של ישות רשימה)
- Regexp entity
יש אפשרויות אחרות שלא קובעות את סוג הישות, אבל משפיעות על ההתנהגות של התאמת הישות:
במסמך הזה מתוארת כל אחת מהאפשרויות האלה.
איפה אפשר למצוא את הנתונים האלה
בדרך כלל, כשיוצרים סוכן, משתמשים במסוף Dialogflow CX (מאמרי עזרה, פתיחת המסוף). ההוראות שבהמשך מתמקדות בשימוש במסוף. כדי לגשת לנתונים של אפשרויות ישויות:
- פותחים את מסוף Dialogflow CX.
- בוחרים את הפרויקט Google Cloud .
- בוחרים את הסוכן.
- לוחצים על הכרטיסייה ניהול.
- לוחצים על סוגי ישויות.
- אלה האפשרויות שיוצגו לכם לגבי ישויות קיימות (יכול להיות שחלק מהן יוצגו רק אחרי שתלחצו על אפשרויות מתקדמות):
- רק ישויות (ללא מילים נרדפות)
- ישויות של ביטויים רגולריים
- הוספת ישויות באופן אוטומטי
- התאמה חלקית
- עריכת מידע ביומן
- החרגות של ישויות
אם אתם בונים סוכן באמצעות ה-API ולא באמצעות המסוף, כדאי לעיין בסוג EntityType.
שמות השדות ב-API דומים לשמות השדות במסוף.
בהוראות שבהמשך מודגשים ההבדלים החשובים בין המסוף לבין ה-API.
בוחרים פרוטוקול וגרסה להפניה EntityType:
| פרוטוקול | V3 | V3beta1 |
|---|---|---|
| REST | EntityType resource | EntityType resource |
| RPC | ממשק EntityType | ממשק EntityType |
| C++ | EntityTypesClient | לא זמין |
| C# | EntityTypesClient | לא זמין |
| המשך | EntityTypesClient | לא זמין |
| Java | EntityTypesClient | EntityTypesClient |
| Node.js | EntityTypesClient | EntityTypesClient |
| PHP | לא זמין | לא זמין |
| Python | EntityTypesClient | EntityTypesClient |
| Ruby | לא זמין | לא זמין |
ישות במפה
Map entities מספקות מיפוי מערכי ערכי הפניה למילים נרדפות לכל ערך הפניה. כל רשומה של ישות במפה מכילה ערך הפניה יחיד ורשימה של מילים נרדפות. אפשר גם להגדיר תבנית DTMF לכל ישות.
לדוגמה, כל אחת מהשורות הבאות היא רשומה של ישות מסוג size:
| ישות | מילים נרדפות | תבנית DTMF |
|---|---|---|
| S | S, small, tiny, little | |
| M | M, medium, average | |
| L | L, large, huge, big |
שימו לב שערך ההפניה נכלל ברשימת המילים הנרדפות בכל רשומה של ישות שמופיעה למעלה. כדי שערך הפניה יתאים, צריך לכלול אותו כמילה נרדפת. כשמזינים ערך הפניה באמצעות המסוף, הוא מתווסף אוטומטית כמילה נרדפת.
אם נמצאה התאמה לאחד מהמילים הנרדפות בחלק של קלט ממשתמש קצה, ערך ההפניה המשויך מחולץ לצורך ההתאמה ומשמש לפתרון הערך המשויך של הפרמטר.
אפשר להשמיט את ערך ההפניה מרשימת המילים הנרדפות. המשמעות היא רק שהיא לא תואמת לחלק מקלט של משתמש קצה, אבל היא משמשת כערך שחולץ כשאחד מהמילים הנרדפות שלה תואם. האפשרות הזו שימושית כשמשתמשים במחרוזות מיוחדות לערכי הפניה שלא מוקלדים או נאמרים על ידי משתמשי הקצה.
הרבה יישויות מערכת הן יישויות מפה.
לדוגמה, ישות המערכת @sys.date מתאימה לקלט נפוץ של תאריכים כמו '1 בינואר 2015' או 'הראשון בינואר 2015'.
שני ערכי הקלט האלה ממופים לערך הפניה בפורמט ISO-8601:
"2015-01-01T12:00:00-03:00".
כדי ליצור ישות של מפה:
- במסוף, מבטלים את הסימון של האפשרות Regexp entities ושל האפשרות Entities only.
- באמצעות ה-API, מגדירים את השדה
EntityType.kindלערךKIND_MAP.
שימוש ב-AI גנרטיבי ליצירת מילים נרדפות באופן אוטומטי
במקום להזין מילים נרדפות באופן ידני, אתם יכולים להשתמש בכלי ליצירת מילים נרדפות מבוסס-AI כדי ליצור מילים נרדפות באופן אוטומטי לערך ההפניה. כדי לעשות זאת, מסמנים את התיבה יצירה אוטומטית של X מילים נרדפות לכל ישות כשיוצרים ערך הפניה חדש. ערך ברירת המחדל הוא 3 מילים נרדפות. יצירה של יותר מ-15 מילים נרדפות בכל פעם עלולה להוביל לשגיאות. מומלץ למלא את השדה תיאור של סוג הישות כדי ליצור מילים נרדפות מדויקות יותר לערך ההפניה.
למידע על שימוש בתכונה הזו כדי ליצור נתונים באופן אוטומטי ולתרגם אותם אוטומטית לשפות שאינן ברירת המחדל, אפשר לעיין במסמכי העזרה בנושא סוכנים רב-לשוניים.
הצגת רשימת ישויות
רשימת ישויות מספקת רשימה של ערכי ישויות יחידים.
אין להם ערכי הפניה ומילים נרדפות.
לדוגמה, כל אחת מהשורות הבאות היא רשומה של ישות מסוג material:
| ערך |
|---|
| בד |
| עץ |
| מתכת |
אם נמצא התאמה לערך כלשהו בחלק של קלט ממשתמש קצה, הערך מחולץ להתאמה ומשמש לפתרון הערך המשויך של הפרמטר.
הרבה ישויות מערכת הן ישויות רשימה.
לדוגמה, ישות המערכת @sys.color תואמת לקלט של צבעים נפוצים כמו "אדום" או "כחול".
כשמזוהה צבע, הערך שחולץ לא ממופה לאף ערך הפניה.
לדוגמה, גוונים של אדום כמו "אדום בוהק" או "אדום כהה" לא ממופים לערך "אדום" ומוצגים כערכים המקוריים "אדום בוהק" ו "אדום כהה".
כדי ליצור ישות רשימה:
- במסוף, מבטלים את הסימון של האפשרות Regexp entities ומסמנים את האפשרות Entities only.
- באמצעות ה-API, מגדירים את השדה
EntityType.kindלערךKIND_LIST.
ישות מורכבת
ישות מורכבת היא סוג מיוחד של ישות רשימה. ערכי ישויות של ישויות רשימה מכילים בדרך כלל מילים או ביטויים פשוטים,<0x000A>אבל הם יכולים להכיל גם סוגים אחרים של ישויות. כשסוג ישות מפנה לסוג ישות אחר, ההפניה נקראת כינוי. כשיישות מסוג רשימה מכילה כינויים לסוגי ישויות אחרים, היא נקראת ישות מורכבת.
כשיוצרים כינוי, מציינים את השם של סוג הישות שאליו מתייחסים ואת שם המאפיין הרצוי. כשמזוהה ישות מורכבת בזמן הריצה, הערך שחולץ מוחזר כאובייקט JSON, ושמות המאפיינים של הכינוי משמשים כשמות המאפיינים של ה-JSON. הפורמט להזנת כינוי הוא:
@entity-name:property-name
לדוגמה, אפשר ליצור סוג ישות place שתואם לעיר או למדינה עם רשומות הישות הבאות:
| ערך |
|---|
| @sys.geo-city:city |
| @sys.geo-state:state |
אם קלט של משתמש קצה מכיל חלק 'נאשוויל', מתבצעת התאמה לסוג הישות place.
הערך שחולץ מוחזר בתור:
{"city": "Nashville"}.
אפשר גם להשתמש בכמה כינויים של ישויות ברשומה של ישות.
נבחן את move סוג היישות בהתאמה אישית הבא שמכיל כינויים לסוג היישות direction ולסוג היישות של המערכת @sys.number:
סוג הישות של מפה מותאמת אישית של כיוון:
| ערך ההפניה | מילים נרדפות |
|---|---|
| העברה | קדימה |
| הקודם | אחורה, אחורנית, אחורה |
העברת סוג ישות של רשימה מותאמת אישית:
| ערך |
|---|
| @sys.number:steps steps @direction:direction |
אם הישות move תואמת לקלט של משתמש קצה שמכיל את המחרוזת 'five steps backward' (חמישה צעדים אחורה), הישות move תזוהה.
הערך שחולץ מוחזר בתור:
{"steps": 5, "direction": "back"}.
הרבה יישויות מערכת הן יישויות מורכבות.
לדוגמה, ישות המערכת @sys.unit-currency משמשת להתאמת סכומי כסף לשם מטבע.
הוא מתאים לקלט של משתמשי קצה כמו '50 יורו' או 'עשרים דולר וחמישה סנטים'.
הערך שחולץ מוחזר כאובייקט JSON, כמו:
{"amount": 50, "currency": "EUR"}
ישות מסוג Regexp
באמצעות ישות regexp, אתם יכולים לספק ביטויים רגולריים להתאמה. מידע נוסף זמין במאמר בנושא Regexp entities.
כדי ליצור ישות של ביטוי רגולרי:
- במסוף, מסמנים את האפשרות Regexp entities.
- באמצעות ה-API, מגדירים את השדה
EntityType.kindלערךKIND_REGEXP.
הרחבה אוטומטית (הוספת ישויות באופן אוטומטי)
אפשר להפעיל הרחבה אוטומטית לסוג ישות מותאם אישית. כשהאפשרות הזו מופעלת, הנציג יכול לזהות ערכים שלא סופקו באופן מפורש. לדוגמה, נניח שיש סוג ישות של רשימת קניות:
| ערך |
|---|
| לחם |
| חמאה |
| חלב |
| apple, אפל |
| גלידה |
אם קלט של משתמש קצה הוא "I need to buy some carrots" (אני רוצה לקנות גזר), המערכת תתאים את המילה "carrots" (גזר) לסוג הישות הזה, גם אם היא לא מופיעה בקלט. הנציג מזהה שהמילה "גזרים" דומה מבחינת ההקשר לערכים אחרים.
כדאי לפעול לפי השיטות המומלצות כשמשתמשים בהרחבה אוטומטית:
- הפעלת ההרחבה האוטומטית לא מבטיחה חילוץ ישויות. אם יש רשימה סופית, צריך לספק את הרשימה המלאה במקום לספק רשימה חלקית ולהפעיל הרחבה אוטומטית.
- אם מפעילים הרחבה אוטומטית ביותר מישות אחת, יכול להיות שיהיו התנגשויות ותוצאות סיווג לא צפויות.
- כדי להבטיח איכות טובה יותר של חילוץ פרמטרים, חשוב לספק נתוני אימון מגוונים שמכסים את כל תרחישי השימוש שבהם יכולה להימצא ישות מסוימת בתנועה הצפויה של הסוכן. אם אין מספיק דוגמאות, יכול להיות שהרחבת הישויות האוטומטית לא תפעל כמו שצריך.
כדי להפעיל את ההרחבה האוטומטית:
- במסוף, מסמנים את האפשרות הוספה אוטומטית של ישויות.
- באמצעות ה-API, מגדירים את השדה
EntityType.autoExpansionModeלערךAUTO_EXPANSION_MODE_DEFAULT.
התאמה חלקית
אפשר להפעיל התאמה משוערת לישות מותאמת אישית. אם מפעילים התאמה משוערת, הסדר של המילים בערך או במילה נרדפת לא משנה. מידע נוסף זמין במאמר בנושא התאמה משוערת.
כדי להפעיל התאמה משוערת:
- במסוף, מסמנים את האפשרות התאמה משוערת.
- באמצעות ה-API, מגדירים את השדה
EntityType.enableFuzzyExtractionלערךtrue.
צנזור ביומן
אם מפעילים צנזורה של ישויות, כל ערכי הפרמטרים שחולצו בזמן הריצה עבור סוג הישות יצונזרו במהלך הרישום ביומן.
אפשרות נוספת היא לצנזר פרמטרים ספציפיים.
החרגות של ישויות
אתם יכולים להוסיף החרגות של ישויות, כלומר ביטויים שלא אמורים להיות תואמים. לדוגמה, אם יש לכם סוג ישות של מידה עם הישות ענק (שם תואר), כדאי להוסיף את הישות ענקים (שם עצם) כהחרגה.