第12 屆iT邦幫忙鐵人賽系列文章 (Day13)
Chatbot 有分為兩種類型,一個是任務型導向,另一個是聊天型導向,聊天型導向最典型的就是 Siri,講什麼他都會回答你,這背後所支撐的是海量數據訓練出來的,在我們設計應用 Chatbot 時,多半會偏向任務型導向,使用者用你的 Chatbot 不是要跟你聊天,是要快速的用你這服務達到任務,所以在設計時,如果定位 Chatbot 是 "人" ,是非常可怕的設計,只會降低使用者的觀感。
在設計 Line Chatbot 時,如果使用者在對話過程中迷路了,不妨設計一些快捷鍵引導到他的目標吧,這個在 Line 裡面實作叫 Quick Reply,我們今天將做在無法辨識使用者的意圖時,回傳一些引導的快捷鍵
IntenFactory.cs
之前有設定一個 DefaultIntent.cs 我們將修改這個實作
當聽不懂的時候 回傳三個快捷鍵
public async Task ReplyAsync(string replyToken)
{
if (!string.IsNullOrEmpty(replyText))
{
await lineMessageUtility.ReplyMessageAsync(replyToken, replyText);
}
else
{
// 回傳歡迎詞
var unknow = new TextMessage() { Text = $@"不好意思,我不太清楚您的意思,或許你可以用下列快速鍵 (僅支援手機)" };
// Quick Reply
unknow.QuickReply = new QuickReply();
unknow.QuickReply.Items.Add(new QuickReplyItem()
{
action = new MessageAction("電子喜帖"),
});
unknow.QuickReply.Items.Add(new QuickReplyItem()
{
action = new MessageAction("婚紗輪播"),
});
unknow.QuickReply.Items.Add(new QuickReplyItem()
{
action = new MessageAction("交通資訊"),
});
await lineMessageUtility.ReplyMessageAsync(replyToken, new List<IMessage> {
unknow
});
}
}
TextMessage 要多一個 QuickReply 的屬性
public class QuickReply
{
public List<QuickReplyItem> Items = new List<QuickReplyItem>();
}
public class QuickReplyItem
{
public string type => "action";
public string imageUrl { get; set; }
public IAction action { get; set; }
}
商用聊天機器人 UX 的 13 個設計原則(heuristics)
https://medium.com/as-a-product-designer/13-heuristics-for-commercial-chatbot-ux-design-58c1aa191c77
如何使用 Quick Reply
https://developers.line.biz/en/docs/messaging-api/using-quick-reply/
本篇文章同步發佈於我的 Medium 如果這篇文章對你有幫助,就大力追蹤和拍手鼓掌下去吧 !!