Gavin老师Transformer直播课感悟 - Rasa对话机器人Debugging项目实战之电商零售对话机器人运行流程调试全程演示(七十八)

   本文继续围绕工业级业务对话平台和框架Rasa,对Rasa项目实战之电商零售Customer Service智能业务对话机器人运行流程进行剖析,并使用Rasa shell debug模式来演示对话过程及调试问题。

一、Rasa项目实战之电商零售Customer Service智能业务对话机器人运行流程及项目Bug调试全程演示

  1. 电商零售Customer Service智能业务对话机器人功能分析

在这个项目中会实现一些核心功能:

-查询订单状态

-取消购买的商品

-退回购买的商品

-检索是否有想购买的商品

-商品信息订阅功能

通过这个项目结合Rasa提供的框架可以扩展到任何的零售行业或者电商行业的智能业务对话机器人。在开发中有几个关键点需要注意,一是能否更精细地理解零售或者电商行业的数据,判断用户所要表达的意图和想要做的事情,二是决策系统或者说对话管理系统如何设计,三是对话机器人的异常处理和版本迭代,这是因为任何对话机器人都会面临人的语言的不确定性,需要考虑如何更好地处理这种情况,尤其在前期的版本中,理论上不大可能覆盖用户所有的情况,所以从这个角度来说,是一个持续改进的过程。

  2.  电商零售Customer Service智能业务对话机器人运行流程

运行命令rasa visualize获取对话流程可视化图:

执行完成后会自动弹出网页显示可视化流程图,可以看到整个流程比较复杂。

下面是左边部分的流程图:

从图中可以看到,主要使用了以下forms:

-cancel_form:订单取消表格

-return_form:商品退回表格

-product_updates_form:产品更新表格

-product_stock_form:库存信息表格

-order_status_form:订单状态表格

每个form下面都有对应的action,这些actions会触发form “suvey_form”用于收集客户的反馈信息。

中间部分的流程图:

右边部分的流程图:

在运行命令rasa train进行训练时出现报错信息:

根据提示信息,需要在domain文件里添加version信息:

针对另外的报错信息:Can’t load class for name ‘DucklingHTTPExtractor’,在config.yml查找相关的配置信息:

这时可以把name更新为”DucklingEntityExtractor”:

重新运行命令rasa train进行训练,可以看到没有报错信息了:

依次对各个组件进行训练,下图中仅展示相关policies组件的训练情况:

-MemoizationPolicy

-RulePolicy

-TEDPolicy

    训练完成后模型会通过序列化操作保存为文件:

运行命令启动duckling:docker run -p 8000:8000 rasa/duckling

  3.  使用Rase shell --debug模式测试电商零售Customer Service项目及问题Bug思考

运行命令rasa shell –debug以调试模式启动Rasa server:

运行命令rasa run actions –debug 启动action server:

输入信息:Hi,对话机器人响应如下:

输入信息检查order status:

对话机器人输出信息:

输入email信息:

输出信息,可以看到返回了订单状态信息:

根据上述选项选择之后输入信息:

根据用户输入的反馈信息对话机器人响应如下:

继续输入查询订单状态信息:

输出订单状态信息:

这时对话机器人没有再请求email,这是因为session中已经保存了之前输入的email的值:

在action里定义了使用的数据库:

重启一个新的对话session,输入查询订单状态信息:

对话机器人返回输出信息:

输入email,这里故意输入一个在数据库中不存在的email:

由于数据库不存在上面输入的email,所以对话机器人返回信息显示没有找到这个email所对应的订单,并且让用户提供反馈:

提供反馈信息:

然后就结束了对话过程:

猜你喜欢

转载自blog.csdn.net/m0_49380401/article/details/123648902