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

84 篇文章 16 订阅

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

一、Rasa对话机器人Debugging项目实战之电商零售对话机器人业务功能微服务解析与调试演示

  1. 订单状态查询微服务解析及Rasa Interactive调试

首先运行命令rasa run actions –debug以调试模式启动action server:

运行命令rasa interactive进入交互式对话模式:

输入信息:hi:

确认继续执行:

确认继续执行提示的action:

输入Yes确认,之后对话机器人给出以下选项供用户选择:

选择1查询订单状态:

继续执行提示所给的action:

可以看到提示信息是询问用户是否需要运行form,我们知道在Rasa框架中,一般是通过rule来激活form的,所以检查是否有相关的rule配置。检查rule文件找到了关于order status的配置,可以看到steps中描述的先执行action_deactivate_loop,再执行order_status_form的顺序与上面截图里给出的信息完全匹配。

继续执行form,这时form就处于激活状态了,可以清晰地看到当前请求的slot为”email”:

输入email信息:

确认继续执行:

可以看到slot email已经填充了刚才用户输入的email信息,继续执行提示action:

继续执行提示action查询订单状态:

这时可以看到对话机器人返回了查询结果,显示订单状态为returning:

Based on the latest order from hiheartfirst@gmail.com, it looks like your order is currently returning.

检查action server的输出日志,显示action server收到了从Rasa server通过HTTP POST方式发送的执行微服务action_order_status的请求,然后action server执行微服务完成后会把结果以HTTP response的方式返回给Rasa server:

检查domain,发现注册了这个微服务:

这是微服务类OrderStatus,它继承自Rasa SDK的Action,主要包括两个方法name()和run():

这是name方法,返回在domain中注册的微服务的action name:

这是run方法:

连接到数据库并获取cursor:

这是数据库信息,这里使用了SQLite数据库:

获取slot “email”的信息,然后作为参数值传入SQL查询语句中,之后通过cursor返回一条查询结果:

如果有查询结果,则从结果列表中取出第6个值(状态值)返回给用户

如果没有查询结果,则返回提示信息给用户

 2.  用户反馈调查微服务解析及Rasa Interactive调试

查询完订单状态后,会提示运行survey_form,检查rule的配置,可以看到在执行完action_order_status之后就会执行survey_form:

我们可以在domain中找到这个form的定义:

执行form后输出如下:

可以看到用户需要选择rate(1到5的范围):

选择3,可以看到slot “rating”已经填充了值3:

根据form定义,还需要收集另外的信息,所以继续执行form:

这时会提示用户输入反馈信息:

确认继续执行,这时slot “open_feedback”填充了值:

继续执行,提示是否需要运行action_survey_submit:

确认执行:

这时检查action server输出日志,发现执行了微服务:

这是domain中注册的微服务action:

这是微服务类SurveySubmit,继承自Rasa SDK的Action:

这是name方法,返回在domain中注册的微服务的action name:

这是run方法,逻辑很简单,只是调用模板方法返回提示信息给用户,在实际开发场景中,可以把用户提供的反馈信息保存到数据库或者进行其它处理等等。需要注意的是在return语句中生成了一个SlotSet事件,这个事件会把对应slot的值设为True,这样做的目的在于当用户再次执行订单状态查询时,就不会再次请求用户提供反馈信息:

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值