很多时候我们需要和用户进行多轮对话来完成用户的需求,实现多轮对话有以下3种方式:
1. 追问语句
意图的参数是必选参数,如果没有解析出来就进行追问,如用户需要点咖啡,那咖啡的种类就是必选参数,如果用户说“来杯咖啡“,那就可以追问用户“您要点什么咖啡”
2. 连续对话语料
连续对话语料指用户在命中一次意图后,后面说的省略的语句,还能命中同一个意图。比如:
”北京今天天气怎么样?” “那明天呢?”
这些句子单独看是无法判断意图的,但是放在上下文中,就具备了明确的意义。
3.前置意图
你可以为每一个意图设置一个或者多个前置意图,这样就可以在意图之间建立起网络关系,进行参数的传递。前置意图可以设置最大距离,指几句对话后参数的传递才失效。默认为5,开发者可以根据自己的业务需要进行设置。
如空气质量和查询天气是相似的意图,两者都需要时间和城市两个参数,所以它们可以互相建立起前置意图的关系,在上下文的语境中,用户就不用重复表达相同的参数了。如:
“北京今天天气怎么样?” ”那空气质量呢?”
以新手教程中天气demo为例,以上三种上下文的简单示例如下:
熟练运用上述三种上下文配置,可以帮助开发者开发出顺畅的语音交互技能,完成复杂的业务逻辑。