iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 3
1

如何使用Dialogflow建立Chatbot
#1 介紹
#2 建立agent
#3 對話流程設計
#4 使用fulfilment串API
#5 使用fulfilment webhook串API
#6 部屬至 Line bot 上

複習
Agents : 一套module包含dialogflow及自然語言理解使用者的語義後,執行整個動作 action. Ex:如上圖 TestAgent
Intents: 使用者的意圖。意圖由開發人員配置。
Entities:重要的關鍵字眼(我真的不知道怎麼翻好,Google說這個字叫做實體?) 從用戶口中所提到的重要的關鍵字眼轉換成重要的資訊,籍此提供給Intent。例如:“訂飛機” :這句話中還需要 城市 日期 等資訊,來能完成訂飛機這個動作,所以 城市 和 日期 就是Entities.
Fulfilment: 程式撰寫的地方。例如 訂飛機 還得串飛機公司的API才有可能完成訂購,所以程式邏緝就是寫在這裡。
Integrations: LINE, Google home etc..
Prebuilt Agents: dialogflow幫你預先訓練好的Agent,你可以拿來用。
Smalltalk: 也是dialogflow幫你預先訓練好的Agent,幫助你的chatbot對話更友善.

實作一支可以查桃園路邊停車位及收費方式的chatbot //本教學示範產出的 chatbot 將會參加 桃園 open data比賽,請不要照抄後拿去參加其他比賽,謝謝,或者,至少你也改一點,再拿去參加..哈

先建立Agent,預設語系選中文

Intent
操作介面建置意圖Intent,Intent讓程式可以分析使用出使用者的目地,然後執行整個動作。

選 intents => Create Intent

先不用管Contexts 跟 Events ,先一章會再解飾

Training Phrase: 訓練用的句子
這個就是重點了,將使用者為了執行動作,所會講的話都填在這裡,讓Dialogflow學習使用者可能的話。

Intent :ParkingCount

我們先實作第一個 Intent : ParkingCount ,用於知道有無停車位!

Action & Parameters: 動作及參數
為了完成你想要執行的動作,有些參數就有需要,例如我們的查桃園路邊停車位,就需要知道問那一條路。


Response:回覆

設定回覆的文字,因為還沒有串外部API,故這裡我們先設定一個模擬的文字回覆

Default Intents: 預設的意圖 Intent

Dialogflow 有預設的Intent如下:

1.Welcome Intent: 被觸發時的第一句話
2.Fallback Intent : Dialogflow不懂你在講什麼時所觸發


Small Talk Intent: 讓你的chatbot更friendly
如果你的預設語系是中文的話,目前還沒有支援。

還有路段的收費方式,還沒做,持繼作完…

Entities
到目前為止,我們作好了一個Agent裡面有兩個Intent,現在我們來了解Entities。就是不可獲缺的資訊,例如我們詢問有無停車位時,總要知道問的是那一條路,那這條路名就是Entities。

有三種類型的Entities

System 系統預設— Time 時間, City 城市, Date日期
Developer — RoadName 開發者定義的
User — 使用者所訂,想像成 web的cookie就好


Intent: ParkingCount

RoadName 路名
Intent: ParkingPayWay

RoadName 路名
因為路名不是Dialogflow的系統預設Entities 所以我必需自已新增上去

一個一個加太慢了。直接選旁邊的…然後選 raw mode

再來,將 詢問收費方式的 Intent 也做完吧!

到目前為止我們完成了什麼呢?

一個Agent
兩個Intent
一個自定的Entite
目前都還可以吧!

那就試著按右邊的模擬器玩看看吧!


輸入 有停車位嗎?

回應 那一條路?

輸入:公園路

回應:公園路還有停車位喔!


上一篇
用Dialogflow建立LINE Chatbot #1 介紹
下一篇
如何使用Dialogflow建立Chatbot #3 對話流程設計
系列文
Voice App 開發實務:使用Diagflow+firebase開發Google home App (google assistant action)31

尚未有邦友留言

立即登入留言