Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在MicrosoftBot框架中的LuisDialog中获取LUIS上下文ID_C#_Botframework - Fatal编程技术网

C# 如何在MicrosoftBot框架中的LuisDialog中获取LUIS上下文ID

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

我试图为我的LUIS提供当查询有缺失项时所需的缺失信息。比如说

如果有人说,我想下订单。为此,我需要知道有多少用户。当确保我正在与此查询对话时,LUIS on会自动创建上下文id

当LUIS对话框提示缺少内容的问题时,如何在Bot框架中获得或说出相同的内容

这是密码

[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)]