Luis 意图处理程序正在向机器人框架抛出异常
Luis intent handler is throwing exception into bot framework
我正在尝试在 LUIS 对话框中找出 activity 文本。我正在使用 LUIS 意图处理程序:
[LuisIntent("")]
public async Task None(IDialogContext context, IAwaitable<IMessageActivity> result)
{
await context.PostAsync("I have no idea what you are talking about.");
context.Wait(MessageReceived);
}
但这会引发异常:
File of type 'text/plain'
谁能告诉我为什么会这样?我也设置了一个断点,但它没有被击中。
您看到这个问题是因为意图处理程序签名。注意 IAwaitable<IMessageActivity> result
。像这样重写就可以了:
[LuisIntent("")]
public async Task None(IDialogContext context, LuisResult result)
{
await context.PostAsync("I have no idea what you are talking about.");
context.Wait(MessageReceived);
}
您应该使用 LuisResult
而不是 IAwaitable<IMessageActivity>
。或者,LuisDialog
确实以具有三个参数的意图处理程序重载为目标,这也可以工作:
[LuisIntent("")]
public async Task None(IDialogContext context, IAwaitable<IMessageActivity> activity, LuisResult result)
{
await context.PostAsync("I have no idea what you are talking about.");
context.Wait(MessageReceived);
}
我正在尝试在 LUIS 对话框中找出 activity 文本。我正在使用 LUIS 意图处理程序:
[LuisIntent("")]
public async Task None(IDialogContext context, IAwaitable<IMessageActivity> result)
{
await context.PostAsync("I have no idea what you are talking about.");
context.Wait(MessageReceived);
}
但这会引发异常:
File of type 'text/plain'
谁能告诉我为什么会这样?我也设置了一个断点,但它没有被击中。
您看到这个问题是因为意图处理程序签名。注意 IAwaitable<IMessageActivity> result
。像这样重写就可以了:
[LuisIntent("")]
public async Task None(IDialogContext context, LuisResult result)
{
await context.PostAsync("I have no idea what you are talking about.");
context.Wait(MessageReceived);
}
您应该使用 LuisResult
而不是 IAwaitable<IMessageActivity>
。或者,LuisDialog
确实以具有三个参数的意图处理程序重载为目标,这也可以工作:
[LuisIntent("")]
public async Task None(IDialogContext context, IAwaitable<IMessageActivity> activity, LuisResult result)
{
await context.PostAsync("I have no idea what you are talking about.");
context.Wait(MessageReceived);
}