首页 > 解决方案 > 如何使用 Dispatch 查找两个 LUIS 应用程序的意图?

问题描述

我想用多个 LUIS 和 QnA 模型构建一个聊天机器人(https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-tutorial-dispatch?view=azure-bot-service-4.0 &tabs=python)。

有两种 luis 技能(家庭自动化、天气)和一种 qna 技能(知识机器人)。

我已经构建了两个 luis App ID 和两个 Authoring Key。我已经构建了一个 qna maker App ID 和 Authoring Key。

但在 config.py 中,我只喜欢一个 LUIS_APP_ID 和一个 LUIS_API_KEY。 在此处输入图像描述

如果有两个luis技能,为什么只有一个?我需要加一个吗?如果是这样,如何更改 bots/dispatch_bot.py?

在此处输入图像描述

顺便说一句,如果我只使用一个应用程序 ID(例如,天气),系统会显示无法识别的意图:

在此处输入图像描述

标签: azurebotframeworkazure-language-understanding

解决方案


如果我理解正确,您有两个要使用的 LUIS 模型,它们有自己的应用程序 ID。如果您这样做,您需要使用本教程中链接的Dispatch 命令行工具。这将创建(在您的情况下)从其他两个模型创建的第三个 LUIS 模型。就是您将在定义 LUIS 模型的类中设置的模型。我相信你只能通过命令行来设置这种类型的LUIS应用,如果你添加到底层的LUIS应用中,你也需要通过命令行来更新它。DispatchBot

作为替代方案,您可以只创建具有所有必需意图的单个 LUIS 应用程序(基本上是您的“手动”创建调度应用程序)。在此处的示例中,您将在同一个 LUIS 应用程序中同时拥有您的家庭自动化意图和天气意图。大多数时候,我认为这是有道理的,并且是我个人所做的。除非您需要在单独的 LUIS 意图中管理这些意图子集,否则我个人认为不需要添加另一层复杂性。如果您尝试创建一个会调用子机器人的机器人协调器,我会看到更多用例。

TL;DR您只使用一个 LUIS 应用进行调度,或者使用调度命令行工具或手动创建一个具有所有必需意图的单个 LUIS 应用。


推荐阅读