5

我有一个使用 .NET、MS Bot Framework 和 LUIS.ai 的机器人。

一切都很好,除了我需要为非技术用户提供一种方法来训练机器人并教它新事物,即 LUIS.ai 中的新意图。

换句话说,假设现在机器人可以用包含方向的简单短语来回答诸如“嘿,机器人我在哪里可以喝咖啡”和“我在哪里可以买衣服”之类的消息。非技术用户也需要能够训练它回答“我在哪里可以买到食物”。

这是我考虑过的:

  • 继续使用 LUIS.ai。不起作用,因为 LUIS.ai 没有 API。它最好的功能是改进现有意图的 GUI,以及上传应用程序/短语列表功能。如果我编写的某个应用程序可以生成带有应用程序的 JSON 文件,则该过程可以是半自动化的;但是,仍然需要处理新意图的后端代码,并且必须由 C# 编码器实现。

    如果我从 C# 切换到 Node.js,它可以工作吗?然后理论上我将能够自动生成代码文件/意图处理程序。

  • Azure 机器人服务。似乎它没有非技术界面,只是一个基于浏览器的 IDE。

  • 完全放弃 Bot Framework 并使用第三方工具,例如 motion.ai。不起作用,因为没有 LUIS.ai 提供的“智力”。

  • 使用作为 Bot Framework 一部分的表单流。如果我的 GUI bot builder 应用程序可以生成 JSON 文件,则 Bot Framework 可以使用这些文件自动构建 bot。不起作用,因为没有 LUIS.ai 中的智力。

  • 继续使用 Bot Framework,但放弃 LUIS 并基于 node.js 语言处理库构建单独的 Web 服务来确定意图。可能有效,也可能无效,可能不如 LUIS 聪明,而且可能是矫枉过正。

  • 覆盖从 中LuisDialog选择意图的方法LuisResponse,以便使用我自己的方式来决定意图(但如何?)。

在这一点上,我没有想法,任何指针都将不胜感激。

4

2 回答 2

6

首先,LUIS.ai 提供了一个API,您可以使用它来自动化训练。此外,这里是完全用 Python 编写的 Luis Trainer,针对的只是执行此操作的 API。

最简单的一种,可能是您在 #1 中描述的那种:您可以自动化训练(如上所述),但如果提供了新的意图,您仍然必须部署新版本的机器人。一件事是让用户用新的话语训练现有模型,另一件完全不同的事情是让他们创建模型:)

可能很难跳过编写后端代码(我根本不会自动化)

这是一个潜在的想法(但不确定它是否可行)。您将需要 2 个 Luis 模型。

  • 使用您当前的模型,用户将能够使用新的话语进行训练。
  • 第二种模式是专门为用户“扩展”新意图而设计的。

如果您以这种方式将其分开,您也许可以研究第二个 LUIS 模型的“插件”体系结构。因此,您的应用程序会以某种方式动态加载第二个模型所在的程序集。

一旦你有了它,你就可以专注于为你的第二个 Luis 模型编写后端代码,而不必担心机器人/第一个模型。您应该能够用第二个 Luis 模型替换程序集,并且能够在机器人中检测是否有该程序集的新版本并替换应用程序域中的当前版本。

正如我所说,这只是一个想法,因为我正在与您进行头脑风暴。听起来有点复杂,并没有解决您所有的问题;因为您仍然需要编写代码(无论如何,您最终都必须这样做)

于 2016-12-06T09:33:46.947 回答
0

我正在通过一个挑战项目(培训)来自动创建聊天机器人,该聊天机器人专门针对 Luis.ai 模型,使用普通的旧 JavaScript 和 Luis 的 Web 服务。

我查看了 Bot Framework,它太麻烦而无法自动化(我希望 X 数量的客户无需编码即可创建聊天机器人)。我还想添加我自己类型的“卡片”(html 小部件),它可以做更多事情,并且可以由零编码技能的人轻松配置。

对 Luis.ai/Cognitive Services API 的调用是在我的代码中进行的,并且 json 响应返回到我自己的规则引擎。在以下 URL 上,单击页面上的LUIS API链接以打开 Luis API 控制台,您可以在其中测试和训练您的模型。您需要的所有端点都在这里...

https://dev.projectoxford.ai/docs/services/

根据该页面上的各种端点,您可以使用 asp.net 中的 WebClient 来拉回响应。所以在我的测试中,我在页面上有按钮来将话语推送到模型、拉回实体、创建分层实体等等。查看http://onlinebotbuilder.com以了解产品意图如何动态插入购物车。

When your tool is built and utterances start to arrive, Luis.ai will store them and via the Suggest tab (at Luis.ai) it will ask you for guidance...Unfortunately I don't think you could give that control over to your customers, unless they are experts in your domain (they understand which utterance belongs to which intent). You don't need to take your app down, just train it periodically to improve the Model based on your customers input...soon enough you will have your model working well based on your intents.

Hope that helps.

于 2016-12-13T16:30:23.047 回答