1.背景介绍
概述
在工业互联网行业,企业级应用的需求日益提升。而为了更好地实现智能化、流程化和可复用性的目标,需要引入人工智能(AI)技术。特别是在应用场景中,运用业务流程(BP)可以有效减少人力成本和时间损失。为了提高BP的效率,很多企业采用RPA(Robotic Process Automation,即机器人流程自动化)工具进行BP自动化,从而加快了BP的执行速度,降低了维护成本。但是,由于AI模型参数复杂、语料庞大等原因,使得部署和调试这些模型变得困难,导致对于BP自动化效果的评估较为困难。因此,如何让机器人能够像人一样理解业务流程并实现自动化呢?如何利用大型语料库和大模型来改善BP自动化的效果呢?本文将介绍如何利用开源框架Dialogflow和GPT-3模型来搭建一个面向流程自动化的企业级应用。
GPT-3
GPT-3 (Generative Pre-trained Transformer 3) 是一种基于 transformer 的自然语言生成模型,其训练数据集大小超过十亿个句子。它使用了两种策略,一个是采用 supervised learning 策略,另一个则是采用 unsupervised learning 策略。采用 supervised learning 时,GPT-3 需要给定输入、输出对,然后学习到数据分布中的模式。而采用 unsupervised learning 时,GPT-3 只需要输入数据,就可以生成相似或相关的文本,而不需要提供明确的输出。
虽然 GPT-3 可以生成无穷多种可能的文本,但为了达到对话系统、任务自动化等应用的要求,一般只选择其中关键信息的片段作为响应。所谓关键信息,就是指用户关注的事情或对话对象的问题或解决方案。比如,当问到用户当前所在位置时,GPT-3 生成“我当前位于北京市”这样的回复;当问询“天气怎么样?”,GPT-3 生成“北京今天的天气是晴转多云”这样的回复。
Google AI 研究人员将 GPT-3 模型进行了优化,以生成更多符合用户需求的自动回复。2020 年 9 月,谷歌宣布,它已经展示了一种新方法,可以通过将 GPT-3 模型与 Dialogflow 聊天机器人的 API 相结合,帮助企业实现端到端的流程自动化。该方法既可以在短信、电话、邮件甚至通过智能硬件进行通讯,也可以进行语音助手、浏览器插件或微信小程序等多种渠道的扩展。
Dialogflow
Dialogflow 是一个基于语音和文本的平台,用于构建可持续的对话系统。它可以连接多个服务,如 Google Assistant、Amazon Alexa 和 Facebook Messenger,来提供一致、个性化的用户体验。利用 Dialogflow 进行 BP 自动化时,首先需要创建一个流程图,它描述了所有参与者和各个环节之间的关系,以及每个环节的任务。然后,将流程图导入 Dialogflow 的控制台,即可创建机器人。它会根据流程图进行交互,从而完成用户的需求。
Dialogflow 的优点主要有以下几点:
-
强大的基础设施:Dialogflow 提供了丰富的接口,包括 API、SDK、CLI、Webhooks、Alexa Skill、Google Cloud Functions 等。这些接口都可以用来集成到不同的开发环境中。同时,Dialogflow 提供了许多特性,例如上下文管理、自定义实体、意图识别、多轮对话、Webhook 支持等。
-
高度自定义:Dialogflow 的核心功能之一是允许用户完全自定义机器人的行为。用户可以定义自己的槽位,为机器人添加新的功能。另外,Dialogflow 还提供了插件机制,可以让第三方开发者开发出新的功能模块,如回馈建议、图像搜索、情感分析等。
-
可编程性:Dialogflow 的 API 支持丰富的编程语言,包括 Node.js、Python、Java、C#、Go、Ruby 等。这使得开发者可以编写程序脚本来实现 Dialogflow 的功能。
2.核心概念与联系
业务流程自动化(Business Process Automation,简称BP AUTOMATION)
业务流程自动化(BPA)指的是通过计算机智能化技术将人力重复性工作(如业务流程标准化、文档制作、审批、事务处理等)自动化,减少管理人员的时间和费用,实现企业资源的更有效利用,提升工作效率,降低运行风险。
目前,企业主流的BP AUTOMATION工具有RACF、Siebel等,这些工具基本上都是以某个应用软件为平台,通过拖拽控件的方式实现流程自动化。在这种方式下,流程自动化的逻辑和规则都在软件内部,缺乏灵活性,不利于后期修改和优化。另一方面,现有的流程自动化工具又存在着一定的局限性,无法满足需求快速迭代的动态业务环境。
为了更好地实现BP AUTOMATION,需要在大规模语料库和大模型的支持下,引入机器学习(ML)技术,通过抽取关键信息特征和判断真假来自动执行业务流程。具体来说,利用ML可以检测出疑似异常的行为,并做出相应反应;ML还可以分析历史数据和调用其他模型进行预测,进一步提升模型的准确性和鲁棒性。
本文采用Dialogflow和GPT-3模型来实现BP AUTOMATION。
Dialogflow
Dialogflow 是一款在线构建和部署 chatbot 的工具,由 Google 在 2017 年推出,其特色在于提供基于规则和机器学习的客服系统,并且兼顾了简单易用、高效自动化、可扩展性和隐私保护等功能。
Dialogflow 的优势在于:
-
用户友好:界面清晰、简单,用户通过简单的拖拽操作就能构建完整的对话系统,而且整个过程不需要编码。
-
智能匹配:基于规则引擎,Dialogflow 具备高精度的文本匹配能力,能够正确理解用户的意图、场景和表达,识别出用户想要什么,以及确认他所要做的。
-
对话框可视化:Dialogflow 的对话框可视化功能,可以直观地看到每个节点的条件跳转关系和上下文关联,为用户提供更好的操作指导。
GPT-3
GPT-3 是一种由 OpenAI 团队研发的开源的无监督式自然语言生成模型,其背后有一个巨大的计算力量支持,可以在几个小时内生成长度超百万的文本,并且可以处理各种复杂的任务。
GPT-3 的主要能力在于:
-
文本生成:GPT-3 可以根据输入文本,生成非常长且流畅的连贯语句,并具有一定的质量保证。
-
信息检索:GPT-3 可以理解用户的查询需求,并找到最相关的信息摘要,并快速返回给用户。
-
复杂任务处理:GPT-3 除了常用的文本生成任务外,还可以用于复杂任务的生成,如任务描述、故障诊断、维修命令等。
3.核心算法原理和具体操作步骤以及数学模型公式详细讲解
业务流程自动化
业务流程自动化包括多个子流程,每一个子流程包括多个阶段,每个阶段都有不同的处理人,需要依据一定标准或条件自动进行协调。除此之外,还有一些特殊情况需要人工介入,如突发事件发生时的救援流程。
所以,要实现业务流程自动化,首先需要确定子流程的结构和执行顺序,然后对每个子流程的每个阶段进行标准化,最后设置条件触发执行或转交人工审批等自动化操作。下面给出一个自动执行业务流程的示例。
假设某银行客户提出申请,希望开户,这个申请通常由业务部门经理审核,如果得到同意,再由财务部经理签署合同,之后由人力资源部负责办理社保等手续。随后,可能还需要借款,需要额外申请人力资源部门的资源,这时候就可以自动执行财务部和人力资源部等多个子流程。
Dialogflow技能知识图谱
首先,需要构建知识图谱,知识图谱可以把复杂的信息组织起来,方便机器理解和处理。Dialogflow的技能知识图谱可以分为三个层次:技能中心、技能分类、技能条目。
技能中心
技能中心是一种虚拟的工作单元,类似一个房间,里面装着相关技能的训练材料、模型、API等文件,包括知识、指令、工具等。如图所示,一个技能中心包含多个技能分类。
技能分类
技能分类是技能中心的一项配置,用来描述技能中心内某个具体技能。如图所示,一个技能分类包含若干技能条目。
技能条目
技能条目是技能中心的一个具体的技能实例,如图所示,包含名称、描述、示例等属性。
Dialogflow流程自动化
流程自动化一般分为两个阶段:语义理解和动作执行。Dialogflow采用类似于规则引擎的算法来理解用户的输入,匹配对应的技能条目,执行对应的动作。Dialogflow的流程自动化能力包含两类,分别是 Intent & Entity 和 Slot Filling。
Intent & Entity Intent & Entity 是 Dialogflow 最基础的能力之一,可以理解用户的意图和实体。Intent 表示用户的需求,Entity 是用户输入的具体信息。在 Dialogflow 中,可以先定义好 Intent ,然后在不同技能中心建立相应的技能分类、技能条目,帮助 Dialogflow 理解用户的需求。
Slot Filling Slot Filling 是 Dialogflow 中的一项重要能力,可以自动填充用户的空白,确保 Dialogflow 执行完相应的动作后,用户获得满意的服务。Slot Filling 需要与实体相关,即用户说的话里包含哪些特定实体。Slot Filling 通过实体抽取的方式,利用机器学习技术对文本进行解析,获取用户的实体,进而完成输入。
下面,将使用流程图的方式来描述业务流程,并演示如何在 Dialogflow 中实现自动执行。
业务流程自动化业务流图
根据业务的实际情况,制作流程图如下所示:
为了实现自动化,需将以上业务流程图导入 Dialogflow,并按照流程图上的步骤进行自动化配置。
第一步,创建一个新项目,命名为“业务流程自动化”。
第二步,创建技能中心“流程自动化”并创建技能分类“开户、销户、理财、健康”,并在对应分类下创建技能条目,并上传相应的训练数据。
第三步,创建新的 intent “开户申请”,并将“业务流程自动化”技能中心的“开户”技能分类作为上下文,并定义相应的实体及正则表达式。
第四步,创建新的 intent “销户申请”,并将“业务流程自动化”技能中心的“销户”技能分类作为上下文,并定义相应的实体及正则表达式。
第五步,创建新的 intent “健康申报”,并将“业务流程自动化”技能中心的“健康”技能分类作为上下文,并定义相应的实体及正则表达式。
第六步,创建新的 intent “理财产品购买”,并将“业务流程自动化”技能中心的“理财”技能分类作为上下文,并定义相应的实体及正则表达式。
第七步,创建新的 conversation “申请业务流程”,将“开户申请”、“销户申请”、“健康申报”、“理财产品购买”四个intent加入该conversation。
第八步,测试 Dialogflow 是否正确识别出用户的意图,如果出现错误,请检查相应的实体及正则表达式是否正确配置。
第九步,创建新的 Dialogflow agent,并导入训练数据。
第十步,训练 Dialogflow agent,并调整参数。
第十一步,测试 Dialogflow agent,验证是否成功执行相应的业务流程。