C# 如何在MicrosoftBot框架中的LuisDialog中获取LUIS上下文ID
我试图为我的LUIS提供当查询有缺失项时所需的缺失信息。比如说 如果有人说,我想下订单。为此,我需要知道有多少用户。当确保我正在与此查询对话时,LUIS on会自动创建上下文id 当LUIS对话框提示缺少内容的问题时,如何在Bot框架中获得或说出相同的内容 这是密码C# 如何在MicrosoftBot框架中的LuisDialog中获取LUIS上下文ID,c#,botframework,C#,Botframework,我试图为我的LUIS提供当查询有缺失项时所需的缺失信息。比如说 如果有人说,我想下订单。为此,我需要知道有多少用户。当确保我正在与此查询对话时,LUIS on会自动创建上下文id 当LUIS对话框提示缺少内容的问题时,如何在Bot框架中获得或说出相同的内容 这是密码 [Serializable] [LuisModel("something", "something")] public class SimpleLUISDialog : LuisDialog<object> { [Lu
[Serializable]
[LuisModel("something", "something")]
public class SimpleLUISDialog : LuisDialog<object>
{
[LuisIntent("GetQuote")]
public async Task GetQuote(IDialogContext context, LuisResult result)
{
PromptDialog.text(context, GetChildNumberAsync, "How many Users will you be adding ?", "Sorry please try again", 2);
}
}
private async Task GetUserNumberAsync(IDialogContext context, IAwaitable<string> result)
{
// send to LUIS again for checking the entity for number of users with Context ID
}
}
看起来您正在LuisModel中使用ActionParameters,如果原始消息中没有提供这些参数,那么您正在尝试实现它们 虽然您可以像前面解释的那样进行一些“手动破解”来再次调用LUIS(不是使用上下文id,而是模拟一条新消息),但我不建议这样做 相反,我鼓励您看看BotBuilder的分支(参见11月11日的提交),其中BotFramework团队添加了对LUIS v2 API的支持,并添加了一些全新的功能;其中一个,我相信正是你想要的 通过最新的更改,如果您的意图需要参数而这些参数未提供,LuisDialog现在将起作用。在这种情况下,LuisDialog将使用您在action参数中定义的提示消息和a,并向用户询问缺少的参数 上次我检查时,它还没有作为NuGet软件包发布;但它可能值得再次检查。在最坏的情况下,您可以临时下载BotBuilder的代码并在项目中引用它 您需要在LuisModel属性中指定API版本才能开始起诉它
[LuisModel("something", "something", LuisApiVersion.V2)]
[LuisModel("something", "something", LuisApiVersion.V2)]