我有一个机器人,它使用 .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 机器人构建器应用程序可以生成 JSON 文件,则 Bot Framework 可以使用这些文件来自动构建机器人。不起作用,因为没有 LUIS.ai 那样的智能。
继续使用 Bot Framework,但放弃 LUIS,并基于 Node.js 语言处理库构建单独的 Web 服务来确定意图。可能有效,也可能无效,可能不如 LUIS 聪明,而且可能是杀伤力过大。
重写中的方法LuisDialog
从中选择意图LuisResponse
,以便用我自己的方式来决定意图(但如何?)。
此时我已经没有想法了,任何指示都将不胜感激。
首先,LUIS.ai 提供了一个API https://dev.projectoxford.ai/docs/services/56d95961e597ed0f04b76e58/operations/5739a8c71984550500affdfa您可以使用它来自动化培训。而且,here https://github.com/GanadiniAkshay/LUISTrainerLuis Trainer 完全是用 Python 编写的,针对的 API 就可以做到这一点。
最简单的一个可能是您在#1 中描述的那个:您可以自动化训练(如上所述),但如果提供新意图,您仍然需要部署新版本的机器人。一件事是让用户用新的话语训练现有模型,另一件事是让他们创建模型:)
可能很难跳过编写后端代码(我根本不会自动化)
这是一个潜在的想法(但不确定它是否有效)。您需要 2 个 Luis 模型。
- 使用您当前的模型,用户将能够使用新的话语进行训练。
- 第二种模型专门用于根据用户的新意图进行“扩展”。
如果以这种方式将其分开,您也许能够研究第二个 LUIS 模型的“插件”架构。因此,您的应用程序以某种方式动态加载第二个模型所在的程序集。
一旦完成,您就可以专注于为第二个 Luis 模型编写后端代码,而不必担心机器人/第一个模型。您应该能够用第二个 Luis 模型替换该程序集,并能够在机器人中检测该程序集是否有新版本并替换应用程序域中的当前版本。
正如我所说,这只是我与您进行头脑风暴时的一个想法。听起来有点复杂,而且它并不能解决您所有的担忧;因为您仍然需要编写代码(无论如何,您最终都必须这样做)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)