2019年1月15日 星期二

[專案] 聊天機器人-Dialogflow入門


在 [專案] 聊天機器人-平台選擇 的時候有提到,我們需要一個平台

提供NLU(自然語言理解)服務,並把語意轉化為程式語言,整合至通訊軟體供終端用戶使用

所以我們今天要介紹的就是Google的Dialogflow,它的前身叫Api.ai

說個笑話,我們在Api.ai的時期開始跑這個專案,合約簽到一半突然改名,害我們差點簽不過



其實Dialogflow已提供一份很詳細的教學手冊在這裡

但如果你覺得還是有些難懂,或許讓我來試試,用比較簡單的方式帶著你入門

(但我只會講重點,若要深入了解的話,還是建議去看教學手冊,畢竟我也是這樣學來的)

https://dialogflow.com/

如果你沒有使用過,請點選"Sign up for free"。如果已經註冊過,請點選右側"Go to console",當然,註冊的步驟自然可以略過




因為是Google的產品,自然就要使用Google account登入囉


到這邊,恭喜你完成第一步



接下來我們要建立第一個Agent

一般電話/文字客服人員,業界慣稱為Agent,在這邊,聊天機器人就是文字客服人員,所以也稱Agent

語言當然是繁體中文(Chinese Traditional zh-tw),然後按下Create

Google Project (GCP)如果有話可以填入,沒有的話就留空吧,Create後會自動派發一個給你



通常,我們的習慣,當聊天機器人建置好時,第一件事情就是Say Hello

我們在右上角黃色的測試區輸入"你好",然後在右下方的藍色結果區看到了"歡迎歸來"

有沒有覺得很神奇?

(如果看到不同的回覆也是正常的,後面再解釋)



怎麼會那麼神奇呢,我們什麼事都還沒有做呢,再往下看一點點

被觸發的這個Intent,叫Default Welcome Intent,跟中間的名稱完全一樣,那就點進去看看吧

不曉得什麼叫Intent嗎?可以參考一下這裡 [專案] 聊天機器人-語意分析



原來Dialogflow很貼心的已經幫我們準備好了一些資料

左側黃色Training Phrases,就是客戶可能會問的問題 (以前叫做User says)

而右側藍色Responses,就是我們預期聊天機器人對於這個問題的答案 (就是答案啦)

所以當客戶的問句,命中了Training Phrases,聊天機器人就會吐出Responses

(如果有多個Responses,就會隨機吐一個,這樣比較有真人的感覺,不會每次得到的都是相同的答案)



以上,就是聊天機器人運作的基本原理

把客戶可能會問的問題建成多個Intent,當命中的時候,自然就會得到正確答案

那你可能會問,那如果沒有命中怎麼辦?沒關係,Dialogflow也幫你想到了

我們在右上方輸入"測試",聊天機器人聽不懂,所以吐出"對不起,我聽不懂你的問題"

被觸發的Intent叫Default Fallback Intent,那我們就進入Default Fallback Intent看一下



原來Default Fallback Intent,就是負責當聊天機器人無法判斷時,吐出"我聽不懂"這類的答案

當然,左側黃色Training Phrases是無法輸入的,我們只要維護右側藍色Responses的部分即可



以上的Default Welcome Intent & Default Fallback Intent 都是系統內建的

那我們來練習創建一個新的Intent吧

大家都喜歡叫聊天機器人講笑話,我們也來測試一下是否能講笑話吧

先按下Intent旁的+號,輸入Intent名稱,就叫Joke吧

然後輸入客戶可能使用的句子,像 講個笑話/來個笑話/說個笑話之類的



輸入一些冷笑話,然後按下SAVE



來測試一下,成功



當你建了一些Intent後,你一定會想找人來試試

當然不可能叫客戶進來Console裡面測試 (這也太蠢了吧)

Dialogflow很貼心的幫你做了一個Web Demo (還真有的平台連Web Demo的功能都沒有喔)

選擇Integrations後開啟Web Demo



你會得到一組URL,你也可以用iframe的方式嵌入你的網頁(網站)之中



實際測試就像這樣



我相信你剛才在Integrations那個頁面,有看到Facebook/Line等APP

沒錯,你可以把聊天機器人佈署至這些APP使用,而這部分會用另一個章節來介紹

在此之前,建議可以先練習一下Intent的建立

然後,不要花太多時間在Intent上面,因為我們等一下還要介紹Entities呢


2 則留言: