最后编辑于2019-05
在业内发现有很多这样的需求,多轮对话过程中,对话未完成,但被其他事情打断,比如中途接了一个电话,如何恢复之前的对话继续交流呢?
开车场景:
人:找一下附近的川菜馆
机器:查询出附近的川菜馆列表
人:人均消费在100元左右的
机器:把刚才的列表进行过滤,过滤出人均消费在100元左右的
人:带停车场的
机器:重复上一步操作继续过滤把列表显示出来
这时进来了一个电话,此时是被动的
人:接听
或者是想约某个人一起共进晚餐,主动打出电话
人:打电话给老婆
机器:查询出两天记录,请选择第几个
人:大老婆(哈哈)
OK,打完电话了,刚才说了一大堆的餐厅选择是不是要重新再来一遍?那累死了,也不友好,所以如何恢复刚才的对话,继续上一轮或者是前几轮未完成的对话呢?
大家有没有自己的解决方案呢?先讨论讨论,下周我会把我自己的方案发出来跟大家分享。
刚跟百度小姐姐申请,如果大家的方案很不错,送小白板一个,共十个哟
TOP
切换版块
是滴呀
这倒是不错啊
活动结束了啊
奖品奖励结束了,但是还是可以参与讨论的哈。
活动早结束了
方法:做一个全局的打断规则,如果历史场景被再次提起进入,则规则被触发,则继续把上文中的该场景对话信息被调度出来来和用户再次对话
嗯嗯,非常有道理;以后多多参与,呵呵
多多参与互动,能学习,还能得到奖品,一举多得
竟然中奖了,哈哈;感谢官方,感谢大家,哈哈
大家好,谢谢大家积极踊跃的参与话题的讨论,有些同学回答的不错,有的同学回答的虽然不多,但也在点儿上。重点就在于建立用户,场景,意图 等 “栈” 的管理,记录断点信息,然后再进行恢复。
下面是获奖名单,名额虽然不多,但是能积极参与互动的同学基本都会送礼品,下次还会组织这样的讨论,大家敬请期待。
请获奖的小伙伴发送邮件到百度小姐姐的邮箱~
主题:活动名称
内容如下
社区ID:
姓名:
电话:
地址:
到v_guoweicheng@baidu.com
获奖名单 :
蓝白色呢
goJhou
13897996271
想123666
才能我浪费99
笔墨哥
dream_flying0
Bzjgis
daipeng_hi
mxw2552261
和时代脱节了吧~m妹
他好像是男的,哈哈
呵呵,Go妹解释的很详细啊。“要么都做,要么都不做”
场景:开车 问附近美食
用户突然接电话或打电话
1.首先,要让机器人不知道知道什么是“动作打断”。所以你要告诉他什么是动作(如上文说的接电话)。
所以我们要对动作进行标识。
2.对话中断后需要“恢复之前的对话内容”,而恢复的内容不是重新问一遍,而是将之前的内容跟对话者进行确认。
现在的问题应该是如何 进行动作的标识。
3.开车时无论接电话或是打电话,一般时间不会特别长。所以是否可以在上一轮对话中断后,机器人在中断后的一定时间内,进行主动询问?
4.主动询问时可以携带上一轮或上一轮加上大上一轮的词槽呢?
如:断开语音3分钟、5分钟、10分钟....
U:帮我查下霄云路附近的餐厅
A:霄云路附近的餐厅有........,您要去哪个?
U:某某火锅店吧......突然来了电话,接电话了。
A:断开5分钟后,主动提示用户
U: 主人,您是否还要继续查看霄云路的火锅店呢?
原子操作是指能在计算机最小时间单位内能做完的事。如果一个时间单位做不完,就会要两个以上的时间单位。
运算当然是越快越好。能做到原子的为何不用呢,何况现在题主这场景就切换2个sessionID这么简单的事,原子操作是最高效最好的选择。
同时题主只题到了从一个session插入到另一个session中,然后当session完成时再返回前一个session。
只在2个session来回切换的情况下,栈是最好的选择。
如果说是3个以上的session,就还要加入一些应用层的手段,来确定该恢复哪个session。这时候肯定用不了栈了。这时候考虑什么方法最好才是更值得思考的
当然都包括了
问个小白问题,1、为啥要保证原子性,2、楼主这个问题更专注的是解决方案的灵活性还是更关注高效的性能呢?
楼主只说两个意图间切换 这场景我依旧认为栈结构的性能比任何结构都要高效。 list没有出栈入栈 也不支持原子操作 不适合
感觉还是List更好一些
截止到这周五公布中奖结果。大家的方向基本都是用栈的方式来存储信息。可还说的都比较简单,还有没有更详细一定的说明呢?