我有一个机器人,它使用.NET,MS Bot Framework和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
意图的方法,以便用我自己的方式决定意图(但是如何?)。
在这一点上,我没有想法,任何指针都将非常感激。
答案 0 :(得分:6)
首先,LUIS.ai提供API,您可以使用它来自动化培训。此外,here是完全用Python编写的Luis Trainer,而不是那样做的API。
最简单的一个,可能是您在#1中描述的那个:您可以自动化培训(如上所述)但如果提供新的意图,您仍然必须部署新版本的机器人。有一件事是让用户用新的utteraces训练现有的模型,另一件事就是让他们创建模型:)
可能很难省略编写后端代码(我根本不会将其自动化)
这是一个潜在的想法(不确定它是否会起作用)。你需要2个Luis模型。
如果你以这种方式将其分开,你或许可以查看一个"插件"第二个LUIS模型的架构。所以,你的应用程序以某种方式加载了第二个模型所在的组件。
一旦你掌握了这一点,你就可以专注于为你的第二个Luis模型编写后端代码,而不必担心机器人/第一个模型。您应该能够使用第二个Luis模型替换程序集,并且能够在机器人中检测是否有该程序集的新版本并替换应用程序域中的当前版本。
正如我所说的那样,只是一个想法,因为我正在和你一起集思广益。听起来有点复杂,并没有解决你所有的问题;因为你仍然需要编写代码(在任何情况下,你最终都必须这样做)
答案 1 :(得分:0)
我正在通过挑战项目(培训)来自动创建专门针对Luis.ai模型的聊天机器人,使用简单的旧javascript和Web服务到Luis。
我查看了Bot框架,它自动化太麻烦了(我希望X的客户在没有编码的情况下创建一个Chat Bot)。我还想添加自己的“卡片”类型。 (html小部件)做得更多,并且可以由零编码技能的人轻松配置。
在我的代码后面调用Luis.ai/Cognitive Services API,json响应返回到我自己的规则引擎。在以下URL上单击页面上的 LUIS API 链接以打开Luis API控制台,您可以在其中测试并训练模型。您需要的所有端点都在这里......
https://dev.projectoxford.ai/docs/services/
根据该页面上的各种端点,您可以使用asp.net中的WebClient来撤回响应。所以在我的测试中,我在页面上有按钮,可以将话语推送到模型,拉回实体,创建分层实体等等。请查看http://onlinebotbuilder.com,了解产品的意图如何动态插入购物车。
当你的工具建成并且话语开始到来时,Luis.ai将存储它们并通过Suggest选项卡(在Luis.ai)它会向你寻求指导......不幸的是我不认为你可以将控制权交给您的客户,除非他们是您所在领域的专家(他们了解哪个话语属于哪个意图)。您不需要关闭应用程序,只需定期对其进行培训,以根据客户的意见改进模型......很快您就可以根据自己的意图使模型运行良好。
希望有所帮助。