如何在没有编程技能的情况下创建自己的机器人并将其连接到Yandex.Alice


正如我们在第一篇文章中所写,Just AI的我们专门研究人工智能技术,以理解自然语言(NLU)。 我们有自己的平台来开发文本和语音对话助手。 该平台已开发出用于解决NLP问题的功能(日志聚类,搜索语义上接近的短语等)及其自身的开发语言(仅AI DSL)。 语言开发人员团队使用DSL编写chatbot脚本代码,用于与外部系统通信的集成模块以及自动测试。

在本文中,我们将讨论为在不了解DSL和编程技能的情况下为不同平台(包括Yandex Dialogs)开发机器人而创建的工具。

大型项目,例如支持电信运营商客户的自动信息提供者或功能全面的语音助手,可以包括1000多个分类的用户意图,数十个提取实体的目录,并包括与多个外部服务的集成。 因此,开发由多个语言学家和开发人员同时进行,使用版本控制系统和工具进行压力测试,并由撰稿人和UX设计人员参与。

最初,我们确定开发方法的复杂性正是聊天机器人开发人员和企业所需要的,因为创建智能聊天机器人并不是一件容易且耗费资源的任务。 我们构建了一个相当复杂的体系结构来关闭所有可能的案例,甚至在平台中创建了可视化编辑器,以使客户更轻松地管理聊天机器人逻辑。 但是实际上,在很多情况下,我们仍然经常遇到这样一个事实,即使是已经为自动化计划了预算的准备好的企业也会减慢实施速度,并且不了解如何正确组成ToR并正确计划AI在其流程中的实施。

我们希望使公司更轻松地开始使用人工智能,同时为他们提供一种工具,该工具将立即使我们能够开始测试该技术。 同时,产品必须能够理解自然语言(普通用户的要求),并且不能对典型问题(“我不理解,请重复您的问题”)回答单音节。 总的来说,有必要隐藏我们企业平台的酷技术,以促进俄罗斯企业进入人工智能世界。 通常,有必要为用户制作产品,以便您可以配置,触摸和查看其工作原理。 因此,平台的内部隐藏在设计师的外壳下。

无论我们是否成功,都可以帮助您判断(在文章末尾提供设计者注册和社区通信的链接)。 结果,出现了Aimylogic产品-一个视觉设计师,您可以在其中组装一个智能聊天机器人,该机器人可以从简单的块中理解自然语言:用户副本,漫游器响应,对外部系统的调用。 与Aimylogic一起工作不需要DSL核心平台的知识,编写用于识别意图和自动测试的模式的技能。

案例:为人事部门创建聊天机器人


今天,我们来看一个简单的案例:为人力资源创建一个聊天机器人,该机器人可以通过Telegram,公司的网站或Yandex.Alisa向员工咨询公司的内部流程,可以接受申请(休假,VHI等)并将其发送到Trello的董事会。

整个过程可以分为以下几个阶段:

  1. 创建与公司员工进行人力资源机器人对话的脚本;
  2. 用户请求收集配置(我们将使用Trello);
  3. 机器人测试;
  4. bot在Telegram,网站或Yandex.Alice中发布。

所以,首先是...

1.创建用于与员工沟通的脚本


现在,在Aimylogic中,已经有一个用于HR的bot模板,其中包含有关该bot将立即理解的有关薪金项目,假期,保险和其他问题的对话框。 因此,您可以使用现成的脚本,并且可以根据需要自行更改。 我们描述了如何制作此模板。

在Aimylogic中创建脚本的过程归结为添加块并在它们之间建立过渡。

上面的屏幕截图显示,机器人脚本以问候语开头。 为了向用户打招呼并解释他可以向机器人发出的问题,我们使用文本块。 您可以添加图片。

在创建带有欢迎文本的代码块之后,我们将在机器人中添加“短语”代码块,这使我们可以使用用户请求示例来训练该机器人。 在“短语”块中,添加与用户的意图(意图)相对应的单独的短语组,并在每个短语中填充查询示例。

在此示例中,我们将创建几组短语:

  • 工资项目的联系;
  • VHI公司计划;
  • 假期申请;
  • 从会计和人力资源获得证书;
  • 功率补偿。

在短语组中,我们根据员工对人力资源部门的实际要求定义示例集。 例如,对于“ VHI企业计划”组,这些请求是:

  • 如何申请DMS?
  • 我对健康保险感兴趣
  • 如何获得VHI政策?

短语组可以随时通过示例进行补充,使您可以在操作过程中快速重新训练机器人。

对于每组短语,在脚本中创建自己的动作序列。 例如,对于短语“ Vacation Application”,我们实现了来自用户的其他数据请求,并将他的应用程序保存在Trello中,以供人事部门员工进行进一步处理。

要向用户请求数据,我们将在脚本中顺序添加块,以请求雇员的姓名和所需的休假日期。



用户输入的信息存储在变量$ Name和$ vacation_date中,并可以在脚本中进一步使用。 例如,将此数据发送到外部系统。

在以后的Aimylogic版本中,用于接收各种类型(文本,数字,电话号码)的数据,系统中将出现相应的块,该块将自动验证用户输入。

现在,我们将配置该bot与Trello的集成,其中将保存从用户那里收集的应用程序。

2.在Trello中保存用户请求


Trello提供了一个用于与其工具集成的API,但是有些服务(包括免费的)使您可以在不浪费时间编写集成代码的情况下使用它们。 IFTTT就是这样一种服务。 我们在Aimylogic中创建的聊天机器人将数据发送到IFTTT,并出现在Trello中。

