[英]Add Card attachment to message using Microsoft Bot Framework
[英]Add Like and Dislike button after every message in Microsoft Bot Framework
如何在機器人回發每條消息后添加喜歡和不喜歡按鈕以獲得用戶反饋。 如果用戶點擊不喜歡按鈕,那么我的機器人應該給出一些更接近該主題的建議。 這可以在 Azure Bot Framework 中實現嗎?
最好的方法是用卡片來回應。 有不同類型的卡用於不同的目的。 例如,我們可以創建一個按鈕卡,並為該按鈕分配操作,如機器人對話中的每個消息卡的喜歡和不喜歡。
所有機器人響應都存儲在 .lg 文件中。 該文件將在機器人響應頁面中公開給作曲家。 共有三種不同的模板。 簡單響應、條件響應和結構化響應。 根據需求,使用這些模板設計機器人。
上述鏈接可用於結構化響應。
下面的鏈接是為不同的模板和目的實現卡片的實現流程。
https://docs.microsoft.com/en-us/composer/how-to-send-cards?tabs=v2x
這可以在 Azure Bot Framework 中實現嗎?
是的,您可以使用Azure Bot SDK V4.0
專門在 Asp.net Core Bot SDK V-4.0 上實現這一點,您可以這樣做。
如何在機器人回發每條消息后添加喜歡和不喜歡按鈕以獲取用戶反饋?
您可以使用“英雄卡”添加此類按鈕,然后您可以為like 👍
和dislike 👎
選項設置 Unicode。 這是如何設計該特定卡的示例。
喜歡-不喜歡提示卡:
public IMessageActivity LikeDislikeCard()
{
try
{
//Break in Segment
var timeInfoCard = Activity.CreateMessageActivity();
//Bind to Card
var heroCard = new HeroCard
{
Title = "How do you think about the answer?",
Images = new List<CardImage> { new CardImage("") },
Buttons = new List<CardAction> {
new CardAction(ActionTypes.ImBack, "👍👍👍👍👍", value: "like") ,
new CardAction(ActionTypes.ImBack, "👎👎👎👎👎", value: "dislike")
},
};
// Create the attachment.
var attachment = heroCard.ToAttachment();
timeInfoCard.Attachments.Add(attachment);
timeInfoCard.AttachmentLayout = AttachmentLayoutTypes.Carousel;
return timeInfoCard;
}
catch (Exception ex)
{
throw new NotImplementedException(ex.Message, ex.InnerException);
}
}
發送響應時調用 Like-Dislike PromptCard:
var likeDislikeCard = LikeDislikeCard();
await turnContext.SendActivityAsync(likeDislikeCard);
注意:但正如您所指出的,您希望獲取用戶對機器人對話的反饋,因此有更好的方法來實現這一目標。 在這種情況下,您可以使用以下方式收集用戶反饋:
用戶反饋卡:
public IMessageActivity UserFeedbackCard()
{
try
{
//Break in Segment
var timeInfoCard = Activity.CreateMessageActivity();
var thanks = "Thank you very much for your interaction";
var rate = "You could rate our service...";
//Bind to Card
var heroCard = new HeroCard
{
// Title = "Thank you very much for your interaction, you could rate me..",
Text = string.Format("**{0}** " + Environment.NewLine + "**{1}**", thanks, rate),
Images = new List<CardImage> { new CardImage("") },
Buttons = new List<CardAction> {
new CardAction(ActionTypes.ImBack, "\U0001F929", value: "one") ,
new CardAction(ActionTypes.ImBack, "\U0001F929 \U0001F929 ", value: "two"),
new CardAction(ActionTypes.ImBack, "\U0001F929 \U0001F929 \U0001F929", value: "three"),
new CardAction(ActionTypes.ImBack, "\U0001F929 \U0001F929 \U0001F929 \U0001F929 \U0001F929", value: "four"),
new CardAction(ActionTypes.ImBack, "\U0001F929 \U0001F929 \U0001F929 \U0001F929 \U0001F929 \U0001F929", value: "five"),
},
};
// Create the attachment.
var attachment = heroCard.ToAttachment();
timeInfoCard.Attachments.Add(attachment);
timeInfoCard.AttachmentLayout = AttachmentLayoutTypes.Carousel;
return timeInfoCard;
}
catch (Exception ex)
{
throw new NotImplementedException(ex.Message, ex.InnerException);
}
}
輸出:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.