本文继续围绕工业级业务对话平台和框架Rasa,对Rasa项目实战之银行金融Financial Bot多种状态转换通过Rasa Interactive方式进行分析。
一、Rasa项目实战之银行金融Financial Bot多种状态转换行为分析
- 使用Rasa Interactive分析Financial Bot从money transfer状态到search recipients状态
在对话机器人中使用多个form时,理论上不太可能使用rules来进行强制切换,这是由于充满了不确定性。Rasa是基于Transformer通过上下文来切换form,具体来说就是通过stories中的训练数据来学习form的切换。
下面是stories目录下的文件,可以看到专门定义了3个用于切换form的数据文件:
运行命令rasa interactive进入交互式对话模式:
训练数据如下:
输入信息:
确认后输出以下信息,提示是否运行form:
在rules.yml里,intent “transfer_money”触发的action是”transfer_money_form”:
确认运行form后,使用按钮选项提示用户进行转账确认:
确认后在输出的信息中看到slot “AA_CONTINUE_FORM”已经填充了值:
然后继续确认运行form,这时requested_slot为”PERSON”,表示需要向用户收集转账接收人的信息:
这是domain.yml中定义的form,可以看到在填充slot “AA_CONTINUE_FORM”之后,接下来就是请求slot “PERSON”: