【发布时间】:2018-08-01 20:20:17
【问题描述】:
我正在尝试将 Luis 与 botframework 集成。从我所看到的(p/s. 仍然是新的),Luis 根据用户的文本输入处理响应。因此,当我尝试使用自适应卡片提交按钮操作时,我可以设置值但不能设置文本值。即使我在提交按钮上使用 dataJson,它仍然会产生空错误。我仍然对如何解决这个问题感到困惑。代码如下:
LuisIntent("Greet.Welcome")]
public async Task QueryGPN(IDialogContext context, IAwaitable<IMessageActivity> activity, LuisResult luisResult)
{
AdaptiveCard gpnCard = new AdaptiveCard();
gpnCard.Body.Add(new TextBlock()
{
Text = "GPN Lookup Form",
Size = TextSize.Large,
Weight = TextWeight.Bolder
});
TextInput gpnInput = new TextInput()
{
Id = "GPN",
IsMultiline = false
};
gpnCard.Body.Add(gpnInput);
gpnCard.Actions.Add(new SubmitAction()
{
Title = "Submit"
});
Attachment gpnCardAttachment = new Attachment()
{
ContentType = AdaptiveCard.ContentType,
Content = gpnCard
};
IMessageActivity gpnFormMessage = context.MakeMessage();
gpnFormMessage.Attachments = new List<Attachment>();
gpnFormMessage.Attachments.Add(gpnCardAttachment);
await context.PostAsync(gpnFormMessage);
context.Wait(this.MessageReceived);
}
[LuisIntent("Curse")]
public async Task Cursing(IDialogContext context, IAwaitable<IMessageActivity> activity, LuisResult luisResult)
{
Console.WriteLine("Curse");
await context.PostAsync($"Curse");
context.Wait(this.MessageReceived);
}
情况是我将在文本输入中输入诅咒,我希望机器人将重定向到“Curse”LuisIntent。
高级 TQVM。
【问题讨论】:
-
不清楚你在问什么。您能否详细说明您的功能案例是什么?你想在你的卡片上显示什么?看起来你在混合东西
-
在通过 TextInput 提交信息后收到的 Activity 是否有数据属性?
-
我只是根据我对场景的理解提供了一个答案
-
@NicolasR 这与卡无关。情况是我将文本输入到 AdaptiveCard textInput 中,我希望它能够达到 Luis Intent 之一。在这种情况下,我将诅咒放入其中,LuisIntent("Curse") 将被击中。我使用 SubmitAction 按钮的 DataJson 属性,这将填充 Activity 的 value 属性。据我了解,Luis 不会读取 Activity 的 value 属性而是 text 属性,所以我没有得到 LuisIntent 的命中
-
@StevenG。对。 textInput 文本填充在活动的“值”属性中。
标签: c# botframework azure-language-understanding adaptive-cards