一种运营商业务智能受理机器人系统
文献发布时间:2023-06-19 19:28:50
技术领域
本发明涉及运营商业务办理技术领域,更具体地说,它涉及一种运营商业务智能受理机器人系统。
背景技术
传统的运营商营业厅办理业务,需要人工坐席在不同的系统录入相关的系统信息和用户信息,业务量大时需要的人工坐席也要相应增多,若是在淡季,业务量下降,相应的人工坐席则会出现空闲。另外,新增加的坐席人员也需要一定时间的业务培训才能上岗。业务办理操作过程中,人工坐席操作也可能出现错漏,每个坐席对营销政策的理解有偏差就会造成用户订单录入错误,导致引起不必要的用户投诉。如何缩减运营商营业厅人工成本,避免人力不足或空闲,减少运营商新员工培训成本,避免录入错漏的用户订单,优化运营商人力资源结构,是目前亟待解决的问题。
发明内容
本发明要解决的技术问题是针对现有技术的上述不足,本发明的目的一是提供一种运营商业务智能受理机器人系统。
本发明的技术方案是:一种运营商业务智能受理机器人系统,包括:
基于springboot+webdriver+浏览器的IT类软件机器人,用于根据脚本和数据来模拟人工操作完成业务受理;
任务接入模块,用于录入根据用户配置的业务规则所需要的信息,并形成任务后,发送给任务分配模块;
任务分配模块,所述任务分配模块接收到任务后,根据配置分发到指定的机器人执行;
自主管理模块,用于根据集群的资源、机器人的情况和任务量的多少自动调整和分配机器人;
任务执行模块,用于根据业务规则的配置通过可视化,以及通过组合基础组件生成可执行的脚本,脚本从机器人分离出来单独存储,并实现脚本动态加载到机器人;
结果反馈模块,用于提供页面展示机器人执行任务结果的详细信息,以及提供查询详细信息的实时接口。
作为进一步地改进,所述任务接入模块的录入方式包括:
页面录入,根据用户配置的业务规则所需要的信息自动生成页面,提供给用户进行单个任务的录入;
批量导入,根据用户配置的业务规则所需要的信息生成excel模板提供用户下载,用户填完相关信息后进行导入,并生成批量的任务;
接口录入,提供统一的下单接口,接口协议为http+json;
邮箱录入,根据用户提供的邮箱名称和邮箱的密码,所述任务接入模块通过IMAP协议,根据邮件标题和附件内容爬取邮件内容,并提取邮件附件,生成任务;
AI智能录入,通过硬件设备进行数据采集,再通过AI智能把数据解析成信息,再根据信息生成机器的任务。
进一步地,邮箱录入的流程包括:
定时器获取用户提供的邮箱名称和邮箱的密码,登录每一个邮箱;
初步拉取所有邮件信息,通过邮件IMAP协议构造命令,批量拉取所有邮件的UID;
根据UID判断是否已经拉取过,对于没拉取过的,继续往下执行;
保存每一封邮件本身的信息,信息包括标题、发送日期、发件人,并解析邮件体结构,提取邮件附件,保存所需附件;
根据标题、发送日期,判断是否包含关键字;
解压所有需要解压的附件,然后扫描所有附件;
对于发票文件,通过pdfbox读取发票信息,并通过POI解析同一目录下的excel/word文档信息;
将解析提取出来的发票、excel信息、邮件本身的信息,结合业务所配置的规则,进行参数校验,并生成任务;
将邮件记录状态改为解析成功。
进一步地,数据采集的方式包括图像录入、视频录入、音频录入。
进一步地,视频录入包括:
通过手机或摄像头进行视频的录制
把视频的每一帧转化成图片进行OCR识别
然后经过解析和去重后,最终生成机器人任务。
进一步地,分发的策略包括:
根据业务指定机器人执行指定业务场景;
根据优先级指定机器人只执行指定优先级的任务;
根据独享配置指定机器人执行指定业务并且独享;根据共享配置指定机器人执行指定业务并且共享;
根据下单用户指定机器人处理该用户的订单;
脚本执行失败后,通过人工干预,修复任务数据后,进行二次分配。
进一步地,所述自主管理模块的功能包括:
自动升级,定期检查机器人的版本,并自动进行升级;
自动收缩,根据任务量自动调节机器人的数量来保证任务得到及时处理;
健康监控,监控机器人自身健康情况,任务执行失败则发出警告,连续失败则判断机器人异常,停止执行任务并自动重启机器人;
更新业务脚本,当业务脚本发生变化时,及时主动加载新业务脚本给机器人,保证任务按新的业务规则进行受理。
执行脚本监控,实时查看机器人的业务执行到哪一步,可以随时暂停和启动机器人。
进一步地,自动收缩的场景包括:
机器人收缩,在配置机器人时,配置最大和最小数量的机器人池,机器人的数量根据任务量在最大和最小数量之间自动收缩;
机器人回收,在系统资源紧张时,限制机器人扩张,并回收空闲的机器人;
机器人派生,发现本主机的资源不够时,在整个集群中查找最空闲的主机,并在空闲的主机上生成派生机器人;派生机器人不能进行派生,派生机器人使用资源的优先级低于原生机器人。
进一步地,最空闲的算法为:空闲程度=(主机最大机器数-目前机器人数)+(主机最大机器数-目前机器人)/主机最大机器数,空闲程度越高,代表主机越空闲;
原生机器人的优先算法为:原生机器人最大的数量=主机最大机器数,派生机器人最大的数量=主机最大机器数-固定系数,固定系数为设定的必须保留的空闲数。
进一步地,脚本的加载模式包括:
本地加载,指定本地一个脚本目录,加载脚本时会到脚本目录进行查找;
远程加载,指定远程加载地址,地址协议是http,参数包括脚本名称,脚本在传输的过程中需要加密和签名,以防止脚本信息泄露和被篡改。
有益效果
本发明与现有技术相比,具有的优点为:
1、传统运营商需要组建一个庞大业务受理团队,还需要办公的场所。转向机器人后,则只需要若干配置人员和几台服务器,节省大量的人工成本和场所费用。
2、以往增加业务受理人员,需要进行招聘,培训,还要熟悉业务时间窗口。而机器人只需增加硬件资源,可以快速提供多个专业能力相当的机器人。
3、传统受理团队提供全天24小时受理需要进行3班轮班3*8小时,而且需要根据订单量调整班次和人数。机器人全天提供24小时服务,机器人数量根据任务量自动调节,大大提高业务受理数量。机器人能快速发现任务,并及时进行受理,受理速度和准确度要比人工要高很多。
4、对于已经有业务受理团队的运营商。可以把受理机器人作为一种人工受理辅助工具,解决集中大批量的受理任务,代替人工轮班和节假日人工值班受理。
5、可以组合受理机器人,原有收单系统,人工受理团队创建一条新的业务管理流程。任务由原有收单系统收集,然后通过机器人提供接口进入机器人的受理。若业务受理失败则转向人工干预。人工干预决定转到人工受理团队,还是通知修复数据让机器人二次受理。受理成功后,把受理的结果通知收单系统。新的受理流程不但提高受理的速度,还提高受理有成功率。
附图说明
图1为本发明的模块图;
图2为录入页面图;
图3为机器人派生流程图;
图4为业务受理流程图;
图5为本发明系统网络接入图;
图6为机器人派生流程图;
图7为机器人收缩示意图;
图8为机器人脚本配置图;
图9为机器人执行任务状态图;
图10为任务执行结果信息图。
具体实施方式
下面结合附图中的具体实施例对本发明做进一步的说明。
参阅图1~图10,一种运营商业务智能受理机器人系统,包括:
基于springboot+webdriver+浏览器的IT类软件机器人,机器人可运行在Window、Linux操作系统及docker容器,用于根据脚本和数据来模拟人工操作完成业务受理;
任务接入模块,用于录入根据用户配置的业务规则所需要的信息,并形成任务后,发送给任务分配模块;
任务分配模块,任务分配模块接收到任务后,根据配置分发到指定的机器人执行;
自主管理模块,用于根据集群的资源、机器人的情况和任务量的多少自动调整和分配机器人;
任务执行模块,用于根据业务规则的配置通过可视化,以及通过组合基础组件生成可执行的脚本,脚本从机器人分离出来单独存储,并实现脚本动态加载到机器人;
结果反馈模块,用于提供页面展示机器人执行任务结果的详细信息,以及提供查询详细信息的实时接口。
为了方便用户接入使用机器人,提供发多元化的任务接入方式,具体的,任务接入模块的录入方式包括:
1、页面录入,根据用户配置的业务规则所需要的信息自动生成页面,如图2所示,提供给用户进行单个任务的录入。
2、批量导入,根据用户配置的业务规则所需要的信息生成excel模板提供用户下载,用户填完相关信息后进行导入,并生成批量的任务,excel模板如表1所示。
3、接口录入,提供统一的下单接口,接口协议为http+json,方便业务系统调用机器人生成任务。协议如下:
输入:
/>
输出:
{"resultCode":"1","info":"OK"}#resultCode=1成功,resultCode=0失败}
4、邮箱录入,根据用户提供的邮箱名称和邮箱的密码,任务接入模块通过IMAP协议,根据邮件标题和附件内容爬取邮件内容,并提取邮件附件,生成任务。邮箱录入的流程包括:
S1、定时器获取用户提供的邮箱名称和邮箱的密码,登录每一个邮箱;
S2、初步拉取所有邮件信息,通过邮件IMAP协议构造命令,批量拉取所有邮件的UID;
S3、根据UID判断是否已经拉取过,对于没拉取过的,继续往下执行;
S4、保存每一封邮件本身的信息,信息包括标题、发送日期、发件人,并解析邮件体结构,提取邮件附件,保存所需附件;
S5、根据标题、发送日期,判断是否包含关键字;
S6、解压所有需要解压的附件,附件的格式包括zip、rar、7z,然后扫描所有附件;
S7、对于发票文件,通过pdfbox读取发票信息,或者通过zip解压OFD,再通过xml直接解析ofd文件读取发票信息,并通过POI解析同一目录下的excel/word文档信息;
S8、将解析提取出来的发票、excel信息、邮件本身的信息,结合业务所配置的规则,进行参数校验,并生成任务;
S9、将邮件记录状态改为解析成功。
5、AI智能录入,通过硬件设备进行数据采集,再通过AI智能把数据解析成信息,再根据信息生成机器的任务。数据采集的方式包括图像录入、视频录入、音频录入。
1)图像录入:
通过手机对着任务单进行拍照,生成图片(扫描件要使用指定的格式);
用户在电脑安装机器人的客户端(exe),用户电脑连接扫描仪(如:爱普生DS-870),并安装扫描仪驱动;用户可以通过客户端连接扫描仪,扫描生成图片(扫描件要使用指定的格式);
通过机器人的OCR识别出文字信息(OCR使用
Python+PaddleOCR/ch_PP-OCRv3_xx模型识别),并生成任务;ch_PP-OCRv3_xx模型的关键参数如下:
use_gpu:true#使用gpu,需要增加GPU硬件
use_mp:true#使用多线程
total_process_num:5#使用5条线程
#在漏检文字区域有分割区域,根据文字太小,文字弯曲生成分割区域
det_db_thresh:0.1
det_db_box_thresh:0.1
det_db_unclip_ratio:2
max_batch_size:10
use_dilation:True
det_db_score_mode:fast
vis_seg_map:False
#使用PGNet检测算法
e2e_algorithm:PGNet
e2e_model_dir:str
e2e_limit_side_len:768
e2e_limit_type:max
2)视频录入包括:
通过手机或摄像头进行视频的录制;
把视频的每一帧转化成图片进行OCR识别;
然后经过解析和去重后,最终生成机器人任务。
3)音频录入:
通过手机或录音机进行音频的录制;
把音频通过机器人识别出文字信息,并生成任务;
音频识别使用Python+PaddleSpeech(Aishell、DeepSpeech2 RNN+Conv basedModels)模型识别。
任务分配模块分发的策略包括:
1、根据业务指定机器人执行指定业务场景;具体的,指定某些机器人执行指定业务场景,用于根据业务场景来合理分配机器人,可以指定某些重要的业务场景使用专用的机器人来受理。
2、根据优先级指定机器人只执行指定优先级的任务;具体的,优先级高的任务,优先执行,可以指定某些机器人只执行指定优先级任务,如:分配某些机器人执行最高级的任务。
3、根据独享配置指定机器人执行指定业务并且独享;根据共享配置指定机器人执行指定业务并且共享;具体的,机器人指定业务并且独享,独享则只能执行此业务场景的任务,用于可以保证重点业务及时处理。指定业务并且共享,优先执行此业务的任务,若业务任务执行完可执行其它业务的任务,保证重点业务及时处理同时充分利用机器人。
4、根据下单用户指定机器人处理该用户的订单;具体的,机器人指定下单用户后,机器人只会处理此用户的订单,按用户来分配机器人资源,避免用户间相互争抢机器人。
5、脚本执行失败后,可以通过人工干预,修复任务数据后,进行二次分配。
自主管理模块的功能包括:
1、自动升级,定期检查机器人的版本,并自动进行升级;具体的,机器人定期向服务发送http请求,检查机器当前版本是否最新。若存在最新版本的机器人。首先下载最新版本,然后等待当前任务执行完毕,进行安装升级,然后继续执行任务。
2、自动收缩,根据任务量自动调节机器人的数量来保证任务得到及时处理。自动收缩的场景包括:
1)机器人收缩,在配置机器人时,配置最大和最小数量的机器人池,机器人的数量根据任务量在最大和最小数量之间自动收缩。
2)机器人回收,在系统资源紧张时,限制机器人扩张(如CPU或者内存达到80%),并回收空闲的机器人。
3)机器人派生,发现本主机的资源不够时,在整个集群中查找最空闲的主机,并在空闲的主机上生成派生机器人;派生机器人不能进行派生,派生机器人使用资源的优先级低于原生机器人,如图3所示。
最空闲的算法为:空闲程度=(主机最大机器数-目前机器人数)+(主机最大机器数-目前机器人)/主机最大机器数,空闲程度越高,代表主机越空闲;
原生机器人的优先算法为:原生机器人最大的数量=主机最大机器数,派生机器人最大的数量=主机最大机器数-固定系数,固定系数为设定的必须保留的空闲数。如:固定系数=3,表示必须保留3个空闲。当派生机器人达到最大数量时,原生机器人还可以扩张3个。原生机器人扩张3个后,派生机器人数量需要收缩3个(派生机器人最大数量决定),继续循环保证了原生机器人优先。
4)健康监控,监控机器人自身健康情况,任务执行失败则发出警告,连续失败则判断机器人异常,停止执行任务并自动重启机器人。
5)更新业务脚本,当业务脚本发生变化时,及时主动加载新业务脚本给机器人,保证任务按新的业务规则进行受理。
6)执行脚本监控,实时查看机器人的业务执行到哪一步,可以随时暂停和启动机器人。
脚本可以支持多种语言:Java、Python、PHP、JavaScript、Perl、C#、Ruby。
脚本的加载模式包括:
1、本地加载,指定本地一个脚本目录,加载脚本时会到脚本目录进行查找,本地加载适用于开发和调试。
2、远程加载,指定远程加载地址,地址协议是http,参数包括脚本名称,脚本在传输的过程中需要加密和签名,以防止脚本信息泄露和被篡改。远程加载成本比较高,需要机器人在本地缓存脚本信息,脚本更新时需要通知机器人重新加载脚本。远程加载适用于生产环境。
机器人执行脚本时使用隐藏和多进程模式。该模式可以在一台主机上运行多个机器人,充分使用主机资源提高整体处理能力。
脚本按模块配置和执行,脚本每个模块执行完成时会产生详细的执行报告和执行结果的截图。当任务失败后,可以修改任务数据重复执行,可以指定从任意模块(一般上次失败模块)重新开始执行。
实际应用
使用本系统进行业务受理主要包括以下步骤:
步骤01,准备硬件资源,部署应用服务和机器人。
准备四台硬件主机资源(主流硬件配置,4核CPU,8G内存),第一台安装机器人应用服务器JDK1.8+Tomcat8+机器人web应用。第二台安装开源mysql5.7数据库,并初始化机器人数据库。
第三台、四台安装机器人控制程序,这两台服务器用来执行脚本。执行任务的最大并发数=主机最大机器人数量,主机最大机器人数量是根据主机内存计算得来。计算方式(一个机器人要占0.5G的内存,内存使用率要控制在80%以下):最大机器人数量=总内存*0.8*2=8*0.8*2≈12个。
步骤02,在主机上面配置机器人,用来执行业务订单。
在本实施中,在第三台主机上配置机器人。首先在第三台主机上配置受理机器人基本信息,基本信息包括:机器人名称,最小/最大机器人数量,是否可以派生,指定执行业务场景,指定是否独享。
步骤03,配置业务规则,并生成脚本。
根据业务规则配置业务场景,把基础模块(查询客户,极简管理,销售品订购)组成流程,并生成可执行的业务脚本,如图9所示。生成的脚本以Java为例,下面是一个脚本的例子:
System.setProperty("webdriver.firefox.bin","D:\browse\firefox36\firefox.exe");
System.setProperty("phantomjs.binary.path","D:\browse\phantomjs-2.1.1-windows\bin\phantomjs.exe");
WebDriver driver=new FirefoxDriver();
driver.get("http://www.baidu.com");
driver.navigate().refresh();
TakesScreenshot takesScreenshot=(TakesScreenshot)driver;
File srcFile=takesScreenshot.getScreenshotAs(OutputType.FILE);
String fileName=UUID.randomUUID().toString()+".png";
srcFile.renameTo(new File("D:\log\"+fileName));
String html=driver.getPageSource();
logger.warn(html);
driver.manage().timeouts().implicitlyWait(2,TimeUnit.SECONDS);
生成脚本后,脚本会保存在独立的脚本文件服务器中,机器人在执行任务的时候通过远程http动态加载脚本。
步骤04,根据业务规则,录入业务订单。
录入业务订单,机器人提供了多种方式,为了阐明器人在受理过程中自主管理的功能,所以以批量导入为例。
批量导入按模板填写任务数据,导入机器人系统生成任务。批量模板如下:
步骤05,分配机器人执行脚本。
机器人控制器会按任务分配规则,把任务分配到“手机受理机器人-第三台主机”,第三台主机机器人控制器发机任务有4个,第三台手机受理机器人增加到四个机器人(最大12)。主机资源变化如下:第三台主机运行数量变大。
步骤06,继续增加任务,机器人进行派生扩容。
然后按相同的模块继续导入17张订单,主机资源变化如下:第三台主机应该没有可用资源。
但是还有9张订单待处理,第三台主机的机器发起派生申请(调用第一台部署的web应用),首先计算各主机资源的情况如下:空闲程度=(主机最大机器数-目前机器人数)+(主机最大机器数-目前机器人)/主机最大机器数
得出第四台最空闲,所以在第四台主机上派生一个机器人
主机的机器人情况如下:
步骤07,在派生成器人所在的主机上增加原生成器人,原生机器人的优化级高,逐步挤掉派生成器人。由于原生机器人根据业务情况按系统、登陆的账号、业务编码划分的,派生机器人是原生机器人复制品,系统发现原生机器人数量小于需要执行任务数量时会在其它主机器生成派生机器人,但是派生机器人优先级比原生机器低,资源不够的情况下会被系统回收。
在第四台主机上配置一个机器人。配置完成后资源情况如下:
继续导入12条订单,让新增加的机器人也到执行任务,机器人总数量小于总任务数时,任务进行等待,等待其它机器人处理任务空闲后,执行等待的任务。
步骤07_01,新增加机器人初始化3个实例
第四台“手机机器人2”发现主机还有3个空闲。则初始化3个机器人。
步骤07_02,派生加机器人收缩3个实例
此时“手机机器人1(派生)”机器人发现空闲机器人数量为0,则主动收缩3个(派生机器人要保持一定空闲数量的机器人,如:3个)。
重复步骤07_01和步骤07_02操作,最终派生机器人数量变成0(原生机器人不需要保持空间数量的机器人),然后就会把第四台主机上派生机器人删除掉,以进行系统回收资源。
步骤08,监控机器人的执行情况
机器人在执行任务时,系统会记录每一个机器人执行的任务和进度。机器人执行任务状态如图9所示。
步骤09,任务执行结束后,上传结果。
机器人根据脚本的操作模拟人工操作,操作完成后,会详细记录任务执行结果信息。如图10所示。
以上仅是本发明的优选实施方式,应当指出对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些都不会影响本发明实施的效果和专利的实用性。
- 一种运营商业务无接触式智能化现场受理方法
- 一种运营商无接触式现场业务智能化受理设备