为LUIS.AI创建API或使用.JSON文件为非技术用户训练机器人

5 botframework azure-language-understanding botconnector

我有一个机器人,它使用.NET,MS Bot框架和LUIS.ai为它的智能.

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

换句话说,假设现在机器人可以用简单的包含方向的短语来回答诸如"嘿机器人我可以在哪里喝咖啡"和"我在哪里可以买些衣服"等消息.非技术用户需要能够训练它来回答"我在哪里可以获得一些食物".

这是我考虑过的:

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

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

  • Azure Bot服务.似乎它没有非技术接口,只是一个基于浏览器的IDE.

  • 彻底抛弃机器人框架并使用第三方工具,如motion.ai.不起作用,因为没有LUIS.ai提供的"智力".

  • 使用表单流程,它是Bot Framework的一部分.如果我的GUI bot构建器应用程序可以生成JSON文件,Bot Framework可以使用这些文件自动构建机器人.不起作用,因为没有像LUIS.ai那样的智力.

  • 继续使用Bot Framework,但抛弃LUIS并基于node.js语言处理库构建单独的Web服务以确定意图.可能或可能不起作用,可能不如LUIS聪明,并且可能是一种矫枉过正.

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

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

Eze*_*dib 6

首先,LUIS.ai提供了一个API,您可以使用它来自动化培训.此外,这里是Luis Trainer完全使用Python编写的,而API就是这样做的.

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

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

这是一个潜在的想法(不确定它是否会起作用).你需要2个Luis模型.

  • 一个与您当前的模型,用户将能够训练新的话语.
  • 第二个模型是专门用于"扩展"用户的新意图的模型.

如果以这种方式将其分开,您可以查看第二个LUIS模型的"插件"架构.所以,你的应用程序以某种方式加载了第二个模型所在的组件.

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

正如我所说,这只是一个想法,因为我正在和你一起集思广益.听起来有点复杂,并没有解决你所有的问题; 因为你仍然需要编写代码(在任何情况下,你最终都必须这样做)