代码之家  ›  专栏  ›  技术社区  ›  aakash jalodkar

Luis intent处理程序正在向bot框架中抛出异常

  •  2
  • aakash jalodkar  · 技术社区  · 7 年前

    我试图在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);
    }
    

    但这引发了一个例外:

    有人能告诉我为什么会这样吗?我还设置了一个断点,但没有命中。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Joe Mayo    7 年前

    您看到这个问题是因为意图处理程序签名。注意 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);
        }
    

    而不是 IAwaitable<IMessageActivity> ,您应该使用 LuisResult 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);
        }