机器人会帮助我们

机器人会帮助我们

一年前,我们心爱的人力资源部门要求我们编写一个聊天机器人,以帮助新员工适应公司。

我们预约的是我们不开发自己的产品,而是为客户提供全方位的开发服务。这个故事将是关于我们内部项目的,该项目的客户不是第三方公司,而是我们自己的人力资源。鉴于人员、资源和时间有限,主要任务是按时完成项目并发布产品。

首先,让我们描述一下必须解决的问题。

开发人员大多是内向的人,不喜欢说话;在电子邮件聊天中写下你的问题要容易得多。有了机器人,您不必考虑该问谁、给谁打电话、去哪里,以及在哪里寻找信息以及信息是否相关。

第二个问题是信息——信息量很大,来源不同,并不总是可用,需要不断添加和更新。

该公司有近500名员工,他们分布在不同的办公室、时区、俄罗斯甚至国外的城市,通常会遇到很多问题,因此另一个任务是减轻与最常见问题相关的人力资源人员的负担由员工。

还需要实现以下流程的自动化:新人加入公司、向新人的经理和导师发送消息、自动发送有关新人成功适应所需通过的课程和测试的提醒。

技术要求是根据业务需求形成的。

该机器人必须在 Skype 的基础上工作(历史上,他们在公司中使用它),因此选择了 Azura 上的服务。

为了限制对其的访问,我们开始通过 Skype 使用授权机制。
ParlAI库用于文本识别

配置、培训、调试、设置邮件和其他任务还需要管理门户网站。

机器人会帮助我们

在开展该项目的过程中,我们遇到了一些问题和困难。

例如,Azure 帐户存在技术问题。由于其服务中存在一些技术困难,微软不想激活我们的订阅。近两个月来,我们对此无能为力;微软支持最终放弃了,将我们发送给合作伙伴,他们成功地设置了一切并给了我们一个帐户。

最困难的阶段是项目的开始,当你需要选择我们将使用什么、架构是什么、如何以及在哪里存储数据、以及系统的组件和模块如何相互交互时。

在我们的案例中,启动任何项目的基本常见问题因人员配置而变得更加复杂。我们业务的具体情况是,与商业项目不同,内部项目通常是由在所需领域没有足够知识的开发人员进行的 - 他们只是命运的安排,最终坐在板凳上等待下一个项目很酷的大型商业项目。按理说,在这种情况下,事情的动机也很困难。生产力下降,团队经常闲置,因此你必须说服(激励)或改变这个人。当更换开发人员时,您需要进行培训、转移知识,本质上是重新启动项目。每个新开发人员都以自己的方式看待架构,并批评以前的开发人员所做的决定和其他人的代码。重写从头开始。

这种情况持续了大约六个月。我们只是原地踏步,重构代码,并没有编写任何新内容。

此外,对于内部项目,通常几乎没有文档,很难理解每个时间点需要做什么,以及当前的优先事项是什么。需要组建一个常设团队,建立流程,并进行至少三个月的规划和评估。但是,当项目不是商业性的,这意味着您需要投入最少的工时,同时获得不比外部客户差的结果时,如何做到这一点呢?

我们已经确定了参与该项目开发、熟悉该项目并希望开展工作的资源库。我们制定了项目人员聘用时间表。我们对工作进行了评估和协调,并将这些工作放入主要项目之间的“空隙”中。 4 个月后,我们收到了该应用程序的工作原型。

现在让我们更详细地讨论一下机器人的功能、架构和技术解决方案。

HR 的主要要求之一是识别用户编写的文本以正确回答问题。你可以写信给他:我想去度假,我想去度假,或者我想去度假,他都会理解并做出相应的回应。或者突然一名员工的椅子坏了,他想写“椅子坏了”或“我的椅子裂了”或“椅背掉了”;经过适当的培训,机器人会识别此类请求。文本识别的质量自然取决于机器人的训练,我们稍后会谈到。

下一个要求和部分功能是机器人的对话系统。开发了一个系统,机器人可以在其中进行对话并了解当前问题的背景。在回答您的问题时,如果我们已经训练机器人执行此操作,他可能会提出任何澄清问题并继续对话。 Skype 支持简单的菜单选项来提示用户有关继续对话的选项。另外,如果我们正在进行对话,但突然决定问一个偏离主题的问题,机器人也会理解这一点。

该机器人可以根据用户的个人数据向用户发送各种工件。例如,在他的位置。假设如果一个人想要找到一个厕所,那么他会看到一张办公室地图引导他到厕所。并且将根据员工所在的公司办公室来选择该卡。

最重要的任务之一是保护用户的个人信息。我们不能允许每个人都可以访问我们的机器人操作的敏感数据。这种机器人的授权需求是其不可或缺的一部分。机器人会要求用户进行身份验证,然后才能与他进行任何对话。这种情况发生在员工第一次联系机器人时。授权本身会将用户重定向到适当的页面,用户在其中接收令牌,然后将其插入到 Skype 消息中。如果授权成功,您就可以开始与机器人通信。

机器人会帮助我们

授权通过 Skype - 门户授权服务、企业网络和 LDAP 进行。因此,授权取决于公司网络上的当前用户数据。

在开发机器人的过程中,我们意识到我们需要在门户功能中内置某种系统,以帮助 HR 快速调试机器人。我们添加了一个门户页面,HR 可以在其中查看用户在使用机器人时记录的错误,并通过重新培训解决这些错误或将其留给开发人员。

从一开始就没有包含直接在门户上训练机器人的能力。在开发过程中,我们意识到培训机器人是人力资源部门员工在使用机器人时最常见的任务,向开发人员发送文本文件以对机器人进行额外培训是完全不可接受的。这会占用太多时间并产生太多错误和问题。

机器人会帮助我们

我们在门户网站上编写了一个用户界面,以便对机器人进行用户友好的培训。它允许 HR 查看机器人当前的训练,进一步训练它并对当前的训练进行调整。训练由树结构表示,其中节点(即分支)是与机器人对话的延续。您可以创建简单的问题和答案,也可以创建有分量的对话,这一切都取决于人力资源部及其需求。

关于解决方案架构的几句话。

机器人会帮助我们

该解决方案架构是模块化的。它包括负责各种任务的服务,即:
• Azure 上的Skype 机器人服务- 接受并处理用户请求。这是一个相当简单的服务,它是第一个接收请求并执行其初始处理的服务。
• 管理门户- 提供用于设置门户和机器人本身的Web 界面的服务。机器人始终首先联系门户,然后门户决定下一步如何处理请求。
• 授权服务- 为机器人和管理门户提供身份验证机制。授权通过 Oauth2 协议进行。通过主动授权,服务根据有效的用户数据在企业网络中进行授权,从而系统可以控制与数据不同步相关的错误。
• AI 文本识别模块,用Python 编写,并使用ParlAI 框架进行文本识别本身。这是一个神经网络,至少在目前的实现中是这样。我们使用 tfDiff 算法来理解问题。该模块提供了用于与其通信和学习的API。

总之,我想说,这是我们创建聊天机器人的第一次经验,我们试图使系统尽可能简单,但同时功能齐全,并以最少的劳动力成本。我认为我们有一个非常有趣的产品。拥有自己的培训系统、错误记录、通知发送,它还可以与任何其他即时通讯工具集成。

来源: habr.com

添加评论