建立 Amazon Lex 聊天機器人

2022/03/14閱讀時間約 5 分鐘
Amazon Lex 是 AWS 的一項服務,可以利用語音、文字在應用程式建立對話式介面。Amazon Lex 採用與 Alexa 相同的技術支援,具備自然語言了解 (NLU) 和自動語音辨識 (ASR) 的功能,能學習理解使用者輸入的意思,並呼叫相對應的功能以滿足使用者需求,打造進行逼真、互動式交談的交談環境。
本篇文章將透過實際建立一個 Amazon Lex 聊天機器人,帶大家認識 Amazon Lex!

Amazon Lex 聊天機器人的 5 大元素

在開始建立聊天機器人以前,先向大家介紹 AWS 如何定義 Lex 聊天機器人介面的元素,分別是以下 5 項:
  • 意圖 (Intent):使用者想要執行的操作
  • 範例表達 (Utterance):能夠觸發操作的使用者輸入
  • 提示 (Prompt):由聊天機器人發出、目的在於請求完成操作所需資料的訊息
  • 位置 (Slot):完成操作所需的輸入資料
  • 履行 (Fulfillment):根據使用者請求完成的操作
圖1、Amazon Lex 聊天機器示意圖(Source: https://aws.amazon.com/tw/lex/features/)
以本篇文章想要建立的訂飲料聊天機器人而言,上面提到 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 服務將聊天機器人部署在現實生活中的場合。

延伸閱讀

參考資料

為什麼會看到廣告
AWS Educate
AWS Educate
留言0
查看全部
發表第一個留言支持創作者!