走着走着路,想起了一个多人聊天的设想。
如果让机器人像真人一样对话,首先机器人应该做到这几个思维:
- 谁在和我聊
- 我现在在和谁聊
- 我要说什么
- 我要怎么说
然后想出常见机器人聊天的几个弊端:
回复太快,思维太迅捷
为了让聊天更像真人,应该是一个人一个人的进行回复的;且不是立刻回复。而是收集在一定范围时间内采集的内容。到了和它对话时再进行会话。
且回复期间,采集模块仍然在持续采集其他人的聊天内容。
接口找到回复后,分段发送消息至目标;
当确认自己说完的时候,返回一个回调。继续寻找下一个符合需求的会话信息;(时间戳相差最短的单位)
打字太快,内容太乱
并且,不再是一段长文本,而是根据语速和内容关联去多行发送。
没有情绪,唯唯诺诺
当会话队列过长时,进行选择性删除。当某用户是隐藏分高的用户,可能无论什么时候的对话,都可能会排在最前面。
所以这个模型主要由 采集模块、会话模块、回复模块 组成。
采集模块主要是实现会话排队,并在排队期间持续更新聊天请求的内容,并且等待回复模块的处理。完成后删除对应项目;类似排队;
会话模块当对话闲置时,会周期性去寻找采集模块是否有聊天请求项。选择聊天项委派给接口回复,并派发给回复模块进行分段回复,回复模块处理完成后,返回给会话模块一个回调。
依次循环执行… 直到队列空,进入闲置状态
tis: 长期没人找它聊天时候,偶尔也会主动出击。