Amazon Lex 是 AWS 的一項服務,可以利用語音、文字在應用程式建立對話式介面。Amazon Lex 採用與 Alexa 相同的技術支援,具備自然語言了解 (NLU) 和自動語音辨識 (ASR) 的功能,能學習理解使用者輸入的意思,並呼叫相對應的功能以滿足使用者需求,打造進行逼真、互動式交談的交談環境。
本篇文章將透過實際建立一個 Amazon Lex 聊天機器人,帶大家認識 Amazon Lex!
Amazon Lex 聊天機器人的 5 大元素
在開始建立聊天機器人以前,先向大家介紹 AWS 如何定義 Lex 聊天機器人介面的元素,分別是以下 5 項:- 意圖 (Intent):使用者想要執行的操作
- 範例表達 (Utterance):能夠觸發操作的使用者輸入
- 提示 (Prompt):由聊天機器人發出、目的在於請求完成操作所需資料的訊息
- 位置 (Slot):完成操作所需的輸入資料
- 履行 (Fulfillment):根據使用者請求完成的操作
以本篇文章想要建立的訂飲料聊天機器人而言,上面提到 5 個建立 Lex 聊天機器人的元素分別可以對應到:
- 意圖:使用者想要訂飲料
- 範例表達:使用者在互動介面輸入「我想要訂飲料」
- 提示:聊天機器人詢問使用者「你想要喝什麼」
- 位置:使用者輸入飲料名稱
- 履行:聊天機器人回覆飲料訂購完成,並結束對話
是不是很容易理解呢?但是!在筆者寫文章的當下 Amazon Lex 只支援 10 種語言,其中不包括中文,所以待會兒的實作會以中文操作介面進行,以英語作為主要的輸入語言。
[建立] Amazon Lex Bot
Step 1: 預備動作
- 在 AWS 主控台搜尋「Lex」
- 點擊〔開始使用 Amazon Lex〕
- 點擊〔Get Started〕
- 點擊〔建立機器人〕

圖2、建立機器人
Step 2: 機器人設定
- 選擇〔建立空白的機器人〕
- 輸入機器人名稱,例如 orderDrinks
- 選擇〔使用基本的 Amazon Lex 許可建立角色〕
- COPPA 的部分選擇〔沒有〕
- 設定閒置工作階段逾時為 5 分鐘
- 頁面拉至最下面,點擊〔下一個〕
Step 3: 新增語言
- 頁面拉至最下面,點擊〔完成〕
建立機器人後,系統會跳轉到新增意圖的地方
Step 4: 修改意圖 (Intent)
- 將意圖名稱改為可以辨識的名稱,例如 OrderDrinks

圖3、修改意圖名稱
- 新增表達範例 (Utterance),例如 drinks, please
- 點擊右下方橘色的〔儲存意圖〕

圖4、新增表達範例
Amazon Lex 內建日期、時間、地點等位置類型,如果有需要特殊的類型,例如飲料類型,我們也可以自己另外在 Lex 的控制台中建立。
Step 5: 新增位置類型
- 開啟左側清單,點擊〔返回意圖清單〕

圖5、返回意圖清單
- 點擊左側清單中的〔位置類型〕
- 點擊右上方的〔新增位置類型〕>〔新增空白位置類型〕

圖6、新增位置類型
- 輸入位置名稱,例如 drinkTypes
- 點擊〔新增〕
- 在位置類型值的地方新增飲料種類,例如 milk
- 點擊〔儲存位置類型〕

圖7、輸入位置名稱
Step 6: 完成尚未編輯完的意圖
- 回到方才 OrderDrinks 的編輯頁面
- 頁面下拉到位置,點擊〔新增位置〕
- 輸入位置名稱,例如 drinkTypes
- 位置類型選擇方才建置的〔drinkTypes〕
- 輸入提示,例如 What kind of drinks do you want?
- 點擊〔新增〕

圖8、新增位置
- 輸入確認提示和拒絕回應

圖9、確認提示和拒絕回應
上圖中 {drinkTypes} 代表的是在聊天機器人詢問「What kind of drinks do you want?」後,使用者輸入的飲料名稱。
- 輸入履行 (Fulfillment) 時的回覆

圖10、輸入履行時的回覆
- 輸入關閉回應

圖11、輸入關閉回應
Step 7: 建置與測試
- 點擊〔儲存意圖〕
- 點擊〔建置〕
- 點擊〔測試〕

圖12、建置與測試
點擊測試後,網頁右方會跳出簡易的聊天視窗,我們可以在此測試聊天機器人。

圖13、測試聊天機器人
由於 Lex 內建自然語言了解的功能,所以就算使用者的輸入和我們預設的內容稍有不同,Lex 能協助判斷內容並給出適當回應。

圖14、Lex 協助判斷場景1

圖15、Lex 協助判斷場景2
結語
這篇文章透過 Amazon Lex 建立了一個簡單的聊天機器人,文章當中只使用到幾個 Lex 最基本的功能,若是讀者們有興趣,可以再接續研究如何讓聊天機器人詢問使用者冰塊甜度、如何處理使用者答非所問的情況,或是更進一步了解如何搭配 Lambda 和其他 AWS 服務將聊天機器人部署在現實生活中的場合。
延伸閱讀
參考資料
用 Amazon Lex 建立聊天機器人,以銀行客服機器人為例