一、Rasa项目实战之银行金融Financial Bot智能业务对话机器人支付业务流程解析与演示

支付业务是银行金融业务中的核心功能,对于本项目来说,先来看一下这个业务流程是如何工作的。首先运行Rasa命令rasa visualize来自动生成一个可视化流程图:

在下面这个流程图中,一种是支付给个人,另一种是支付信用卡欠款,在流程中需要使用相关的form来收集信息,然后才能调用微服务进行处理。

对话示例如下:

从这段对话中可以看到,这个支付业务流程使用了form来向用户收集三个方面的信息:信用卡账户,支付金额,以及支付时间。在收集支付时间时,对话系统并没有要求用户必须严格按照时间格式来输入,在这里只是输入了”today”,对话系统就会自动转换为下面的时间:Sunday Apr 24, 2022。

在这段对话背后,首先需要对收集到的各个信息(即slot)进行验证,只有验证通过后,才会进行form的提交,并调用相关的微服务进行处理。

二、通过Rasa interactive详解支付业务流程及微服务解析

启动interactive对话模式:

如果训练数据有变动,启动后Rasa框架对自动进行训练:

正在训练中:

训练完成后会保存模型,下次启动时就可以直接使用:

输入信息:I want to pay off my credit card

确认后继续执行:

这里可以看到slot “account_type”填充了值”credit”,这是由于在上一步根据用户输入信息提取了entity “account_type”的值,那么只需要定义一个slot mapping来映射到slot就可以了。这里也提到了需要运行cc_payment_form,先来看下这个form的定义:

可以看到这个form需要收集3个slots的信息,这与本文第一部分对给出的支付对话示例的分析一致。再来看下对话机器人是如何把从用户输入信息提取的实体信息映射到slot中的:

从上面的slot mapping可以看出,type是”from_entity”,而entity正是”account_type”,表明是通过从用户输入中提取实体的值再填充到slot 中。

继续运行form:

从form的定义可以看到,除了要收集跟业务流程直接相关的3个slots之外,也需要收集其它两个用于辅助form使用的slots,那么首先需要收集AA_CONTINUE_FORM。

继续执行:

选择选项1:

这时对话系统会根据用户的选择填充到AA_CONTINUE_FORM中,继续执行:

接下来需要收集slot “credit_card”的信息,输入信息:iron bank

确认后继续执行:

Slot “credit_card”正确填充了刚才输入的值,继续运行form:

按照form定义,接下来收集slot “amount-of-money”:

确认后继续执行:

Slot “amount-of-money”正确填充了值,继续运行form:

按照提示输入时间信息,这里输入tomorrow(明天发起支付),对话机器人给出的时间是:2022-04-25T00:00:00.000-07:00

确认后继续执行:

Slot打印的信息比较有意思,第2次打印信息表示time存储的是tomorrow,而最后一次转换为了微服务能够使用的时间格式的信息。继续运行form:

可以看到对话机器人提示用户确认是否需要在指定的时间发起支付,而这是由slot “zz_confirm_form”触发的,用户的选择关系到这个slot的值填充yes或者no。

这里选择执行选项1:

如上分析,slot的值为yes,再次运行form完成所有信息的收集并提交form:

可以看到提示是否运行微服务action_pay_cc,确认执行,执行完成后结果如下:

Payment of $500.00 towards your Iron Bank account scheduled to be paid at Monday Apr 25, 2022.

这是微服务类,name方法返回的是在domain中定义的action名称:

微服务的逻辑定义在run方法中,首先定义了一个slots列表,这是为了在微服务执行完成后需要对Rasa对话跟踪器tracker中使用的相关slots信息进行清空,以便为下一次业务对话流程做好准备:

从下面的代码可以看到,只有当用户确认要发起支付流程后(根据slot “zz_confirm_form”的值进行判断)才会执行支付逻辑,即首先从tracker中获取之前form收集到的3个业务流程相关的slots的值,然后调用方法pay_off_credit_card进行处理,由于支付涉及到账户金额的转移,所以对slot “amount_transferred”进行了处理。

如果用户不发起支付,则简单调用模板方法输出相关信息。在run方法的最后,return语句中根据前面定义的slots列表来清空slots的值,实际逻辑是只需要返回这样的SlotSet事件给Rasa server,Rasa框架就会自动对tracker中的slots进行更新,具体原理可以参看本专栏的相关文章介绍。

