有多個實體選項可變更實體比對和資料擷取的行為。這些選項已為系統實體預先設定,因此您無法變更系統實體的選項。不過,您可以變更自己的自訂實體。您可以根據所選選項建立不同類型的實體:
還有其他選項不會決定實體類型,但會影響實體比對的行為:
本文將說明這些選項。
這項資料的所在位置
建構代理程式時,最常見的做法是使用 Dialogflow CX 控制台 (請參閱說明文件並開啟主控台)。以下操作說明重點介紹如何使用主控台。如要存取實體選項資料,請按照下列步驟操作:
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 按一下「實體類型」。
- 查看現有實體的下列選項 (部分選項可能只會在展開「進階選項」後顯示):
- 僅限實體 (不含同義詞)
- 規則運算式實體
- 自動新增實體
- 模糊比對
- 在記錄檔中遮蓋
- 實體排除條件
如果您是使用 API (而非主控台) 建構代理程式,請參閱 EntityType 型別。API 欄位名稱與主控台欄位名稱相似。下方的操作說明會指出主控台和 API 之間所有的重要差異。
選取 EntityType 參照的通訊協定和版本:
| 通訊協定 | V3 | V3beta1 |
|---|---|---|
| REST | EntityType 資源 | EntityType 資源 |
| RPC | EntityType 介面 | EntityType 介面 |
| C++ | EntityTypesClient | 不適用 |
| C# | EntityTypesClient | 不適用 |
| Go | EntityTypesClient | 不適用 |
| Java | EntityTypesClient | EntityTypesClient |
| Node.js | EntityTypesClient | EntityTypesClient |
| PHP | 不適用 | 不適用 |
| Python | EntityTypesClient | EntityTypesClient |
| Ruby | 不適用 | 不適用 |
地圖實體
對應實體會提供參照值到每個參照值同義詞的對應。每個對應實體項目都包含單一參照值和同義詞清單。您也可以選擇為每個實體設定 DTMF 模式。
舉例來說,以下各列都是 size 實體類型的實體項目:
| 實體 | 同義詞 | DTMF 模式 |
|---|---|---|
| S | S、small、tiny、little | |
| M | 中等、平均 | |
| L | L、大、巨大、大 |
請注意,上述每個實體項目的同義詞清單中都包含參照值。如果要比對參照值,必須以同義詞形式納入該參照值本身。您先透過控制台輸入參照值,系統會將其自動新增為同義詞。
如果使用者輸入內容的任何部分與同義字相符,系統就會擷取相符的相關參照值,並用於解析相關聯的參數值。
同義詞清單可以省略參照值。 這只是表示該實體與使用者輸入內容的某個部分不相符,但如果與其中一個同義字相符,就會做為擷取值。如果您使用特殊字串做為參考值,且使用者不會輸入或說出這些字串,就適合使用這項功能。
許多系統實體都是地圖實體。舉例來說,@sys.date 系統實體會比對常見的日期輸入內容,例如「2015 年 1 月 1 日」或「2015 年 1 月的第一天」。這兩個輸入內容都會對應到 ISO-8601 格式的參照值:「2015-01-01T12:00:00-03:00」。
如要建立地圖實體,請按照下列步驟操作:
- 使用控制台取消勾選「規則運算式實體」選項,並取消勾選「僅限實體」選項。
- 使用 API 將
EntityType.kind欄位設為KIND_MAP。
使用 AI 生成功能自動產生同義字
不必手動輸入同義字,只要使用 AI 生成器,系統就會自動為參考值生成同義字。如要這麼做,請在建立新的參照值時,勾選「Auto-generate X syonyms per entity」(自動為每個實體產生 X 個同義字) 核取方塊。預設值為 3 個同義字。一次產生超過 15 個同義詞可能會導致錯誤。最佳做法是填寫實體類型的「說明」欄位,為參考值產生更準確的同義詞。
如要瞭解如何使用這項功能,自動生成及翻譯非預設語言的資料,請參閱多語言代理程式說明文件。
清單實體
清單實體提供單一值實體項目的清單。
沒有參照值和同義詞。
舉例來說,下列每一列都是 material 實體類型的實體項目:
| 值 |
|---|
| 布料 |
| 木頭 |
| 金屬 |
如果使用者輸入內容的任何部分符合值,系統會擷取相符的值,並用來解析相關聯的參數值。
許多系統實體都是清單實體。
舉例來說,@sys.color 系統實體會比對常見的顏色輸入內容,例如「紅色」或「藍色」。顏色相符,但擷取的值未對應至任何參照值。舉例來說,像是「緋紅」或「腥紅」這種描述紅色濃淡的字詞都會依原值擷取,並不會另外對應到「紅色」。
如要建立清單實體:
- 使用控制台取消勾選「規則運算式實體」選項,然後勾選「僅限實體」選項。
- 使用 API 將
EntityType.kind欄位設為KIND_LIST。
複合式實體
複合實體是一種特殊的清單實體。清單實體的實體項目通常包含簡單的字詞或詞組,但也可能包含其他實體類型。在另一個實體類型中參照實體類型時,該參照稱為「別名」。如果清單實體包含其他實體類型的別名,則稱為複合實體。
建立別名時,請提供參照實體類型的名稱,以及您選擇的屬性名稱。在執行階段比對複合實體時,系統會以 JSON 物件的形式傳回擷取的值,並將別名屬性名稱做為 JSON 屬性名稱。輸入別名的格式如下:
@entity-name:property-name
舉例來說,您可以建立 place 實體類型,並使用下列實體項目比對城市或州別:
| 值 |
|---|
| @sys.geo-city:city |
| @sys.geo-state:state |
如果使用者輸入內容包含「Nashville」部分,系統會比對 place 實體類型。擷取的值會以 {"city": "Nashville"} 形式傳回。
您也可以在實體項目中使用多個實體別名。
請參考下列 move 自訂實體類型,其中包含 direction 實體類型和 @sys.number 系統實體類型的別名:
方向自訂地圖實體類型:
| 參考值 | 同義詞 |
|---|---|
| 前進一格 | forward、forwards |
| 返回 | back、backward、backwards |
移動自訂實體名單類型:
| 值 |
|---|
| @sys.number:steps 步驟 @direction:direction |
如果 move 實體與包含「倒退五步」的使用者輸入內容相符,系統就會比對 move 實體。擷取的值會以 {"steps": 5, "direction": "back"} 形式傳回。
許多系統實體都是複合實體。
舉例來說,@sys.unit-currency 系統實體用於比對具有貨幣名稱的金額值。可比對使用者輸入的內容,例如「50 歐元」或「二十美元五美分」。擷取的值會以 JSON 物件的形式傳回,例如:
{"amount": 50, "currency": "EUR"}
規則運算式實體
只要使用規則運算式實體,您就能提供規則運算式來進行比對。詳情請參閱Regexp 實體。
如要建立規則運算式實體,請按照下列指示操作:
- 使用控制台,勾選「規則運算式實體」選項。
- 使用 API 將
EntityType.kind欄位設為KIND_REGEXP。
自動擴展 (自動新增實體)
您可以為自訂實體類型啟用自動擴展功能。 啟用後,代理程式就能辨識未明確提供的值。以購物清單實體類型為例:
| 值 |
|---|
| 麵包 |
| butter |
| 牛奶 |
| apple |
| 冰淇淋 |
如果使用者輸入「我要買一些紅蘿蔔」,即使未提供「紅蘿蔔」,系統仍會將其與這個實體類型相符。服務專員會辨識出「紅蘿蔔」在語意上與其他值相似。
考慮採用自動擴展功能時,請遵循下列最佳做法:
- 啟用自動擴展功能後,系統不保證會擷取實體。 如果是項目有限的清單,請提供完整清單,而非部分清單,並啟用自動擴展功能。
- 如果您為多個實體啟用自動擴展功能,可能會導致衝突和未預期的分類結果。
- 為確保參數擷取品質,請務必提供多元的訓練資料,涵蓋預期代理程式流量中可能出現特定實體的所有用途。如果範例不足,自動擴展實體可能無法正常運作。
如要啟用自動擴展功能,請按照下列步驟操作:
- 使用控制台,勾選「自動新增實體」選項。
- 使用 API 將
EntityType.autoExpansionMode欄位設為AUTO_EXPANSION_MODE_DEFAULT。
模糊比對
您可以為自訂實體啟用模糊比對功能。 如果您啟用了模糊比對功能,值或同義詞的字詞順序就不會產生任何影響。詳情請參閱「模糊比對」。
如要啟用模糊比對功能,請按照下列步驟操作:
- 使用控制台,勾選「模糊比對」選項。
- 使用 API 將
EntityType.enableFuzzyExtraction欄位設為true。
在記錄中遮蓋
啟用實體遮蓋功能後,系統會在記錄時,遮蓋實體類型在執行階段擷取的所有參數值。
或者,您也可以遮蓋個別參數。
實體排除條件
您可以新增實體排除條件,也就是不應比對的詞組。 舉例來說,如果實體類型為「尺寸」,實體為「巨大」 (形容詞),您可能會考慮將「巨人」 (名詞) 新增為排除條件。