跳到内容 跳到主导航 跳到页脚

对话流管理

对话流基本构成

  • 1个开始单元
  • N个触发、功能、回复单元
  • 各单元间的连线

基础单元

对话流提供了4种对话单元,开始单元、触发单元、功能单元和回复单元

1. 开始单元

  • 开始单元是每个对话流都有且只有一个的,标志着对话流的开始。
  • 开始单元支持配置对话超时时间,指在等待用户语音指令时的最长时长,超过这个时长后,系统认为用户已经无需进行对话,对话流的状态会直接结束。
    • 超时时长默认15秒,可以根据需要自行调整。
    • 超时时长设置为0时,即表示无超时时长,会一直等待用户输入。
    • 开始单元中的超时时间不会影响对话流中的意图的填槽过程。
image.png

2. 触发单元

  • 触发单元用于接收用户的语音/文字,并对用户输入的信息进行一些条件判断,来决定后续如何回应用户
  • 触发单元的触发条件判断包括intent、slot、query和other四种:
    • intent:意图,用于判断用户的语音/文字指令是否能命中已配置的意图
      • intent条件中可选择的意图,是当前账号所属组织下的打开状态下的全部意图,均需要在文法预先配置
      • 已经配置到对话流中的意图,如果在文法配置模块被关闭,会导致对话流在进行到该意图时舞蹈响应
    • slot:槽位,用于判断用户指令中是否包含指定的槽位值
      • 需要先在当前触发单元配置了intent条件,才可以选择slot条件进行配置;
      • slot条件配置时,需要先选择是哪一个意图下,选择范围是当前触发单元配置的全部意图;选择完意图后,可以指定槽位和预期的槽位值。
    • query:即用户指令的原文,可以配置query完全等于某段文本,或query包含某些特定的关键词
      • 配置query = ‘xxxx’时,表示用户输入要和预置的条件完全一致才可以触发;
    • other:其他,主要用于存在对话分支的部分,当用户的输入无法命中其他的预设条件时,就会命中other条
      • other条件一定是单独存在的,配置了other条件的触发单元无法添加其他条件,已存在其他条件的触发单元也不能添加other条件。
  • 多条件触发时:可以通过点击“且”、“或”的按钮来添加多个条件逻辑判断用于多条件触发
    • 计算逻辑:先计算或再计算且,PS:(条件1 或 条件2)且(条件3 或 条件4)
    • 存在一些异常的情况,在配置过程中应当尽量避免:
      • 在触发单元中,应当避免配置类似‘intent = aaa’ 且 ‘intent = bbb’的条件;
      • 开始单元后连接的那一层触发单元,应当避免配置‘other’条件,否则可能会导致用户的语音输入全部进入了‘other’的对话流。
image.png
image.png

3. 功能单元

  • 当部分复杂的功能无法通过配置满足时,可通过功能节点编写代码完成,在代码中可以调用第三方API完成特殊的技能
  • 能实现的功能举例:
    • 功能节点可以根据NLP给出的解析结果
      • 直接代码内部配置不同的answer
      • 调用第三方API获得结果并返回
      • 拼接某些URL的scheme,支持吊起某些OPK/APK的特殊页面
      • 实现意图缺省的多轮
image.png

4. 回复单元

  • 回复单元用于根据用户的输入指令,给用户相应的回复
  • 回复的样式
    • 文本:有时需要引用部分对话过程中收到的信息,比如用户查询天气的城市、日期等。可以通过引用槽位值的方式来实现;引用方式是输入{get_slot(intent1,slot1)}来引用intent1下的slot1的值,若当前对话流内没有重名的slot,也可以简化为{get_slot(slot1)}。
    • 图片:支持上次一张图片,且只支持图片的原图上次
    • 视频:支持上传视频的URL
image.png

这篇文章是否有帮助?

0