为此,请在IFTTT中创建一个Webhook小程序,当该小程序从bot收到HTTP请求时,会将请求主体中的数据放到Trello的板上。 在Aimylogic的Bot脚本中,添加“ HTTP request”块,该块会将数据传输到applet。

小程序创建


在IFTTT界面中,创建一个新的小程序(“我的小程序”->“新小程序”),设置该小程序要触发的触发器(通过单击+ this )。 在出现的搜索中,键入“ webhook”,然后选择名称为“ Webhooks”的触发器。

单击“接收Web请求”并设置触发事件的名称(在“事件名称”字段中以拉丁文写成,且不留空格)。 点击“创建触发器”。

现在,我们配置机器人从刚配置的脚本发送对小程序的请求时将执行的操作-单击小程序中的“ that ”。

使用Trello配置IFTTT集成


在IFTTT中点击“ that ”后,搜索再次出现。 我们在那寻找Trello并登录到该服务。

在Trello中授予访问您的帐户的权限后,请在IFTTT中选择“创建卡”操作。

接下来,在“标题”字段(卡的名称)中,指出将要显示卡的板,并指示“ Value1”-这是来自机器人请求主体的变量,将在其中传输员工应用程序的本质(“ <员工名称>要休假<假期>”)。
根据需要配置所有内容后,点击“创建操作”。 接下来是“完成”。
现在,只要机器人将HTTP请求发送到我们配置的Webhook,IFTTT都会从该请求中获取“ Value1”变量,并自动将具有该名称的卡添加到Trello。

在IFTTT中获取Webhook地址


也许这是集成中最重要的部分。

单击IFTTT页面顶部的“搜索”菜单。 接下来,搜索“ webhook”。 单击找到的Webhooks。 接下来,单击“设置”。

将打开一个带有URL的页面。 这还不是webhook地址! 您需要复制此URL并在新的浏览器选项卡中将其打开。


Webhook测试页面打开。 在这里,您可以填写触发事件的名称(我们在“创建小程序”部分中创建小程序时考虑的事件)和变量“ Value1”的值。 现在,如果单击“测试”,则标题中具有变量“ Value1”的值的卡将被添加到Trello。


现在复制生成的Webhook URL(在最后一行中的“ Test it”按钮上方)- 这是我们必须在bot的HTTP请求中使用的Webhook地址

在Aimylogic中配置HTTP请求


当我们已经从用户那里收集了数据时(在变量$ Name和$ vacation_date中),我们向脚本添加了一个带有HTTP请求的块。

在HTTP请求设置中,我们指定从IFTTT收到的Webhook地址作为URL。


我们将“ Value1”变量的值放置在请求正文中-我们在其中用存储用户名的变量$ Name和存储休假日期的变量$ Vacation_date形成文本。 也就是说,结果应该是这样的:

{ "value1" : "$Name     $vacation_date" } 

现在,当执行此请求时,机器人将在请求正文中替换$ Name和$ vacation_date值,并将请求发送到IFTTT applet。 反过来,这将在Trello板上创建卡。

3.测试机器人


准备好对话脚本后,您可以通过单击“测试”按钮立即在Aimylogic中对其进行检查。 屏幕上会出现一个小部件,您可以在其中与机器人聊天。 如果脚本提供的话,该小部件既支持文本输入,也支持使用按钮。 例如,在爱丽丝(Alice)中,习惯上提供用户按钮作为提示以使他熟悉该技能。

在此阶段,您可以调试对话并检查对话的正确性和可理解性,而无需使用其他原型工具。

请注意,由于使用了NLU技术(包括匹配的同义词,正常单词形式,其向量表示形式和语法查询结构),该机器人不仅可以理解与示例匹配的短语,而且在含义上也接近它们。 如果这没有发生,您可以通过扩展相关示例列表来训练机器人。

现在,聊天机器人可以与员工进行通信并将数据保存在Trello中。 仍然可以将机器人放置在所需的通道中。

4.发布聊天机器人


使用Aimylogic,可以将创建的漫游器放置在一个或多个通道中。 当前在Aimylogic中可用:该站点的聊天小部件,Telegram或语音助手Yandex.Alice。

不久我们将添加新的渠道:VK,Facebook,Slack等。 HR bot的行为场景在任何地方都几乎相同,所有渠道的应用程序都将发送到Trello板。


根据选定的频道,Aimylogic将自动生成一个脚本,该脚本将插入到网站或Webhook地址中,以在Yandex.Dialogs中指定。 要使用Telegram,足以表明从BotFather收到的Telegram机器人的令牌。

Aimylogic显示与机器人连接的所有通道及其状态。

我在哪里可以测试?


我们将以beta模式打开Aimylogic。 老实说,它仍然是“潮湿”的,但是您可以对其进行测试并尝试不同的情况:在不同渠道中创建对话框脚本,尝试连接外部系统,构建对自然语言有所了解的FAQ机器人。

下一版本的发布将包括命名实体的目录,这将大大扩展产品的功能。

我们开始制作Aimylogic,试图让用户更轻松地在我们的平台上创建简单的机器人,同时保持对其主要功能-NLU的访问,并易于与外部系统和渠道集成。 我们将继续开发该产品,改进其用户体验,并从主平台中引入新的有用功能。 我们期待您的反馈和建议。

您可以此处测试平台: app.aimylogic.com

您可以在电报频道中与我们或其他开发人员聊天。 或者,只需在电报搜索中键入“ Aimylogic”。

Source: https://habr.com/ru/post/zh-CN412557/


All Articles