Rasa对话机器人之HelpDesk (三)

84 篇文章 16 订阅

一、HelpDesk智能对话机器人创建incident完整业务流程解析

下面是关于domain文件中关于slot “problem_description”的定义,在这里可以使用key “not_intent”指定哪些值不会触发slot的填充,也可以使用intent指定触发slot填充的intent:

重新训练模型:

模型训练完成后通过持久化操作进行保存:

使用交互式对话模式来深入了解对话机器人创建incident的业务流程。首先确认使用docker命令来启动duckling服务:

docker run -p 8000:8000 rasa/duckling

启动后显示:

以debug模式启动Rasa action server:

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

启动完成后会显示对话流程可视化图的URL:

点击URL可以看到当前对话的状态:

输入信息:I forgot my password

确认intent识别正确后继续执行:

slot “incident_title”的值被设置为“Problem resetting password”,根据提示需要运行form “open_incident_form”来向用户收集信息:

可以看到当前请求的slot是email,继续执行,输入以下email信息:

模型正确提取了Email信息,确认后继续执行:

slot “email”已经填充了刚才用户输入的值,继续按照提示运行form,这时从对话历史信息中可以看到” requested_slot”的值是priority,表明对话机器人当前需要向用户收集关于incident的” priority”:

检查可视化对话流程图,已经相应地进行了动态更新:

继续执行,根据对话机器人输出的button选项选择priority的值:

这里选择创建priority为low的incident,所以选择选项1:

这时slot “priority”的值被设置为”low”,继续根据提示运行form来完成信息收集,从输出可以看到,接下来需要收集的信息是” problem_description”:

输入问题描述:please reset my password

确认继续执行:

这时slot “problem_description”已经填充了刚才输入的信息,继续运行form完成信息收集:

“requested_slot”的值为”confirm”,表示当创建incident的信息收集完成后,需要用户确认是否要提交form:

选择Yes:

继续运行form:

这时可以看到这个form的所有slots都已经收集完成,下面是domain中关于这个form的定义,其中required_slots这个key定义了上面对话机器人需要依次向用户收集的信息:

接下来需要调用微服务action_open_incident,可视化流程图更新如下

二、创建intent的微服务解析

执行微服务action_open_incident,在action server端的日志输出如下:

这时查看可视化流程图,action_open_incident这一步由虚线框变为了实线框,表明已经执行完成:

这是微服务类:

需要实现接口Action中的name方法:

实现接口Action中的run方法:

从tracker中获取前面对话机器人向用户收集的slot信息:

如果用户选择取消创建incident,则调用模板输出消息,并且需要重置所有slot的值:

如果是本地模式,则构建一个message:

如果是调用第三方incident管理系统snow接口,则可以看到需要调用接口方法create_incident来创建incident,调用完成后返回response,再根据response解析出incident number,如果存在有效的incident number,则输出信息提示用户incident创建成功,否则从response中取出error信息返回给用户。

在方法的最后,需要重置当前所有slot的值为空,以便为下一次接受用户创建incident的请求做好准备,同时在这里会通过触发SlotSet事件来把当前email的值赋给另外一个slot “previous_email”,这样可以在某些场景下不需要用户再次输入email。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值