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