跳到内容
跳到主导航
对话流基本构成
- 1个开始单元
- N个触发、功能、回复单元
- 各单元间的连线
基础单元
对话流提供了4种对话单元,开始单元、触发单元、功能单元和回复单元
1. 开始单元
- 开始单元是每个对话流都有且只有一个的,标志着对话流的开始。
- 开始单元支持配置对话超时时间,指在等待用户语音指令时的最长时长,超过这个时长后,系统认为用户已经无需进行对话,对话流的状态会直接结束。
- 超时时长默认15秒,可以根据需要自行调整。
- 超时时长设置为0时,即表示无超时时长,会一直等待用户输入。
- 开始单元中的超时时间不会影响对话流中的意图的填槽过程。
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’的对话流。
3. 功能单元
- 当部分复杂的功能无法通过配置满足时,可通过功能节点编写代码完成,在代码中可以调用第三方API完成特殊的技能
- 能实现的功能举例:
- 功能节点可以根据NLP给出的解析结果
- 直接代码内部配置不同的answer
- 调用第三方API获得结果并返回
- 拼接某些URL的scheme,支持吊起某些OPK/APK的特殊页面
- 实现意图缺省的多轮
4. 回复单元
- 回复单元用于根据用户的输入指令,给用户相应的回复
- 回复的样式
- 文本:有时需要引用部分对话过程中收到的信息,比如用户查询天气的城市、日期等。可以通过引用槽位值的方式来实现;引用方式是输入{get_slot(intent1,slot1)}来引用intent1下的slot1的值,若当前对话流内没有重名的slot,也可以简化为{get_slot(slot1)}。
- 图片:支持上次一张图片,且只支持图片的原图上次
- 视频:支持上传视频的URL