瞭解 Dialogflow 中的實體

瞭解 Dialogflow 中的實體

程式碼研究室簡介

subject上次更新時間:10月 8, 2020
account_circle作者:Joanna Smith

1. 事前準備

「實體」是 Dialogflow 的機制,可從自然語言輸入內容中識別及擷取實用資料。意圖能讓代理程式瞭解特定使用者輸入內容背後的動機,而實體則可用來挑選出使用者述及內容中的特定資訊片段;無論是街道地址、產品名稱或金額及單位,都能透過實體辨識與擷取。凡是您想從使用者要求中取得的重要資訊,都會有各自對應的實體。

以下清單說明這三種實體類型:

  • Dialogflow 內建系統實體,可讓代理程式擷取各種概念的資訊,且不需要額外進行任何設定。例如,系統實體可用來從自然語言輸入內容擷取日期、時間和地點。
  • 開發人員實體 (由您定義) 可擷取不在系統實體涵蓋範圍內的概念資訊。舉例來說,品牌可建立開發人員實體,用來識別自家不重複的產品名稱組合。
  • 您定義的工作階段實體只會套用至特定對話。舉例來說,您可以建立工作階段實體,代表使用者預訂服務時可用的時間敏感選項。

必要條件

繼續操作前,請先完成下列程式碼研究室:

  1. 使用 Dialogflow 建構預約時間表
  2. 將 Dialogflow 聊天機器人與 Actions on Google 整合

您也需要瞭解 Dialogflow 的基本概念和建構方式,這些內容可從「使用 Dialogflow 建構聊天機器人」路徑中的下列影片取得:

課程內容

  • 如何在 Dialogflow 中建立及使用系統實體
  • 如何在 Dialogflow 中建立及使用開發人員實體
  • 如何測試代理程式

建構項目

  • 已建構的 Dialogflow 代理程式的強化版本
  • Dialogflow 中的開發人員實體
  • Dialogflow 中的系統實體

軟硬體需求

  • 網頁瀏覽器和用於登入 Dialogflow 主控台的電子郵件地址

2. 如何在 Dialogflow 中啟用及使用系統實體

  1. 前往 Dialogflow 主控台
  2. 選取先前建立的 AppointmentScheduler 代理程式。

ecedc445a9578e3b.png

  1. 點選 [Intents] (意圖)。

37ee739b69fa1ae7.png

  1. 按一下「預約服務」開啟意圖設定。

您會發現「Set an appointment for 4 PM tomorrow」(將預約時間設為明天下午 4 點) 等訓練詞組,其中「Date」(日期) 和「Time」(時間) 會自動擷取為 @sys.date@sys.time。歡迎新增更多訓練詞組,看看 Dialogflow 如何自動擷取系統實體。

7dcdad1372191f90.png

如您所見,系統實體可讓代理程式擷取各種概念的資訊,且不需要額外進行任何設定。地址、電子郵件、幣別和電話號碼等資料,都是常見的系統實體。詳情請參閱「系統實體」。

3. 如何在 Dialogflow 中啟用及使用開發人員實體

建立開發人員實體

到目前為止,您都是以一般方式處理預約排程工具。假設您的排程器適用於州政府車輛管理局辦公室,主要提供駕照和登記服務。建立這些實體。

  1. 按一下「實體」

4d8924f1d4edc0d1.png

  1. 按一下 [Create Entity] (建立實體)

b77e94e5e47adbc7.png

  1. 輸入「AppointmentType」做為實體名稱,然後新增「車輛登記」和「駕照」這兩個參照值,並加入幾個同義詞,如下圖所示。按一下「儲存」

51562b4327dbaf1.png

您可以新增更多資料列,並將更多服務做為實體類型。

  1. 按一下 [儲存]

編輯意圖,以配合新建立的開發人員實體

  1. 按一下「意圖」
  2. 在「預約時間表」意圖中輸入「Set an appointment for drivers license for 3 PM tomorrow」(預約明天下午 3 點的駕照辦理時間)。

您會看到系統自動辨識出「駕照」、「下午 3 點」和「明天」,並將這些內容視為開發人員和系統實體。

5fb91b31806f06f.png

  1. 輸入下列訓練詞組:
  2. 週一辦理駕照續期預約
  3. 預約星期一下午 2 點的授權服務
  4. 週一的車輛登記預約

5addff06908c61f8.png

  1. 您需要將 AppointmentType 設為必填欄位,就像時間和日期一樣。如要這麼做,請前往「動作和參數」,然後選取「AppointmentType」列中的核取方塊。

c43e72c5c1a43f5c.png

  1. 新增提示,例如「您想取得哪些服務?DMV 提供駕照和車輛登記服務。如果使用者未提供預約類型,系統會使用提示。
  2. 按一下 [儲存]

4. 測試您的聊天機器人

您可以在動作模擬器中測試聊天機器人,或使用先前學過的網頁或 Google Home 整合功能。

測試案例 1

在本例中,使用者只要求預約,但未提供上述三項資訊,因此 Dialogflow 會使用您設定的填空提示,要求使用者提供日期、時間和預約類型。

  1. 使用者:「預約時間。」
  2. 聊天機器人:「哪一天?」
  3. 使用者:「5 月 23 日」。
  4. 聊天機器人:「你想選什麼時候?」
  5. 使用者:「上午 10 點」
  6. Chatbot:「你想取得哪些服務?DMV 提供駕照和車輛登記服務。
  7. 使用者:「授權」。
  8. 聊天機器人:「你已預約 2019 年 5 月 23 日上午 10:00:00 辦理車輛登記。到時見!」。

測試案例 2

在本例中,使用者要求預約,但只提供部分資訊,因此 Dialogflow 會使用您設定的填空提示,要求使用者提供日期、時間和預約類型。

  1. 使用者:「Need an appointment for 4 PM tomorrow.」(需要預約明天下午 4 點的時段。)
  2. Chatbot:「你想取得哪些服務?DMV 提供駕照和車輛登記服務。
  3. 使用者:「授權」。
  4. Chatbot:「您已預約 2019 年 4 月 24 日下午 4 點的駕照辦理時間。到時見!」。

測試案例 3

在此情況下,使用者會提供所有資訊。Dialogflow 會處理這項資訊,並提供預約確認訊息。

  1. 使用者:「設定明天下午 2 點的車輛登記預約。」
  2. 聊天機器人:「你的車輛登記預約時間為 2019 年 4 月 24 日下午 2 點。到時見!」。

5. 清除所用資源

如果你打算完成其他 Dialogflow 程式碼研究室,請先略過本節,稍後再返回。

刪除 Dialogflow 代理程式

  • 按一下現有代理程式旁邊的 fe9c61cc27fb9f2e.png

520c1c6bb9f46ea6.png

  • 在「一般設定」分頁中,捲動至底部,然後點選「刪除這個代理程式」
  • 在對話方塊中輸入「Delete」,然後按一下「Delete」

6. 恭喜

您使用開發人員實體建構聊天機器人,處理自訂輸入內容。你現在是聊天機器人開發人員!

瞭解詳情

如要瞭解詳情,請參閱下列資源: