本文继续围绕工业级业务对话平台和框架Rasa,对Rasa对话机器人项目实战之教育领域Education Bot项目的架构进行分析,并通过debug模式演示与分析Rasa Agent如何与核心组件NLU  Pipeline和Dialogue Policies进行交互以完成对用户输入的语言理解与预测,以及微服务调用等。

一、图解Rasa对话机器人项目实战之教育领域Education Bot项目及综合调试Debugging实战解密

  1. 通过Rasa Architecture图解对话机器人项目实战之教育领域Education Bot项目

运行命令rasa shell启动Rasa Server(Agent),会加载训练好的模型,包括NLU Pipeline和Dialogue Polices两部分使用的模型:

运行命令rasa run actions,会启动rasa action server并注册微服务actions:

Agent相当于 对话机器人的控制中心,而业务处理如访问数据库或者调用第三方API等是通过Action Server来处理的。从架构图中可以看到,核心路径是用户与Agent交互及Action Server与Agent进行交互。项目中的nlu部分与NLU Pipelines相关:

而rules和stories部分与Dialogue Polices相关:

Actions部分就是定义和配置了运行在Action Sever之上的微服务:

Config.yml定义了在NLU Pipeline中使用的各个graph components,包括意图分类和实体提取组件:

Config.yml也定义了在架构图中Dialogue Policies部分使用的各个policies组件:

2.  通过Graph Architecture图解对话机器人项目实战之教育领域Education Bot项目

本文开头展示的Rasa graph architecture图显示了各个graph 组件之间的依赖关系,从而构成有向无环图(缩写为DAG)。Rasa框架通过把各个组件抽象为graph component的方式来模糊NLU Pipeline中的组件和Dialogue Policies中的组件之间的差别,所以以一个DAG图的方式统一了所有组件。从图中可以看到,各个组件之间并不完全是顺序执行的方式,组件与组件之间可以并行运行,从而带来了高效率。另外,从DAG图中可以看到,Rasa也提供了end-to-end learning的方式,即Dialogue Policies部分可以直接依赖于Featurizers组件的输出来进行处理,而不需要依赖DIETClassifier的输出结果。Policy Ensemble组件会根据各个policies组件的预测结果给出最佳的关于next action的预测结果。

3.  通过Training Flow图解对话机器人项目实战之教育领域Education Bot项目

在下面这个流程图中,首先把domain配置信息和训练数据(nlu,rules,stories等)加载进来,训练各个组件并进行持久化操作。Policies会根据stories的数据提取features并更新自己模型的参数。

4.  Rasa Server NLU启动过程Debugging及图解

在Rasa server启动过程中,可以看到有报错信息,这是因为没有启动ducking server,而在NLU pipeline配置里使用了DuckllingEntityExtractor:

进入debug模式:

会加载很多库,包括Rasa SDK相关的库,redis相关的,tensor flow相关的等等:

启动基于Sanic框架构建的Rasa server:

这里使用了开发模式常用的InMemoryTrackerStore:

加载各个NLU pipeline的组件:

5.  Rasa Server Policies启动过程Debugging及图解

在Rasa server启动过程中也会加载Dialogue Policies中的各个组件,如RulePolicy,AugmentedMoizationPolicy,TEDPolicy等:

启动Rasa server完成:

6.  通过Debugging的模式解析用户输入Message完整的NLU处理过程

输入信息:

首先从Lock Store中获取lock,启动一个新的session,并执行action_session_start:

这是当前tracker中slots的状态信息,都是None的状态:

然后依次调用NLU pipeline的各个组件对输入信息进行处理:

运行ResponseSelector,添加各个分类的key,如果用户输入识别的intent符合这些分类就会进行相应的处理:

这是对用户输入消息处理后输出的intent和entities信息:

对话机器人通过微服务检索信息后返回:

在微服务的run方法中通过调用API执行搜索:

这是discourse API定义的query方法:

提取并验证slots信息:

7.  通过Debugging的模式解析用户输入Message完整的Policies处理过程

运行RulePolicy和TEDPolicy预测next action:

通过Policy Ensemble组件对各个policy预测结果进行选择,最后选择了RulePolicy的预测结果,并调用微服务action执行搜索:

执行搜索完成后,会再次调用各个policy进行预测下一个action,可以看到最后预测的action是”action_listen”(系统默认行为),即进入等待用户输入下一条消息的状态:

欢迎订阅Rasa系列课程:

========================================================================

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

