我目前仅在python中实现Chatbot。
在我当前的实现中,每次用户从会话开始新的聊天时,都会启动另一个Chatbot实例,因此Chatbot从初始状态开始。
我希望改变这种行为,使其类似于在Facebook / Messenger上进行的聊天,在聊天中,您可以在会话之间无缝切换,同时聊天时不会出现不一致的情况。即,我想要这些属性:
要实现第一点,我使用了django-channels文档中的this example,并通过为每个用户创建单个组/聊天室对其进行了修改。来自同一用户的所有会话都连接到相同的组/聊天室,因此无论从何处发送邮件,都接收该组/聊天室中的所有消息。
但是,此实现当前存在一个错误。每次连接用户时,它都会初始化一个Chatbot实例,该实例再次从初始状态开始,而较旧的连接具有当前处于不同状态的Chatbot实例。
这会导致不一致的回复,具体取决于用户在哪个窗口中键入内容。
基本上,我们有两个会话与两个不同的Chatbot实例对话,而不是让两个会话与同一个Chatbot实例对话,并且来自这四个来源的消息都添加到了同一个聊天室中。
此外,我们通过每个用户保留多个Chatbot实例来浪费资源,而该实例随着当前活动会话的数量而增加。
我希望所有用户窗口都与同一个Chatbot实例进行交互。最好的实现方式是什么?
目前,我可以想到三种解决方案:
还有其他解决方案吗?理想的解决方案是什么?
我正在使用以下技术: