【有奖】多轮对话打断恢复,机人对话的解决方案
mxw2552261 发布于2018-11 浏览:19050 回复:63
3
收藏
最后编辑于2019-05

在业内发现有很多这样的需求,多轮对话过程中,对话未完成,但被其他事情打断,比如中途接了一个电话,如何恢复之前的对话继续交流呢?

开车场景:
人:找一下附近的川菜馆
机器:查询出附近的川菜馆列表
人:人均消费在100元左右的
机器:把刚才的列表进行过滤,过滤出人均消费在100元左右的
人:带停车场的
机器:重复上一步操作继续过滤把列表显示出来

这时进来了一个电话,此时是被动的
人:接听

或者是想约某个人一起共进晚餐,主动打出电话
人:打电话给老婆
机器:查询出两天记录,请选择第几个
人:大老婆(哈哈)

OK,打完电话了,刚才说了一大堆的餐厅选择是不是要重新再来一遍?那累死了,也不友好,所以如何恢复刚才的对话,继续上一轮或者是前几轮未完成的对话呢?

大家有没有自己的解决方案呢?先讨论讨论,下周我会把我自己的方案发出来跟大家分享。

刚跟百度小姐姐申请,如果大家的方案很不错,送小白板一个,共十个哟

收藏
点赞
3
个赞
共63条回复 最后由mxw2552261回复于2019-05
#44goJhou回复于2018-11
#43 daipeng_hi回复
栈是能做,就是不够灵活,只能针对上一级

支持原子操作的栈 了解一下

0
#43daipeng_hi回复于2018-11
#42 goJhou回复
就题主设的题,是栈能做的

栈是能做,就是不够灵活,只能针对上一级

0
#42goJhou回复于2018-11
#41 才能我浪费99回复
这个最终选了那个方案啊

就题主设的题,是栈能做的

0
#41才能我浪费99回复于2018-11

这个最终选了那个方案啊

0
#40才能我浪费99回复于2018-11
#38 goJhou回复
这是这个场景下最快的数据结构

感觉用栈还是太单一了,因为不一定是后进先出

0
#39goJhou回复于2018-11
#37 liguanghui2588回复
这个还涉及到出栈吗

但是缺点也有,就是只能返回上一个意图。如果有3个以上的意图想自由的来回切换可能就有点困难了,。2个意图切换用栈妥妥的

0
#38goJhou回复于2018-11
#37 liguanghui2588回复
这个还涉及到出栈吗

这是这个场景下最快的数据结构

0
#37liguanghui2588回复于2018-11
#26 goJhou回复
使用一个栈结构,将token给保存起来。只要有合适的时机,出栈解决就可以了。 这一块适合放在unit的上层去做。
展开

这个还涉及到出栈吗

0
#36liguanghui2588回复于2018-11
#33 13897996271回复
这种机制其实很简单,只要记住n-1次检索结果的标识,当中断后继续进行时,有一组关键词(比如:刚才我们聊到哪里了?上一次检索结果;或者接着聊等等)可以进行唤醒就可以了,在对话继续时,如果放弃关键字唤醒就默认开始新的对话了。这样既节省资源,又满足需求。
展开

这种中断可以的

0
#35155******23回复于2018-11

不知后续采取何种呢

0
#34蓝色的风339回复于2018-11
#26 goJhou回复
使用一个栈结构,将token给保存起来。只要有合适的时机,出栈解决就可以了。 这一块适合放在unit的上层去做。
展开

这个说的很专业啊

0
#3313897996271回复于2018-11

这种机制其实很简单,只要记住n-1次检索结果的标识,当中断后继续进行时,有一组关键词(比如:刚才我们聊到哪里了?上一次检索结果;或者接着聊等等)可以进行唤醒就可以了,在对话继续时,如果放弃关键字唤醒就默认开始新的对话了。这样既节省资源,又满足需求。

0
#32liguanghui2588回复于2018-11

实现多轮对话主要就是类似记忆并保存的机制,对话的时刻被打断,也就是中断之后把这刻的对话保存一下,然后你的打断后的对话结束后会自动恢复到打断前的对话

0
#31daipeng_hi回复于2018-11
#30 daipeng_hi回复
其实我感觉不仅仅要解决恢复上一轮的对话,应该可以恢复以前多轮对话;每次会话生产唯一id,被 中断就存储起来,以后每次可以再适当时机自动唤醒并提示是否继续以前多轮对话;默认可以恢复最近一轮
展开

同时被中断后用户再次对话能根据用户说的关键词能智能识别出来是之前存储哪一轮的对话就更好了;

好了,想法是提出来了,能不能实现或者好不好实现就不知道了,哈哈

0
#30daipeng_hi回复于2018-11

其实我感觉不仅仅要解决恢复上一轮的对话,应该可以恢复以前多轮对话;每次会话生产唯一id,被 中断就存储起来,以后每次可以再适当时机自动唤醒并提示是否继续以前多轮对话;默认可以恢复最近一轮

0
#29189******80回复于2018-11
#22 蓝色的风339回复
感觉这个问题最后可能关键就是细节

没错,把大家能想到的细节结合起来,这样子就能更加完善了

0
#28btr930730回复于2018-11

大家发表的基本全面了

0
#27btr930730回复于2018-11
#6 想123666回复
这些突然打断对话的指令默认识别成对话暂停程序,待暂停程序恢复后再提示是否继续之前的对话~(即暂时储存功能)
展开

暂时储存功能在这里得到很好的应用

0
#26goJhou回复于2018-11

使用一个栈结构,将token给保存起来。只要有合适的时机,出栈解决就可以了。

这一块适合放在unit的上层去做。

0
#25Bzjgis回复于2018-11
#23 189******80回复
对呀,有记忆功能就可以解决了

对,多轮对话,不就是希望可以接着之前的对话意图来进行么

0
TOP
切换版块