最后编辑于2019-05
在业内发现有很多这样的需求,多轮对话过程中,对话未完成,但被其他事情打断,比如中途接了一个电话,如何恢复之前的对话继续交流呢?
开车场景:
人:找一下附近的川菜馆
机器:查询出附近的川菜馆列表
人:人均消费在100元左右的
机器:把刚才的列表进行过滤,过滤出人均消费在100元左右的
人:带停车场的
机器:重复上一步操作继续过滤把列表显示出来
这时进来了一个电话,此时是被动的
人:接听
或者是想约某个人一起共进晚餐,主动打出电话
人:打电话给老婆
机器:查询出两天记录,请选择第几个
人:大老婆(哈哈)
OK,打完电话了,刚才说了一大堆的餐厅选择是不是要重新再来一遍?那累死了,也不友好,所以如何恢复刚才的对话,继续上一轮或者是前几轮未完成的对话呢?
大家有没有自己的解决方案呢?先讨论讨论,下周我会把我自己的方案发出来跟大家分享。
刚跟百度小姐姐申请,如果大家的方案很不错,送小白板一个,共十个哟
TOP
切换版块
支持原子操作的栈 了解一下
栈是能做,就是不够灵活,只能针对上一级
就题主设的题,是栈能做的
这个最终选了那个方案啊
感觉用栈还是太单一了,因为不一定是后进先出
但是缺点也有,就是只能返回上一个意图。如果有3个以上的意图想自由的来回切换可能就有点困难了,。2个意图切换用栈妥妥的
这是这个场景下最快的数据结构
这个还涉及到出栈吗
这种中断可以的
不知后续采取何种呢
这个说的很专业啊
这种机制其实很简单,只要记住n-1次检索结果的标识,当中断后继续进行时,有一组关键词(比如:刚才我们聊到哪里了?上一次检索结果;或者接着聊等等)可以进行唤醒就可以了,在对话继续时,如果放弃关键字唤醒就默认开始新的对话了。这样既节省资源,又满足需求。
实现多轮对话主要就是类似记忆并保存的机制,对话的时刻被打断,也就是中断之后把这刻的对话保存一下,然后你的打断后的对话结束后会自动恢复到打断前的对话
同时被中断后用户再次对话能根据用户说的关键词能智能识别出来是之前存储哪一轮的对话就更好了;
好了,想法是提出来了,能不能实现或者好不好实现就不知道了,哈哈
其实我感觉不仅仅要解决恢复上一轮的对话,应该可以恢复以前多轮对话;每次会话生产唯一id,被 中断就存储起来,以后每次可以再适当时机自动唤醒并提示是否继续以前多轮对话;默认可以恢复最近一轮
没错,把大家能想到的细节结合起来,这样子就能更加完善了
大家发表的基本全面了
暂时储存功能在这里得到很好的应用
使用一个栈结构,将token给保存起来。只要有合适的时机,出栈解决就可以了。
这一块适合放在unit的上层去做。
对,多轮对话,不就是希望可以接着之前的对话意图来进行么