Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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# BotFramework:如何为一个目的处理多个实体?_C#_Botframework_Azure Language Understanding - Fatal编程技术网

C# BotFramework:如何为一个目的处理多个实体?

C# BotFramework:如何为一个目的处理多个实体?,c#,botframework,azure-language-understanding,C#,Botframework,Azure Language Understanding,在LUIS中,我创建了一些检测到Intent的话语,并为其设置了3个不同的实体,例如,我试图构建一个机器人来检测与应用程序相关的用户问题。因此,当用户输入无法打开Android时我将意图设置为查找问题并将实体设置为1。产品2。问题3。错误。但是由于无法打开Android,因此不包含任何错误代码。我只得到了2个实体产品和问题。现在我想得到Error的值,如果没有错误,它将被存储为none。 以下是迄今为止的任务代码 [LuisIntent("Find_Issue")] public asy

LUIS
中,我创建了一些检测到
Intent
的话语,并为其设置了3个不同的
实体
,例如,我试图构建一个机器人来检测与应用程序相关的用户问题。因此,当用户输入
无法打开Android时
我将意图设置为
查找问题
并将
实体
设置为1。
产品
2。
问题
3。
错误
。但是由于
无法打开Android,因此
不包含任何错误代码。我只得到了
2个实体
产品
问题
。现在我想得到
Error
的值,如果没有错误,它将被存储为none。 以下是迄今为止的
任务
代码

[LuisIntent("Find_Issue")]
    public async Task getIssue(IDialogContext context, LuisResult result)
    {
        EntityRecommendation getProduct;
        EntityRecommendation getIssue;
        EntityRecommendation getError;
        if(result.TryFindEntity("Product",out getProduct))
        {
            chatdetails.issuedetails.product = getProduct.Entity;

        }
        if (result.TryFindEntity("Issue", out getIssue))
        {
            chatdetails.issuedetails.issue = getIssue.Entity;
        }
        if (result.TryFindEntity("Error", out getError))
        {
            chatdetails.issuedetails.error = getError.Entity;
        }

    }
chatdetails.IssuedDetails
是为存储
产品
问题
错误
的值而创建的类
我不知道如何进一步操作。

在LUIS中定义意图时,您还可以定义其动作参数。动作参数包括参数名称、实体类型、提示以及是否需要

然后,当使用最新版本的BotFramework Nuget包时,您的LuisDialog将自动检测到缺少所需的参数(如在错误实体的场景中),并将使用操作参数中定义的消息自动触发参数提示


有关此操作参数如何工作的技术细节,请检查。

您的路易斯代理需要更多的培训。如果用户的声明中没有任何与
错误相关的内容,那么它将不会得到…但是如果它没有找到
错误的内容,它应该向用户询问
错误相关的问题。@saikatmukherjee Train
查找意图
更多,如果有没有实体您可以使用formflow从用户处获取有关<代码>错误
问题的答案无需使用formflow。这是你可以用路易斯自动完成的事情。见下面我的答案。