【问题标题】:Luis intent handler is throwing exception into bot frameworkLuis 意图处理程序将异常抛出到机器人框架中
【发布时间】:2017-09-22 11:58:28
【问题描述】:

我正在尝试在 LUIS 对话框中查找活动文本。我正在使用 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);
}

但这会引发异常:

“文本/纯文本”类型的文件

谁能告诉我为什么会这样?我也放了一个断点,但没有命中。

【问题讨论】:

  • 我无法重现,您能否发布更多代码或将您的项目放入 repo 中?
  • 您使用的是哪个版本的 SDK?

标签: c# botframework azure-language-understanding


【解决方案1】:

由于意图处理程序签名,您会看到该问题。注意IAwaitable&lt;IMessageActivity&gt; 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&lt;IMessageActivity&gt;。或者,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);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-28
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多