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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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