为什么在QnA中使用LUIS

时间:2018-09-21 09:59:17

标签: bots luis qnamaker

我有一个QnA,涉及将近200个问题。我的客户要求在我们的漫游器中添加LUIS服务。我试图与QnA和LUIS一起实施Bot,但我想知道我该说些什么?所有QnA问题?

这些问题真的很生动,它们之间没有规律。在这种情况下,如何使LUIS识别最匹配的问题?

请发表评论。

谢谢, 维维克

1 个答案:

答案 0 :(得分:2)

我认为您已经设计了自己的机器人,因此“ QnAMaker问题”只是多个意图中的一个LUIS意图。在这种情况下,只需添加任意数量的QnA问题话语,以便LUIS可以理解QnA问题与其他意图的区别。这可能需要大量的培训,因此您应该为置信度低而做好准备,因此,请计划一下以适应这种情况。

如果您有多个QnA知识库,每个知识库都有自己的LUIS意图,则可能需要添加每个问题作为发话,以确保LUIS知道每个问题适用于哪个特定知识库。但是,您也可以编写一些故障保护代码来解决LUIS猜错知识库的情况。它可能看起来像这样:

[LuisIntent("KnowledgeBase2")]
public async Task KnowledgeBase2Handler(IDialogContext context, LuisResult result)
{
    if (KnowledgeBaseContains(result.Query, knowledgeBase2))
    {
        // Answer the question with the correctly-selected knowledge base
    }
    else
    {
        foreach (var kb in knowledgeBases)
        {
            if (KnowledgeBaseContains(result.Query, kb))
            {
                // Answer the question with the correct knowledge base
                // that LUIS didn't guess
            }
        } 
    }
}