选择节点
更新时间:2020-11-05
作用
如果有多个选项,期望通过选择不同的选项来进行对话,可以使用选择节点。比如:问题或商品推荐,根据用户的选择,给出对应的结果;病人问诊场景,引导病人选择身体情况,根据不同情况给出最终答复。
实现需求
- 机器人给用户推荐热门旅游城市,用户选择城市之后给出对应的回复。
用户:旅游城市
机器人:为您推荐如下热门城市:北京,重庆,香港,上海,深圳
用户:北京 / 都想去 / 不想去
机器人:北京的介绍如下 / 多个城市介绍如下 / 好的,以后再为您推荐
配置方法
- 流程图如下:
- 拖拽一个选择节点,添加询问话术,该话术是进入节点后机器人主动询问的语句。定义获取选择结果的变量,该变量存储的结果是一个列表,用于在后面的连线节点做判断,还可用于在答复节点配置答复内容。
-
选择内容配置
-
自定义内容
- 编辑选项内容,选择内容为展示的选项;还可为选择内容补充附加信息,可进行选择和答复配置,附加信息为key-value形式;key为附加信息左侧数据,value为右侧数据。数据格式详见使用全局变量下的图片。
-
使用全局变量
- 先使用自定义节点定义一个列表结构的全局变量,然后使用该变量。一个选项为列表中的一个字典数据。字典中,option必须配置,对应展示的选择内容;其他的key-value是附加信息,可选。
-
-
配置不同选择情况下连线节点的判断条件
-
选一个:
- 模式:编程模式
- 判断方式:获取选择结果赋值的变量列表长度是否等于1
- 写法:len(svc_vars['变量名']) == 1
- 模式:可视化模式
- 判断方式:判断用户选择的选项是否为某一个选项内容,因为只有一个,所以下标为0
-
全选:
- 模式:编程模式
- 判断方式:获取选择结果赋值的变量列表长度是否大于1
- 写法:len(svc_vars['变量名']) > 1
-
不选:
- 模式:编程模式
- 判断方式:获取选择结果赋值的变量列表长度是否等于0
- 写法:len(svc_vars['变量名']) == 0
-
-
配置答复节点
-
选一个:
- 内容:使用变量信息作为答复内容
- 写法:{$变量名[0].key},0为选中的列表元素,key为需要获取的数据名称
-
全选:
- 内容:使用变量信息作为答复内容
- 写法:{$变量名[i].key},i为列表中元素下标,key为需要获取的数据名称
-
不选:
- 内容:自定义任意内容
-
-
保存发布之后按照配置对话。
- 选一个
- 全选
- 不选
注意事项
- 选择节点中,选项内容与附加信息最多10个。
- 附加信息为选项内容的补充信息,根据实际业务情况选择是否配置。
- 选择结果赋值的变量是一个列表,列表中是一个或多个字典。获取字典中数据的基本格式:{$变量名[i].key},i为列表中元素下标,key为需要获取的数据名称。
进行选择时,支持多种格式的话术:
- 选一个:序数指代(例如:第一个、第2、最后一个,倒数第3个),模糊指代选项内容(例如:北京、就选北京吧),模糊指代附加信息内容(例如:天安门、想去天安门)
- 不选:不要,不想去,都不要
- 全选:全要,全部,所有的,选所有,选全部
- 全选和不选的连线判断需使用编程模式。