3

我有场景

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

如果 INTENT 为 NONE - 连接到 QnA 制造商并获得答案
SOME OTHER INTENT - 将触发相应的答案。

在我最终遇到以下情况之前,它工作得非常好:

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

2) 在 LUIS 话语中搜索 Newyark中的酒店- 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 */ }
4

1 回答 1

4

您可以在更新和训练 LUIS 应用后尝试更正得分最高的意图,这可以帮助我们为话语选择正确的意图。

在此处输入图像描述

将其分配给正确的意图后,您可以重新训练 LUIS 并执行新测试以检查它是否显示正确的结果。

在此处输入图像描述

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

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

于 2018-03-02T02:59:56.833 回答