机器人话术分享,整理逻辑及优化方案详解?( 二 )


再次地,这样的设置是通过人为地制定一套规则,让机器人可处理不同的业务问题,从而让机器人对话“智能” 。
3. 流程间跳转限制多个流程间,有诸多的流程是并列的关系 。但是 也有流程间是“父子”关系、“只进不出”关系 。
举个例子,比如流程A和流程B:

  • 在某些情况下,流程B的准入条件,必须是进入了流程A后,满足一定条件,如访客说了某个关键字,才可进入流程B 。这种关系即“父子”关系,A流程是父流程;B流程是子流程 。不进入A流程,就不能进入B流程 。
  • 在某些情况下,流程A可跳转到流程B,但是流程B不可跳转到流程A 。常见的情形是,流程A是“无意图”流程,流程B是有意图的流程 。一般而言,在识别了访客意图后,当访客当前轮次的表述是无意图,也不会跳转回“无意图”流程 。
通常,我们会通过流程关系的设置,来确定流程间的跳转关系和限制 。在Google Dialogflow中,Context的概念,就是为了设置流程间的“父子关系” 。不仅是流程间的跳转关系,流程中传递的信息(词槽信息)也会被传递/继承 。故称之为Context语境 。
4. 流程问句重复/不重复发送行业中有一部分场景,是需要把机器人做成“仿真”的 。即:让访客无感知/较弱感知到与自己对话的是一个机器人 。这些情况下,就需要将机器人做拟人化设计 。
流程问句的重复/不重复发送设计,是其中很重要的一步 。试想,如果在一个对话中(特别是客服等提供业务服务的对话),对方反复发送同一句话,你会不会很容易质疑对方就是一个机器人,很生气地结束对话,或者要求转人工?
那么,如何让机器人避免流程话术重复发送呢?
我们的处理是,在设计流程的问句时,再配置上该问句要收集的信息 。通过对上文该信息的识别、获取、存储与判断,来避免下文重复发送相同/类似的问句 。比如:
【流程A】机器人问:“您多大年纪呢?”,配置“年龄”的信息
【流程B】机器人问:“您今年几岁呢?”,配置“年龄”的信息
当上文执行了流程A的上述问题,并获取保存了访客的“年龄”信息,则在下文执行流程B时,再次询问“年龄”的问句将被跳过,不会再触发 。从而实现避免重复发同类问句的目的 。
当然,如果机器人是“非仿真”的机器人,则无需做这一重判断处理 。因为用户对于对话的认知就是在跟机器人对话,无所谓是否重复话术 。但是,AI不就是通过智能让生活更加便捷美好吗?仿真化对应的智能,势必会是以后的大趋势 。
5. 流程重复/不重复执行执行过的流程,当访客表述又再次满足其准入的条件时,流程还可以重复执行吗?
其实这一点和上面一点的思路有点类似 。流程重复执行,意味着发过了的问句/话术再次发送一遍 。对于“仿真”的机器人来说,一般是需要做避免重复执行的设计 。
比如:
  • 流程A中执行到第3轮话术,由于访客表述跳转到了流程B
  • 当流程B执行后,又满足流程A的条件从而回到流程A
  • 那么此时,应该
  • 从流程A的第4轮继续执行(接着刚才执行到的第3轮)
同样的,如果是“非仿真”的机器人,可容忍流程重复执行,则无需做此设计 。
6. 流程被打断后恢复/不恢复当流程发生跳转的,一般会伴随流程的打断 。可能的情形是,在原有流程中聊得挺好,访客突然说了个与该流程不相干的内容,或是另起一个话题,导致跳转到了另一个流程 。
比如:
  • 流程A中执行到第3轮话术,由于访客表述跳转到了流程B
  • 当流程B执行完
  • 此时,由于A流程是被打断的主要场景,访客更倾向于继续将A流程话题继续至结束 。故需恢复至A流程并执行完
这种情况一般是在A流程是主要场景/流程的情况下,在A流程中做的设置 。而对于那些较为次要的流程,则较无需做“打断后恢复”的设置 。因为有可能其跳转的是主要的流程,便无需做恢复动作 。
7. 信息采集与追问对话的本质是对话双方信息的交流 。在对话流程进行中,信息的采集尤为重要 。信息不仅可作为机器人话术的组成部分、作为访客信息记录/传递,还可作为条件判断的来源、第三方接口的传递内容 。所以信息采集对于对话流程来说很重要 。
所以,一般我们在设计流程的问句时,会设置相应的信息采集内容 。还是上面的例子: 机器人问:“您多大年纪呢?”,一般会设置“年龄”的信息采集 。可通过算法的实体识别(NER)技术,获取访客表述的年龄信息 。

推荐阅读