Rasa 3.x 源码高手之路:系统架构、内核算法、源码实现详解:

https://appz0c1mshy7438.h5.xiaoeknow.com/v1/auth?redirect_url=https%3A%2F%2Fappz0c1mshy7438.h5.xiaoeknow.com%2Fv1%2Fgoods%2Fgoods_detail%2Fp_62353091e4b0beaee43652c9%3Fentry%3D2%26entry_type%3D2001%26share_type%3D5%26share_user_id%3Du_621b7b85b8dc5_3yDAYnFXeM%26type%3D3

Rasa 3.x 源码高手之路:基于Transformer的对话机器人RasaPolice:

https://appz0c1mshy7438.h5.xiaoeknow.com/v1/auth?redirect_url=https%3A%2F%2Fappz0c1mshy7438.h5.xiaoeknow.com%2Fv1%2Fgoods%2Fgoods_detail%2Fp_62353421e4b04d7e2fd83665%3Fentry%3D2%26entry_type%3D2001%26share_type%3D5%26share_user_id%3Du_621b7b85b8dc5_3yDAYnFXeM%26type%3D3

星空NLP对话机器人论文班:NLP领域10篇最高质量的对话机器人经典论文解密:

https://appz0c1mshy7438.h5.xiaoeknow.com/v1/goods/goods_detail/p_623874b7e4b04e8d90256da1?type=3&share_type=5&share_user_id=u_621b7b85b8dc5_3yDAYnFXeM&entry=2&entry_type=2001

Rasa 3.X 智能对话机器人案例开发硬核实战高手之路 (7大项目Expert版本):

https://appz0c1mshy7438.h5.xiaoeknow.com/v1/goods/goods_detail/p_62276dd8e4b0beaee431c848?type=3&share_type=5&share_user_id=u_621b7b85b8dc5_3yDAYnFXeM&entry=2&entry_type=2001

Advanced Python硬核实力高手实战之路:架构、算法、源码、案例(81讲):

https://appz0c1mshy7438.h5.xiaoeknow.com/v1/goods/goods_detail/p_6227e564e4b0beaee431ce2a?type=3&share_type=5&share_user_id=u_621b7b85b8dc5_3yDAYnFXeM&entry=2&entry_type=2001

NLP on Transformers 高手之路137课Pro版:

https://appz0c1mshy7438.h5.xiaoeknow.com/v1/goods/goods_detail/p_621c0289e4b04d7e2fd0365a?type=3&share_type=5&share_user_id=u_621b7b85b8dc5_3yDAYnFXeM&entry=2&entry_type=2001

