C# BOT框架中qnA和Luis之间的意图得分映射

C# BOT框架中qnA和Luis之间的意图得分映射,c#,botframework,azure-language-understanding,qnamaker,C#,Botframework,Azure Language Understanding,Qnamaker,我有这个场景 在我的BOT框架中,我使用以下标准处理LUIS和qnamaker 如果目的是无-连接到QnA maker并获取答案 其他一些意图-将触发相应的答案 它工作得非常好,直到我以以下场景结束: 1) 我在QnA Maker中有一个问题-如何搜索酒店 2) 在LUIS话语搜索Newyark的酒店中,BOT框架为此目的提供了专门的API方法,并基于所选实体获得结果 现在,我遇到了麻烦-如果用户键入“我如何搜索酒店”-它指向LUIS intent而不是QnA maker-有没有更好的方法来处理

我有这个场景

在我的BOT框架中,我使用以下标准处理LUIS和qnamaker

如果目的是无-连接到QnA maker并获取答案
其他一些意图-将触发相应的答案

它工作得非常好,直到我以以下场景结束:

1) 我在QnA Maker中有一个问题-如何搜索酒店

2) 在LUIS话语搜索Newyark的酒店中,BOT框架为此目的提供了专门的API方法,并基于所选实体获得结果

现在,我遇到了麻烦-如果用户键入“我如何搜索酒店”-它指向LUIS intent而不是QnA maker-有没有更好的方法来处理这种情况而不产生歧义

以下是我的示例代码:

[LuisIntent("")]
[LuisIntent("None")]

///If NO INTENT MATCHES - CALL QnA Maker
public async Task None(IDialogContext context, LuisResult result)
{
    try
    { /* QnA maker call */ }



[LuisIntent("GetHotel")]

///If NO INTENT MATCHES - CALL QnA Maker
public async Task None(IDialogContext context, LuisResult result)
{
    try
    { /* API call to get the results */ }
你可以在更新和训练你的LUIS应用程序后尝试使用它,这可以帮助我们选择正确的表达意图

将其指定给正确的意图后,您可以重新训练您的LUI并进行新的测试,以检查它是否显示正确的结果

另一种方法:在代码逻辑中处理它。如果您想在到达GetHotel目的地时在特定位置获得酒店,您可以检测返回的LUIS结果是否包含
location
实体,如果没有
location
实体返回,您可以通过QnA Maker调用来检索答案


此外,如果可能的话,您可以修改您的代码结构和逻辑,首先调用QnA Maker,如果没有满足特定阈值分数的答案,则调用LUIS

回答得好,没什么可补充的!