首页 > 解决方案 > 如何在本地在机器人框架中添加 LUIS 意图?

问题描述

我正在使用机器人框架开发一个聊天机器人。我已经开发了一个基本的 Node Echo Bot 和基本的 QnA Bot。我目前正在开发一个 LUIS 机器人,我已经在luis.ai上创建了一个意图。我在 Azure 上创建了机器人并下载了源代码。现在,我的导师让我开发一个与 LUIS 应用程序配合使用的机器人。我怎样才能做到这一点?

标签: node.jsbotframeworkazure-language-understanding

解决方案


我不完全确定我是否理解您未经编辑的问题,因此我会以两种解释方式回答它。

将 LUIS 添加到机器人

请参阅Core Bot 示例以供参考。

  1. 将 LUIS 连接信息添加到.env文件中
MicrosoftAppId=
MicrosoftAppPassword=
LuisAppId=<AddMe>
LuisAPIKey=<AddMe>
LuisAPIHostName=<AddMe>
  1. 实例化一个 LuisRecognizer
const recognizer = new LuisRecognizer({
    applicationId: process.env.LuisAppId,
    endpointKey: process.env.LuisAPIKey,
    endpoint: `https://${ process.env.LuisAPIHostName }`
}, {}, true);
  1. 获取用户输入的结果和意图
const recognizerResult = await recognizer.recognize(context);

const intent = LuisRecognizer.topIntent(recognizerResult);

注意:Core Bot 在luisHelper.js中完成所有这些工作。然后它用类似的东西调用它bookingDetails = await LuisHelper.executeLuisQuery(this.logger, stepContext.context);。你也可以这样做。如果您想了解每条用户消息的意图,另一种方法是在 中包含步骤 2 和 3 ( recognizer, recognizerResult, intent) onMessage()

附加说明:如果要从预构建示例开始使用 LUIS,以下示例使用 LUIS:

在本地运行 LUIS

按照LUIS 容器操作方法从 Docker 容器中运行 LUIS。

在此处输入图像描述

基本上,您无需在 上查询您的应用程序luis.ai,而是将您的机器人设置为查询您的 docker 容器,该容器正在运行您的 LUIS 应用程序的导出的容器化版本。如果您需要在机器人运行一段时间后提高应用的预测准确性,您可以将容器中的查询日志重新上传回 LUIS。

这是一个相当困难和广泛的教程,所以我在这里发布它是没有意义的。如果您遇到麻烦,请随时打开新的 Stack Overflow 票证。


推荐阅读