c#-BOT框架中的qnA和Luis之间的意图得分映射
作者:互联网
我有情况
在我的BOT框架中,我使用以下条件处理LUIS和QnA制造商
IF the INTENT is NONE – connect to the QnA maker and get answers
SOME OTHER INTENT – Corresponding answers will be triggered.
直到出现以下情况,它才能正常工作:
1)我在QnA Maker中有一个问题,例如-我如何搜索酒店
2)在纽瓦克(Newyark)的LUIS话语搜索酒店中-BOT框架为此目的提供了专用的API方法,并根据所选实体获取结果.
现在,我遇到了麻烦-如果用户键入“我如何搜索酒店”-这取决于LUIS意图,而不是QnA制造商-是否有更好的方法来处理这种情况而不会产生歧义
这是我的示例代码:
[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应用后,您可以尝试将其设置为correct top scoring intent,这可以帮助我们为语音选择正确的意图.
将其分配给正确的意图后,您可以重新培训您的LUIS并进行新的测试以检查其是否显示正确的结果.
另一种方法:在代码逻辑中处理它.如果要在达到GetHotel intent时在特定位置获取酒店,则可以检测返回的LUIS结果是否包含位置实体,如果没有返回位置实体,则可以进行QnA Maker调用以获取答案.
此外,如果可能,您可以修改代码结构和逻辑以首先致电QnA Maker,如果没有答案符合特定阈值分数,则致电LUIS.
标签:botframework,luis,qnamaker,c 来源: https://codeday.me/bug/20191025/1927774.html