onlogin reduce

This commit is contained in:
CakeCN
2025-12-11 17:47:13 +08:00
parent be78f480a5
commit ce4a9ac2ca

View File

@@ -62,32 +62,24 @@ class VSCodeNamespace(Namespace):
class AgentNamespace(Namespace): class AgentNamespace(Namespace):
def on_login(self, data): def _load_learning_progress(self, chatmanager, user_id, course_id, chapter_name, lesson_name, continue_learn):
self.app = current_app """加载并恢复用户学习进度
ex = current_app.extensions
uuid2username = ex["uuid2username"] Args:
backboard_manager = ex["backboard_manager"] chatmanager: 聊天管理器实例
data = json.loads(data) user_id: 用户ID
user_uuid = data['user_uuid'] course_id: 课程ID
course_id = data['course_id'] chapter_name: 章节名称
lesson_name = data['lesson_name'] lesson_name: 课时名称
chapter_name = data['chapter_name'] continue_learn: 是否继续学习
user_id = uuid2username[user_uuid]
session['user_uuid'] = user_uuid Returns:
join_room(user_uuid, namespace='/agent') # 将该用户加入以user_id为名的room int: 需要跳过的章节数
print(f'User connected with session user_uuid: {user_uuid}') """
need_skip_chapters = 0
user_uuid2chatmanager = ex["user_uuid2chatmanager"]
user_uuid2ase_client = ex["user_uuid2ase_client"] if continue_learn: # 尝试加载用户学习进度
if (user_uuid2ase_client.get(user_uuid,None) is not None and user_uuid2ase_client[user_uuid].connected):
user_uuid2ase_client[user_uuid].disconnect()
chatmanager = user_uuid2chatmanager[user_uuid]
chatmanager.function_manager.add_function(judge, {'course_id': course_id, 'root_path': f'/home/{user_id}/{course_id}/{chapter_name}/{lesson_name}'})
chatmanager.function_manager.add_function(next_chapter, {'user_uuid': user_uuid})
continue_learn = not chatmanager.restart
if continue_learn:# 尝试加载用户学习进度
progress_result = load_learning_progress(user_id, course_id, chapter_name, lesson_name) progress_result = load_learning_progress(user_id, course_id, chapter_name, lesson_name)
need_skip_chapters = 0
if progress_result['exists']: if progress_result['exists']:
progress = progress_result['data'] progress = progress_result['data']
@@ -111,6 +103,33 @@ class AgentNamespace(Namespace):
# 使用默认值,确保有完整的结构 # 使用默认值,确保有完整的结构
chatmanager.chat_historys = progress_result['data']['chat_historys'] chatmanager.chat_historys = progress_result['data']['chat_historys']
chatmanager.scores = progress_result['data']['scores'] chatmanager.scores = progress_result['data']['scores']
return need_skip_chapters
def on_login(self, data):
self.app = current_app
ex = current_app.extensions
uuid2username = ex["uuid2username"]
backboard_manager = ex["backboard_manager"]
data = json.loads(data)
user_uuid = data['user_uuid']
course_id = data['course_id']
lesson_name = data['lesson_name']
chapter_name = data['chapter_name']
user_id = uuid2username[user_uuid]
session['user_uuid'] = user_uuid
join_room(user_uuid, namespace='/agent') # 将该用户加入以user_id为名的room
print(f'User connected with session user_uuid: {user_uuid}')
user_uuid2chatmanager = ex["user_uuid2chatmanager"]
user_uuid2ase_client = ex["user_uuid2ase_client"]
if (user_uuid2ase_client.get(user_uuid,None) is not None and user_uuid2ase_client[user_uuid].connected):
user_uuid2ase_client[user_uuid].disconnect()
chatmanager = user_uuid2chatmanager[user_uuid]
chatmanager.function_manager.add_function(judge, {'course_id': course_id, 'root_path': f'/home/{user_id}/{course_id}/{chapter_name}/{lesson_name}'})
chatmanager.function_manager.add_function(next_chapter, {'user_uuid': user_uuid})
continue_learn = not chatmanager.restart
need_skip_chapters = self._load_learning_progress(chatmanager, user_id, course_id, chapter_name, lesson_name, continue_learn)
fmd,fmdp,fsp = load_full_markdown_file(course_id, chapter_name, lesson_name) fmd,fmdp,fsp = load_full_markdown_file(course_id, chapter_name, lesson_name)
user_uuid2ase_client[user_uuid] = HSAEngineClient(current_app.config["ASE_ENGINE_URL"], current_app.config["ASE_ENGINE_NAMESPACE"],id=user_id, chatmanager = chatmanager) user_uuid2ase_client[user_uuid] = HSAEngineClient(current_app.config["ASE_ENGINE_URL"], current_app.config["ASE_ENGINE_NAMESPACE"],id=user_id, chatmanager = chatmanager)