我目前纯粹在python中实现一个聊天机器人。
在我当前的实现中,每次用户从会话启动新的聊天时,都会启动另一个Chatbot实例,因此聊天机器人从初始状态开始。
我希望改变这种行为,使之类似于Facebook/Messenger上的聊天,在这种情况下,您可以在会话之间无缝移动,同时进行一次没有不一致的聊天。也就是说,我想要这些属性:
为了实现第一点,我使用了django通道文档中的这个例子,并通过为每个用户创建一个组/聊天室对其进行了修改。来自同一个用户的所有会话都连接到同一个组/聊天室,因此接收组/聊天室中的所有消息,而不管它们是从哪里发送的。
但是,这个实现目前有一个错误。每次连接用户时,它都会初始化一个Chatbot实例,该实例再次从初始状态开始,而旧的连接具有当前处于不同状态的Chatbot实例。
这导致不一致的答复,这是不同的,根据哪个窗口,用户键入的东西。
基本上,我们没有让两个会话与同一个Chatbot实例对话,而是有两个会话与两个不同的Chatbot实例对话,所有这四个源的消息都被添加到同一个聊天室中。
此外,我们通过保持每个用户多个Chatbot实例来浪费资源,这会随着当前活动会话的数量而增加。
我希望所有的用户窗口都与同一个Chatbot实例进行交互。实现这一目标的最佳方式是什么?
目前,我可以想到三种解决方案:
还有其他解决办法吗?什么是理想的解决方案?
我正在使用以下技术:
发布于 2019-06-19 09:39:10
你看过rasa (Rasa + Rasa )吗?如果使用Facebook信使频道,所需的行为是默认行为。
https://stackoverflow.com/questions/56186192
复制相似问题