修改了 AgentNamespace 类,将全局实例变量替换为字典,使用用户 UUID 作为键

This commit is contained in:
CakeCN
2026-01-09 11:23:02 +08:00
parent 3f14cbd6c1
commit de1ba08d7e
2 changed files with 8 additions and 5 deletions

View File

@@ -63,6 +63,11 @@ class VSCodeNamespace(Namespace):
class AgentNamespace(Namespace):
def __init__(self):
super().__init__()
# 使用字典存储每个用户的chatmanager和ase_client避免多用户冲突
self.user_chatmanagers = {}
self.user_ase_clients = {}
def _load_learning_progress(self, chatmanager, user_id, course_id, chapter_name, lesson_name, continue_learn):
"""加载并恢复用户学习进度
@@ -153,8 +158,9 @@ class AgentNamespace(Namespace):
if chatmanager.chat_historys:
emit('messages', chatmanager.chat_historys, room=user_uuid, namespace='/agent')
self.chatmanager = chatmanager
self.ase_client = user_uuid2ase_client[user_uuid]
# 存储每个用户的chatmanager和ase_client到字典中使用用户UUID作为键
self.user_chatmanagers[user_uuid] = chatmanager
self.user_ase_clients[user_uuid] = user_uuid2ase_client[user_uuid]
# 将restart设置为False避免后续重复处理
restart = chatmanager.restart