如何使用 Dispatch 查找两个 LUIS 应用程序的意图?

how to use Dispatch to find intent of two LUIS apps?

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

有两个 luis 技能(HomeAutomation、Weather)和一个 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(例如,天气),系统会说无法识别的意图:

如果我没理解错的话,你有两个 LUIS 模型要使用,它们有自己的应用程序 ID。如果你这样做,你需要使用 Dispatch Command Line Tool as linked in this tutorial。这将创建(在您的情况下)从其他两个模型创建的第三个 LUIS 模型。 THIS 就是您要在定义 LUIS 模型的 DispatchBot class 中设置的模型。我相信你只能通过命令行设置这种类型的 LUIS 应用程序,如果你添加到底层 LUIS 应用程序,你也需要通过命令行更新它。

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

TL;DR 您只使用一个 LUIS 应用程序进行调度,使用 Dispatch Command Line Tool 或手动创建具有所有必需意图的单个 LUIS 应用程序。