资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

选择节点

作用

如果有多个选项,期望通过选择不同的选项来进行对话,可以使用选择节点。比如:问题或商品推荐,根据用户的选择,给出对应的结果;病人问诊场景,引导病人选择身体情况,根据不同情况给出最终答复。

实现需求

  • 机器人给用户推荐热门旅游城市,用户选择城市之后给出对应的回复。

用户:旅游城市

机器人:为您推荐如下热门城市:北京,重庆,香港,上海,深圳

用户:北京 / 都想去 / 不想去

机器人:北京的介绍如下 / 多个城市介绍如下 / 好的,以后再为您推荐

配置方法

  • 流程图如下:

完整流程图

  • 拖拽一个选择节点,添加询问话术,该话术是进入节点后机器人主动询问的语句。定义获取选择结果的变量,该变量存储的结果是一个列表,用于在后面的连线节点做判断,还可用于在答复节点配置答复内容。

选择节点配置

  • 选择内容配置

    • 自定义内容

      • 编辑选项内容,选择内容为展示的选项;还可为选择内容补充附加信息,可进行选择和答复配置,附加信息为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个),模糊指代选项内容(例如:北京、就选北京吧),模糊指代附加信息内容(例如:天安门、想去天安门)
    • 不选:不要,不想去,都不要
    • 全选:全要,全部,所有的,选所有,选全部
  • 全选和不选的连线判断需使用编程模式。