添加分支流程
更新时间:2020-01-13
前言
上一个章节,我们通过添加词槽收集节点,给对话流程丰富了词槽收集的能力,本章节就会通过添加分支流程赋予TaskFlow控制流程走向的能力。
实现需求
新增一条对话流程,当命中外卖意图后,可以主动收集外卖来源,并进行答复。
新增对话流程
- 添加外卖来源的词槽收集节点。
- 并拖拽一条连线,条件为命中外卖意图。
- 添加外卖答复节点,与外卖来源的词槽收集节点连接,连线的,条件为命中外卖意图,操作如下图。
- 此时我们有拥有了两条对话流程,发布之后,我们来体验下对话效果吧。
知识点
连线优先级
当出现同一个节点指出多条连线的时候,会出现流程分支,就涉及到了连线优先级的概念。 大家可能注意到了,每条连线名称前面都会有一个数字,这就是该连线的优先级。 同一个节点指出的连线优先级默认顺序递增,初始值为1,数字越小优先级越高; 当多条连线的条件被同时命中时,选择优先级高的连线执行对话流程。
可用的条件判断类型
- 比较范围:分为四类,分别可以对用户Query输入内容、意图、词槽、全局变量进行判断。
用户Query输入内容
机器人接口的请求参数中
- 用户输入的文本内容
- 对应包含「等于」、「不等于」、「包含」和「不包含」四种
- 手动输入需要判断的内容
意图
当前轮对话的解析结果中
技能:下拉选择机器人下所有的技能
- 意图:仅可选择【意图】
- 比较方式:对应包含 「为空」、「不为空」、「等于」和「不等于」四种
- 手动输入需要判断的意图名称
词槽
上下文对话的解析结果中
- 词槽:下拉选择机器人中包含的词槽
- 比较方式:对应包含「已填充」、「未填充」、「等于」、「不等于」、「包含」和「不包含」六种
- 手动输入需要判断的内容
全局变量
全局变量中
- 输入框,填写对应的全局变量名称
- 比较方式:对应包含 「等于」和「不等于」两种
- 手动输入需要判断的内容,这里需要注意的是,全局变量如果是一个复杂的结构,在“可视化模式下”想快速取到里面的内容来进行比较,可以使用.和[]的方式来取。'[]'用来选取数组,比如list[0]即为数组的第一个;'.'用来获取下一级内容,比如json结构的第二级内容就需要用'.'来获取。
注意事项
开始节点指出的连线条件不能为空,否则会引起对话流程错乱
接下来
接下来我们会通过将调取业务系统资源,使用技能答复等能力添加到对话流程中,带领大家一步一步熟悉TaskFlow的使用。