Rasa项目实战之银行金融Financial Bot智能业务对话机器人业务功能微服务解析与调试(九十二)相关推荐

  1. Gavin老师Transformer直播课感悟 - Rasa项目实战之银行金融Financial Bot智能业务对话机器人业务功能微服务解析与调试(八十九)

    本文继续围绕工业级业务对话平台和框架Rasa,对Rasa项目实战之银行金融Financial Bot智能业务对话机器人的主要业务功能所使用的微服务进行解析,并通过Rasa Interactive的调试 ...

  2. Gavin老师Transformer直播课感悟 - Rasa项目实战之银行金融Financial Bot智能业务对话机器人业务功能微服务解析与调试(八十一)

    本文继续围绕工业级业务对话平台和框架Rasa,对Rasa项目实战之银行金融Financial Bot智能业务对话机器人的主要业务功能所使用的微服务进行解析,并通过Rasa Interactive的调试 ...

  3. Gavin老师Transformer直播课感悟 - Rasa项目实战之银行金融Financial Bot智能业务对话机器人架构与流程及Rasa Interactive实验剖析(八十)

    本文继续围绕工业级业务对话平台和框架Rasa,对Rasa项目实战之银行金融Financial Bot智能业务对话机器人架构.流程进行解析,并通过Rasa Interactive分析配置文件中各个组件的 ...

  4. Rasa课程、Rasa培训、Rasa面试系列 Rasa 3.X 项目实战之银行金融Financial Bot智能业务对话机器人

    Rasa课程.Rasa培训.Rasa面试系列 Rasa 3.X 项目实战之银行金融Financial Bot智能业务对话机器人 Rasa Bot 交互体验 测试语句: hey what is my a ...

  5. Gavin老师Transformer直播课感悟 - Rasa项目实战之电商零售智能业务对话机器人业务功能微服务解析与调试演示(八十二)

    本文继续围绕工业级业务对话平台和框架Rasa,对Rasa项目实战之电商零售Customer Service智能业务对话机器人主要业务功能所使用的微服务进行解析,并通过Rasa Interactive的 ...

  6. Gavin老师Transformer直播课感悟 - Rasa项目实战之电商零售智能业务对话机器人业务功能微服务解析与调试演示(八十三)

    本文继续围绕工业级业务对话平台和框架Rasa,对Rasa项目实战之电商零售Customer Service智能业务对话机器人业务功能的微服务如何结合数据库使用进行解析,并通过Rasa Interact ...

  7. Rasa 3.X 项目实战之保险行业Insurance Bot智能业务对话机器人

    课程标题:Rasa 3.X 项目实战之保险行业Insurance Bot智能业务对话机器人 课程关键字:Rasa Application.Insurance Bot.Debugging.Custome ...

  8. Gavin老师Transformer直播课感悟 - Rasa项目实战之电商零售智能业务对话机器人ResponseSelector使用详解与Debugging演示(八十八)

    本文继续围绕工业级业务对话平台和框架Rasa,对Rasa项目实战之电商零售智能业务对话机器人系统如何使用Rasa框架提供的ResponseSelector组件处理常见问题和用户闲聊内容的过程,以及如何 ...

  9. Gavin老师Transformer直播课感悟 - Rasa项目实战之电商零售智能业务对话机器人配置详解与Debugging演示(八十七)

    本文继续围绕工业级业务对话平台和框架Rasa,对Rasa项目实战之电商零售智能业务对话机器人系统所使用的各项配置进行详细剖析,并通过debug模式来理解在下面展示的Rasa graph archite ...

最新文章

  1. Nacos离GA更进一步:0.9.0发布
  2. 【软考】信息系统项目管理师--知识点
  3. uniapp光标自动定义到文本框_解决这3个问题,你就敢使用自动编号了
  4. Java技术小册(基础篇)
  5. 面试官 | 什么是递归算法?它有什么用?
  6. zookeeper 密码_Dubbo、ZooKeeper介绍
  7. 索引添加后,ACCESS数据库表查询运行速度的区别
  8. 曾经,我们有一个芝麻大小的梦想
  9. Apollo公开课四:感知
  10. 网页无法打开...因为:net:ERR_CLEARTEXT_NOT_PERMITTED错误解决办法
  11. C#发送邮件 SMTP
  12. 韦根读卡电路c语言程序,私人项目开源 — 低成本125K RFID读卡模块(原理图+PCB+代码+调试)...
  13. itunes计算机无法启动,itunes无法成功更新后无法打开
  14. 苹果如何不显示云服务器照片,iPhone12如何隐藏照片 iPhone12不显示照片的三种方法...
  15. 3dmax 焊接顶点死活焊接不上的爬坑日记。
  16. java编程找出吸血鬼数字,找出四位數的所有吸血鬼數字(JAVA)
  17. 小米音频测试软件,小米10 Pro成DXOMARK手机音频新榜首 雷军略显骄傲
  18. R语言里面“AsIs“到底是啥,用的时候咋处理
  19. 智能手机Web开发笔记
  20. WINPE WIN10 测试i9-9900k+2080TI\i9-9980XE+P5000\i7-8086k+titanX\E5-2678+128G跑分

热门文章

  1. 360n6pro刷鸿蒙系统,因太费电想刷系统,N6Pro哪个版本的系统耗电少,有什么问题或缺点...
  2. java List/ArrayList 解惑
  3. 提高app用户粘性的方法简析
  4. html+js画一颗心形,用SVG和Vanilla JS框架创建一个“星形变心形”的动画效果
  5. web前端期末大作业 HTML+CSS+JavaScript仿唯品会购物商城网页设计实例 企业网站制作
  6. Uos统信系统 SSH
  7. 使用uniapp编写词霸每日一句页面
  8. Hybrid eye center localization using cascaded regression and hand-crafted model fitting
  9. 开源问答Tipask伪静态apache和nginx设置
  10. JS校验统一社会信用代码的真实性