Gavin老师Transformer直播课感悟 - 图解Rasa对话机器人项目实战之教育领域Education Bot项目及综合调试Debugging实战解密(七十七)相关推荐

  1. Gavin老师Transformer直播课感悟 - 通过Rasa Interactive对Rasa对话机器人项目实战之ConcertBot源码、流程及对话过程解密(四十三)

    本文继续围绕工业级业务对话平台和框架Rasa,通过Rasa Interactive对Rasa对话机器人项目实战之ConcertBot源码.流程及对话过程进行解析. 一.通过Rasa Interacti ...

  2. Gavin老师Transformer直播课感悟 - Rasa对话机器人项目实战之教育领域Education Bot项目NLU Data详解(七十一)

    本文继续围绕工业级业务对话平台和框架Rasa,对Rasa对话机器人项目实战之教育领域Education Bot项目NLU Data的分层结构,数据格式,在意图分类和实体提取时如何使用正则表达式以及lo ...

  3. Gavin老师Transformer直播课感悟 - Rasa对话机器人项目实战之教育领域Education Bot项目Form解析及自定义全解(七十五)

    本文继续围绕工业级业务对话平台和框架Rasa,对Rasa对话机器人项目实战之教育领域Education Bot项目关于Form的定义,如何激活一个form或者使当前运行的form进入不激活状态,如何在 ...

  4. Gavin老师Transformer直播课感悟 - Rasa对话机器人项目实战之教育领域Education Bot项目Slots解析、Slot Validation Action剖析(七十四)

    本文继续围绕工业级业务对话平台和框架Rasa,对Rasa对话机器人项目实战之教育领域Education Bot项目Slots的各种类型及运用实践.如何通过Slot Validation Action来 ...

  5. Gavin老师Transformer直播课感悟 - Rasa对话机器人项目实战之教育领域Education Bot项目Policies Data详解(七十二)

    本文继续围绕工业级业务对话平台和框架Rasa,对Rasa对话机器人项目实战之教育领域Education Bot项目Policies Data,end-to-end的训练方式及使用时需要注意的事项,ch ...

  6. Gavin老师Transformer直播课感悟 - Rasa对话机器人项目实战之教育领域Education Bot项目NLU Pipeline、Dialogue Policies、及多意图识别(七十)

    本文继续围绕工业级业务对话平台和框架Rasa,对Rasa对话机器人项目实战之教育领域Education Bot项目NLU Pipeline的各个组件.Dialogue Policies使用的组件,以及 ...

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

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

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

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

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

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

最新文章

  1. windows server 2008 R2上安装MRTG指南
  2. ubuntu18 install YARN
  3. Python常用模块之time模块
  4. SQLite学习手册(索引和数据分析/清理)
  5. Spring MVC 启动
  6. oracle导出客户机使用us7a,导出已复制的文件系统 - Oracle® ZFS Storage Appliance 管理指南,发行版 OS8.6.0...
  7. Linux运行8086代码,* linux下编译,链接,运行,汇编程序
  8. 团队项目——测量小助手个人一周详细计划表
  9. AI又抢了人类职位,这回轮到银行销售人员了?
  10. 局域网中服务器群配置ssh免密
  11. android 长截屏实现,Android实现截屏与截长图功能
  12. 迅捷PDF编辑器怎么编辑修改PDF文件?
  13. 玩和平精英跟刺激战场国际服都被吊打?网友:你还可以玩荒野行动
  14. [SiFi]三体中英名词翻译chapter1-3
  15. 带你入门Java网络爬虫
  16. 第五篇:风控模型监控预警
  17. iconv()和mb_conver_encoding()字符编码转换函数
  18. 什么是大数据?2022大数据时代
  19. 你绝对能懂的“腐烂的橘子”解法
  20. VRchat上传角色error无法保存蓝图解决

热门文章

  1. 计算机考试文件命名,2010年职称计算机考试:文件的命名
  2. 计算机网络 - 练习(一百三十八)
  3. 读卡器(8年前的)插上SD卡提示未插入修复教程,仅适用于放置较久的读卡器。
  4. 风云毛笔字 手机练习毛笔字 【安卓软件】
  5. lisp把选集转成表_晓东CAD家园-论坛-LISP/VLISP程序库-[LISP程序]:把text转为属性图块 - Powered by Discuz!...
  6. 企业级用户画像: 用户活跃度模型-RFE
  7. Linux——开机启动流程
  8. linux下rm删除文件的恢复
  9. eshop电子商城,app
  10. 人在职场,要接受“丢车保帅” (转)