在上一章中,我們建立了一個基本的聊天機器人,使用他來幫我們查詢桃園市有沒有路邊停車的車位,但你有注意到嗎?
當我們問完該路段有無停車位後,要問該路段的收費方式時,還得再提供一次路名。
這是不是有點煩呢!
因此,在本章中,我們將試著保留以前與用戶的對話中的相關訊息來讓我們的chatbot更聰明一些。
如何使用Dialogflow建立Chatbot
#1 介紹
#2 建立agent
#3 對話流程設計
#4 使用fulfilment串API
#5 使用fulfilment webhook串API
#6 部屬至 Line bot 上
Using Dialogs for Managing Conversations 線性對話
線性對話可以單一intent或多個intent中傳遞
Context可以完成訊息在Intent中的傳遞,登登 Context 登場!
**Context: **在線性對話中,完成訊息在Intent中的傳遞
在Intent: CanParking 裡的Contexts的output context 裡設定 parking_context
5是對話生命周期,就是這個參數可以存多久
在Intent : ParkingPayment 裡的Contexts的 input Context輸入parking_context
在 intent : Parking Payment 及 intent CanParking 裡,設定 Default Value。
輸入 #parking_context.Roadname
這個參數就可以被存在Context裡了。
玩玩看吧!
Linear Dialog using a Followup Intent 使用Follow up Intent來做
先清空上面的Context及default value的設定。
點add follow-up intent
選custom
編緝 CanParking
訓練follup的句子
新增回覆
試試吧!
好了!到目前為止,我們都是以問該路段有沒有停車位,再問收費方式,線型的表述;但真實的世界裡,通常不是線性的。
所以你知道 follow-up intent 跟傳遞 context 在intent 中,因該要怎麼設計你的對話情境,你應該有所了解了吧!
感謝 Wolke大分享,看了前4章又讓我更熟悉df的使用了!!
不過有幾個問題想請教,
1.請問"Events"的功能為何? 其中的 platform events 及 custom events 的差異又是甚麼呢?
2.不同的Agents間是否能互通資訊呢?(像intent的contexts)
3.add follow up intent的主要目的是在設定上下文嗎? 不好意思,我看完上面還是不太懂
以上,若方便的話,再請 Wolke大給予一些指導,謝謝囉~
1.你先參考 Default Welcome Intent 他的event設定裡面有一個 Welcome , 意思是說,當使用者一呼叫這個 agent 時, event Welcome就會被促發. 而 actions on google 還有定義很多event 可以被dialogflow 使用https://developers.google.com/actions/assistant/helpers
2.沒試過,應該不行吧,因為每個agent都可以在integration 裡設定成為一支獨立的bot,假設可以互傳, 之前滿多人用 dialogflow做fb messenger bot, 感覺會有災情產生。
3.follow up intent 通常是釐清使用者的問題吧!
好的,大致理解了,感謝你的回覆!!
感謝 Wolke大分享!
想請教:
我的情境是:
用戶-> 機器人: 『我要看影片』
機器人->用戶:『請問要看哪一種類型』
用戶-> 機器人:『Netflix』
機器人->用戶:『以下是Netflix的一些片單提供您參考』
以上我有設定Action and parameters,設定參數為movietype,
也有設定Entities,幫一些類型歸類
但好奇,若用戶詢問機器人 『我要看Netflix影片』,DialogFlow也能正確判斷出來。
是因為DialogFlow可以取出符合Entities定義的關鍵字傳入參數嗎?
這樣若是沒有跨Intent,是否就不需要設定Context? 謝啦