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