iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 13
0
Modern Web

宅男的浪漫 - 用 .NET Core 打造 Line 婚禮聊天機器人經驗分享系列 第 13

各種訊息都玩過了,來聊聊使用者體驗 (Quick Reply)

第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; }

}

實作效果

懶人包,本次學到了什麼?

本篇文章同步發佈於我的 Medium 如果這篇文章對你有幫助,就大力追蹤和拍手鼓掌下去吧 !!


上一篇
Hold on Hold on 重構一下!
下一篇
Line 的圖文選單
系列文
宅男的浪漫 - 用 .NET Core 打造 Line 婚禮聊天機器人經驗分享30

尚未有邦友留言

立即登入留言