程式碼研究室簡介
1. 事前準備
「實體」是 Dialogflow 的機制,可從自然語言輸入內容中識別及擷取實用資料。意圖能讓代理程式瞭解特定使用者輸入內容背後的動機,而實體則可用來挑選出使用者述及內容中的特定資訊片段;無論是街道地址、產品名稱或金額及單位,都能透過實體辨識與擷取。凡是您想從使用者要求中取得的重要資訊,都會有各自對應的實體。
以下清單說明這三種實體類型:
- Dialogflow 內建系統實體,可讓代理程式擷取各種概念的資訊,且不需要額外進行任何設定。例如,系統實體可用來從自然語言輸入內容擷取日期、時間和地點。
- 開發人員實體 (由您定義) 可擷取不在系統實體涵蓋範圍內的概念資訊。舉例來說,品牌可建立開發人員實體,用來識別自家不重複的產品名稱組合。
- 您定義的工作階段實體只會套用至特定對話。舉例來說,您可以建立工作階段實體,代表使用者預訂服務時可用的時間敏感選項。
必要條件
繼續操作前,請先完成下列程式碼研究室:
您也需要瞭解 Dialogflow 的基本概念和建構方式,這些內容可從「使用 Dialogflow 建構聊天機器人」路徑中的下列影片取得:
課程內容
- 如何在 Dialogflow 中建立及使用系統實體
- 如何在 Dialogflow 中建立及使用開發人員實體
- 如何測試代理程式
建構項目
- 已建構的 Dialogflow 代理程式的強化版本
- Dialogflow 中的開發人員實體
- Dialogflow 中的系統實體
軟硬體需求
- 網頁瀏覽器和用於登入 Dialogflow 主控台的電子郵件地址
2. 如何在 Dialogflow 中啟用及使用系統實體
- 前往 Dialogflow 主控台。
- 選取先前建立的 AppointmentScheduler 代理程式。
- 點選 [Intents] (意圖)。
- 按一下「預約服務」開啟意圖設定。
您會發現「Set an appointment for 4 PM tomorrow」(將預約時間設為明天下午 4 點) 等訓練詞組,其中「Date」(日期) 和「Time」(時間) 會自動擷取為 @sys.date 和 @sys.time。歡迎新增更多訓練詞組,看看 Dialogflow 如何自動擷取系統實體。
如您所見,系統實體可讓代理程式擷取各種概念的資訊,且不需要額外進行任何設定。地址、電子郵件、幣別和電話號碼等資料,都是常見的系統實體。詳情請參閱「系統實體」。
3. 如何在 Dialogflow 中啟用及使用開發人員實體
建立開發人員實體
到目前為止,您都是以一般方式處理預約排程工具。假設您的排程器適用於州政府車輛管理局辦公室,主要提供駕照和登記服務。建立這些實體。
- 按一下「實體」。
- 按一下 [Create Entity] (建立實體)。
- 輸入「AppointmentType」做為實體名稱,然後新增「車輛登記」和「駕照」這兩個參照值,並加入幾個同義詞,如下圖所示。按一下「儲存」。
您可以新增更多資料列,並將更多服務做為實體類型。
- 按一下 [儲存]。
編輯意圖,以配合新建立的開發人員實體
- 按一下「意圖」。
- 在「預約時間表」意圖中輸入「Set an appointment for drivers license for 3 PM tomorrow」(預約明天下午 3 點的駕照辦理時間)。
您會看到系統自動辨識出「駕照」、「下午 3 點」和「明天」,並將這些內容視為開發人員和系統實體。
- 輸入下列訓練詞組:
- 週一辦理駕照續期預約
- 預約星期一下午 2 點的授權服務
- 週一的車輛登記預約
- 您需要將 AppointmentType 設為必填欄位,就像時間和日期一樣。如要這麼做,請前往「動作和參數」,然後選取「AppointmentType」列中的核取方塊。
- 新增提示,例如「您想取得哪些服務?DMV 提供駕照和車輛登記服務。如果使用者未提供預約類型,系統會使用提示。
- 按一下 [儲存]。
4. 測試您的聊天機器人
您可以在動作模擬器中測試聊天機器人,或使用先前學過的網頁或 Google Home 整合功能。
測試案例 1
在本例中,使用者只要求預約,但未提供上述三項資訊,因此 Dialogflow 會使用您設定的填空提示,要求使用者提供日期、時間和預約類型。
- 使用者:「預約時間。」
- 聊天機器人:「哪一天?」
- 使用者:「5 月 23 日」。
- 聊天機器人:「你想選什麼時候?」
- 使用者:「上午 10 點」
- Chatbot:「你想取得哪些服務?DMV 提供駕照和車輛登記服務。
- 使用者:「授權」。
- 聊天機器人:「你已預約 2019 年 5 月 23 日上午 10:00:00 辦理車輛登記。到時見!」。
測試案例 2
在本例中,使用者要求預約,但只提供部分資訊,因此 Dialogflow 會使用您設定的填空提示,要求使用者提供日期、時間和預約類型。
- 使用者:「Need an appointment for 4 PM tomorrow.」(需要預約明天下午 4 點的時段。)
- Chatbot:「你想取得哪些服務?DMV 提供駕照和車輛登記服務。
- 使用者:「授權」。
- Chatbot:「您已預約 2019 年 4 月 24 日下午 4 點的駕照辦理時間。到時見!」。
測試案例 3
在此情況下,使用者會提供所有資訊。Dialogflow 會處理這項資訊,並提供預約確認訊息。
- 使用者:「設定明天下午 2 點的車輛登記預約。」
- 聊天機器人:「你的車輛登記預約時間為 2019 年 4 月 24 日下午 2 點。到時見!」。
5. 清除所用資源
如果你打算完成其他 Dialogflow 程式碼研究室,請先略過本節,稍後再返回。
刪除 Dialogflow 代理程式
- 按一下現有代理程式旁邊的
。
- 在「一般設定」分頁中,捲動至底部,然後點選「刪除這個代理程式」。
- 在對話方塊中輸入「Delete」,然後按一下「Delete」。