使用 Dialogflow 打造聊天機器人
Dialogflow 是一個 Google 的開發工具,主要作用是進行自然語言處理的服務,能在不需撰寫程式的狀況下,透過 Dialogflow 快速打造聊天機器人,這篇教學會介紹如何使用 Dialogflow,並在 Dialogflow 裡建立語意的資料庫,快速完成一個簡單的聊天機器人。
快速導覽:
認識 Dialogflow
Dialogflow 的前身是 Speaktoit 的 Api.ai,是一個 Google 的開發工具,在 Dialogflow 裡可以加入許多的對話「意圖 Intent」,每個意圖可以包涵許多不同的語句,例如「今天天氣好嗎?」和「今天天氣如何?」是屬於「問天氣」的對話意圖,透過許多的語句,就能進行自然語言的處理,例如就算語句資料庫中沒有「天氣怎麼樣」這句話,輸入時仍然會將其歸類到「問天氣」的對話意圖裡,當建立了足夠的語句和意圖,機器人就很容易理解人類所講的「自然語言」。
建立意圖資料庫之後,Dialogflow 提供許多聊天機器人的串接方式,例如 Facebook、Slack、LINE...等,只要簡單幾個步驟,就能在各大平台上創建聊天機器人,此外,Dialogflow 也支援串接 Webhook,可以讓使用者在聊天時串接自己的服務,透過自己的服務進行更多後端的應用,例如爬蟲、分析...等。
Dialogflow 提供「基本免費」的使用 ( ES Agent Trial Edition 版本 ),但如果請求數 ( request ) 數過多,或需要額外串接 Google Cloud 相關服務,就必須要負擔額外的費用,相關費用可以參考:Dialogflow 定價
開始使用 Dialogflow
前往 Dialogflow 平台,使用自己的 Google 帳號登入 ( 第一次使用需要先同意條款 )。
Dialogflow:https://dialogflow.cloud.google.com/
進入後,點擊「Creat Agent」就可以建立第一個聊天代理人 Agent。
建立 Agent 時需要輸入名稱、設定語系 ( 如果聊天機器人的主要自然語言為中文,就選擇中文語系 )、設定時區 ( 如果在台灣就設定為香港時區 )。
完成後如果出現 Intents 的頁籤內容,左側也出現各種選單,表示 Agent 已經建立完成。
建立對話意圖 ( Intent )
點擊 Intents 頁籤,從中可以建立「對話意圖」,對話意圖 Intent 的意思是「某一段話代表什麼意思」,例如「早安」、「大家早」、「Good morning」這三句話都可以看做「說早安」的對話意圖,在 Dialogflow 裡預設有 Default Fallback Intent 和 Default Welcome Intent 兩組對話意圖。
Default Fallback Intent 表示「未知的意圖」,也就是如果無法解析傳送訊息的意圖,就會歸類到這一類,這時 Agent 就會從下方所列的訊息裡,自動選擇一個進行回覆 ( 在 Responses 區塊按下 + 號就可以增加回覆的訊息 )。
Default Welcome Intent 表示「歡迎意圖、打招呼意圖」,也就是如果輸入了「嗨」、「哈囉」之類的打招呼語句,Agent 就會從下方所列的訊息裡,自動選擇一個進行回覆 ( 在 Responses 區塊按下 + 號就可以增加回覆的訊息 )。
除了 Default Fallback Intent,Default Welcome Intent 和其他所有新建立的 Intent,都需要在 Training Phrases 區塊加入詞句進行訓練,例如原本的歡迎意圖中沒有 hi 和 hello,就可以將其加入。
了解原理後,就可以嘗試建立一個名為 Weather 的「問氣象意圖 Intent」,內容只要輸入的尋問氣象相關的語句,就會回答簡單的對應訊息。
機器人聊天測試
對話意圖完成後,從右側上方的 Try it now,就可以輸入一些詢問的語句,輸入後就會看見機器人自動回覆,如果有發現一些語句不符合意圖,就可以返回相關的 Intent 進行修改。
小結
能夠用 Dialogflow 進行一問一答的功能後,接下來就可以開始串接自己後端所建立的 Webhook,或是使用 Dialogflow 本身的功能串接 LINE、Facebook...等平台服務。
延伸閱讀:
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~