Botframework 使用LUIS对话框时发生异常
我正在使用bot framework SDK 3.8.2/3.8.3,在与bot framework Emulator一起使用LUIS对话框时出现以下错误 有什么想法吗 例外情况: );HelpWhoIsWhoDetailsFromName[类型为'text/plain'的文件] 奇怪的是,不管我的意图是什么,这个例外有一个“;”前面 错误详细信息 控制器代码Botframework 使用LUIS对话框时发生异常,botframework,azure-language-understanding,Botframework,Azure Language Understanding,我正在使用bot framework SDK 3.8.2/3.8.3,在与bot framework Emulator一起使用LUIS对话框时出现以下错误 有什么想法吗 例外情况: );HelpWhoIsWhoDetailsFromName[类型为'text/plain'的文件] 奇怪的是,不管我的意图是什么,这个例外有一个“;”前面 错误详细信息 控制器代码 [BotAuthentication] public class MessagesController : ApiController
[BotAuthentication]
public class MessagesController : ApiController
{
/// <summary>
/// POST: api/Messages
/// Receive a message from a user and reply to it
/// </summary>
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
try
{
//await Conversation.SendAsync(activity, () => new Dialogs.RootDialog());
await Conversation.SendAsync(activity, () => new MatLuisDialog());
}
catch (Exception ex)
{
string ss = ex.ToString();
}
}
else
{
HandleSystemMessage(activity);
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
}
private Activity HandleSystemMessage(Activity message)
{
if (message.Type == ActivityTypes.DeleteUserData)
{
// Implement user deletion here
// If we handle user deletion, return a real message
}
else if (message.Type == ActivityTypes.ConversationUpdate)
{
// Handle conversation state changes, like members being added and removed
// Use Activity.MembersAdded and Activity.MembersRemoved and Activity.Action for info
// Not available in all channels
}
else if (message.Type == ActivityTypes.ContactRelationUpdate)
{
// Handle add/remove from contact lists
// Activity.From + Activity.Action represent what happened
}
else if (message.Type == ActivityTypes.Typing)
{
// Handle knowing tha the user is typing
}
else if (message.Type == ActivityTypes.Ping)
{
}
return null;
}
}
路易斯对话
[Serializable]
[LuisModel("XXXXXXX-0ab19c3225cb", "XXXXXXXX582c599915aea4")] // changed the keys
public class MatLuisDialog: LuisDialog<string>
{
[LuisIntent("HelpWhoIsWhoDetailsFromName")]
public async Task HelpWhoIsWhoDetailsFromName(IDialogContext context, LuisRequest result)
{
await context.PostAsync("From");
context.Wait(MessageReceived);
}
[LuisIntent("")]
[LuisIntent("None")]
public async Task None(IDialogContext context, LuisRequest result)
{
await context.PostAsync("No intent Found");
context.Wait(MessageReceived);
}
[LuisIntent("Help.Greetings")]
public async Task Greetings(IDialogContext context, LuisRequest result)
{
await context.PostAsync("Hi, Please enter your matone id, so that i can help you better.");
context.Wait(MessageReceived);
}
}
您的问题是在每个异步方法的参数中使用的是LuisRequest而不是LuisResult。据我所知,只有LuisResult有效。将代码更改为:
[Serializable]
[LuisModel("XXXXXXX-0ab19c3225cb", "XXXXXXXX582c599915aea4")] // changed the keys
public class MatLuisDialog: LuisDialog<string>
{
[LuisIntent("HelpWhoIsWhoDetailsFromName")]
public async Task HelpWhoIsWhoDetailsFromName(IDialogContext context, LuisResult result)
{
await context.PostAsync("From");
context.Wait(MessageReceived);
}
[LuisIntent("")]
[LuisIntent("None")]
public async Task None(IDialogContext context, LuisResult result)
{
await context.PostAsync("No intent Found");
context.Wait(MessageReceived);
}
[LuisIntent("Help.Greetings")]
public async Task Greetings(IDialogContext context, LuisResult result)
{
await context.PostAsync("Hi, Please enter your matone id, so that i can help you better.");
context.Wait(MessageReceived);
}
}
您是否添加了异常的所有详细信息?异常类型是什么?因为HelpWhoIsWhoDetailsFromName[类型为'text/plain'的文件]不是很清楚,所以您可以尝试注释其他两个意图并查看是否引发异常?是的,尝试运行代码时没有任何意图。奇怪的是,无论我的第一个LuisIntent名称是什么,错误是第一个意图名称,前缀是@Nicolas,完全的错误就在原来的帖子里你没有关于这个异常的更多细节我看到了堆栈跟踪?捕获期间有任何内部异常或其他事情吗?嗨@akshay,这解决了问题吗?如果是这样的话,你能将此标记为答案吗?
[Serializable]
[LuisModel("XXXXXXX-0ab19c3225cb", "XXXXXXXX582c599915aea4")] // changed the keys
public class MatLuisDialog: LuisDialog<string>
{
[LuisIntent("HelpWhoIsWhoDetailsFromName")]
public async Task HelpWhoIsWhoDetailsFromName(IDialogContext context, LuisResult result)
{
await context.PostAsync("From");
context.Wait(MessageReceived);
}
[LuisIntent("")]
[LuisIntent("None")]
public async Task None(IDialogContext context, LuisResult result)
{
await context.PostAsync("No intent Found");
context.Wait(MessageReceived);
}
[LuisIntent("Help.Greetings")]
public async Task Greetings(IDialogContext context, LuisResult result)
{
await context.PostAsync("Hi, Please enter your matone id, so that i can help you better.");
context.Wait(MessageReceived);
}
}