iT邦幫忙

2023 iThome 鐵人賽

0
Software Development

跟著 OXXO 一起學 Python系列 第 74

( Day 36.1 ) Python 使用 Dialogflow 打造聊天機器人

  • 分享至 

  • xImage
  •  

Dialogflow 是一個 Google 的開發工具,主要作用是進行自然語言處理的服務,能在不需撰寫程式的狀況下,透過 Dialogflow 快速打造聊天機器人,這篇教學會介紹如何使用 Dialogflow,並在 Dialogflow 裡建立語意的資料庫,快速完成一個簡單的聊天機器人。

原文參考:使用 Dialogflow 打造聊天機器人

認識 Dialogflow

Dialogflow 的前身是 Speaktoit 的 Api.ai,是一個 Google 的開發工具,在 Dialogflow 裡可以加入許多的對話「意圖 Intent」,每個意圖可以包涵許多不同的語句,例如「今天天氣好嗎?」和「今天天氣如何?」是屬於「問天氣」的對話意圖,透過許多的語句,就能進行自然語言的處理,例如就算語句資料庫中沒有「天氣怎麼樣」這句話,輸入時仍然會將其歸類到「問天氣」的對話意圖裡,當建立了足夠的語句和意圖,機器人就很容易理解人類所講的「自然語言」

Dialogflow 教學 - 使用 Dialogflow 打造聊天機器人 - 認識 Dialogflow

建立意圖資料庫之後,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。

Python 教學 - Dialogflow 教學 - 使用 Dialogflow 打造聊天機器人

建立 Agent 時需要輸入名稱、設定語系 ( 如果聊天機器人的主要自然語言為中文,就選擇中文語系 )、設定時區 ( 如果在台灣就設定為香港時區 )。

Python 教學 - Dialogflow 教學 - 使用 Dialogflow 打造聊天機器人

完成後如果出現 Intents 的頁籤內容,左側也出現各種選單,表示 Agent 已經建立完成。

Python 教學 - Dialogflow 教學 - 使用 Dialogflow 打造聊天機器人

建立對話意圖 ( Intent )

點擊 Intents 頁籤,從中可以建立「對話意圖」,對話意圖 Intent 的意思是「某一段話代表什麼意思」,例如「早安」、「大家早」、「Good morning」這三句話都可以看做「說早安」的對話意圖,在 Dialogflow 裡預設有 Default Fallback Intent 和 Default Welcome Intent 兩組對話意圖。

Python 教學 - Dialogflow 教學 - 使用 Dialogflow 打造聊天機器人 - Intents 頁籤

Default Fallback Intent 表示「未知的意圖」,也就是如果無法解析傳送訊息的意圖,就會歸類到這一類,這時 Agent 就會從下方所列的訊息裡,自動選擇一個進行回覆 ( 在 Responses 區塊按下 + 號就可以增加回覆的訊息 )。

Python 教學 - Dialogflow 教學 - 使用 Dialogflow 打造聊天機器人 - Default Fallback Intent

Default Welcome Intent 表示「歡迎意圖、打招呼意圖」,也就是如果輸入了「嗨」、「哈囉」之類的打招呼語句,Agent 就會從下方所列的訊息裡,自動選擇一個進行回覆 ( 在 Responses 區塊按下 + 號就可以增加回覆的訊息 )。

Python 教學 - Dialogflow 教學 - 使用 Dialogflow 打造聊天機器人 - Default Welcome Intent

除了 Default Fallback Intent,Default Welcome Intent 和其他所有新建立的 Intent,都需要在 Training Phrases 區塊加入詞句進行訓練,例如原本的歡迎意圖中沒有 hi 和 hello,就可以將其加入。

Python 教學 - Dialogflow 教學 - 使用 Dialogflow 打造聊天機器人 - 加入詞句進行訓練

了解原理後,就可以嘗試建立一個名為 Weather 的「問氣象意圖 Intent」,內容只要輸入的尋問氣象相關的語句,就會回答簡單的對應訊息。

Python 教學 - Dialogflow 教學 - 使用 Dialogflow 打造聊天機器人 - 問氣象意圖 Intent

Python 教學 - Dialogflow 教學 - 使用 Dialogflow 打造聊天機器人 - 問氣象意圖 Intent

機器人聊天測試

對話意圖完成後,從右側上方的 Try it now,就可以輸入一些詢問的語句,輸入後就會看見機器人自動回覆,如果有發現一些語句不符合意圖,就可以返回相關的 Intent 進行修改。

Python 教學 - Dialogflow 教學 - 使用 Dialogflow 打造聊天機器人 - 機器人聊天測試

小結

能夠用 Dialogflow 進行一問一答的功能後,接下來就可以開始串接自己後端所建立的 Webhook,或是使用 Dialogflow 本身的功能串接 LINE、Facebook...等平台服務。

延伸閱讀:

更多教學

大家好,我是 OXXO,是個即將邁入中年的斜槓青年,我有個超過一千篇教學的 STEAM 教育學習網,有興趣可以參考下方連結呦~ ^_^


上一篇
( Day 35.2 ) Python 寫入 Google 試算表
下一篇
( Day 36.2 ) Python Dialogflow 串接 Webhook
系列文
跟著 OXXO 一起學 Python101
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言