LuisDialog每次返回InvalidIntentHandlerException

使用Fiddler,我可以看到当查询传递给我的机器人应用程序时,LUIS会返回正确的JSON对象。它甚至包含了正确的实体和意图列表。然而,由于我的类设置可能有误,每次调用时我都会收到InvalidIntentHandlerException,这阻止了我向用户发送消息。我的意图名称与我在LUIS中看到的一致,所以我不知道什么被认为是无效的。

以下是结构:

namespace BotApplication1.Dialogs{    [LuisModel("value...", "value...",)] //已移除,但在代码中有效,因为Fiddler显示这会导致正确的端点    [Serializable]    public class MyDialog : LuisDialog<object> //也尝试了LuisDialog<string>    {        [LuisIntent("None")]        public async Task None(IDialogContext context, LuisServiceResult result) //我还尝试了LuisResult而不是LuisServiceResult,结果没有变化。        {            await context.PostAsync("我不明白。");            await Task.Delay(1000);            await context.PostAsync("你在说什么?");        }        [LuisIntent("MessageDelete")]        public async Task MessageDelete(IDialogContext context, LuisServiceResult result)        {            await context.PostAsync($"消息已删除!");        }    }}

调试输出:

Exception thrown: 'Microsoft.Bot.Builder.Dialogs.InvalidIntentHandlerException' in mscorlib.dll错误: None //由LuisDialog类返回给MessageController的错误。即使我可以看到LUIS返回了一个有效的意图而不是"None",它仍然显示"None"

编辑:另外,我在输出中看到了这个,但我不确定这是否重要:Service url localhost:6986 is not trusted and JwtToken cannot be sent to it.这与应用程序连接的端口不同。


回答:

当我将所有对LuisServiceResult的引用替换为LuisResult时,错误消失了,我的意图方法开始生效。我仍然希望能够使用LuisServiceResult,因为它包含更多信息;然而,这是作业的一部分,所以这满足了我的immediate需要。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注