onlogin reduce
This commit is contained in:
@@ -62,32 +62,24 @@ class VSCodeNamespace(Namespace):
|
||||
|
||||
|
||||
class AgentNamespace(Namespace):
|
||||
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
|
||||
if continue_learn:# 尝试加载用户学习进度
|
||||
def _load_learning_progress(self, chatmanager, user_id, course_id, chapter_name, lesson_name, continue_learn):
|
||||
"""加载并恢复用户学习进度
|
||||
|
||||
Args:
|
||||
chatmanager: 聊天管理器实例
|
||||
user_id: 用户ID
|
||||
course_id: 课程ID
|
||||
chapter_name: 章节名称
|
||||
lesson_name: 课时名称
|
||||
continue_learn: 是否继续学习
|
||||
|
||||
Returns:
|
||||
int: 需要跳过的章节数
|
||||
"""
|
||||
need_skip_chapters = 0
|
||||
|
||||
if continue_learn: # 尝试加载用户学习进度
|
||||
progress_result = load_learning_progress(user_id, course_id, chapter_name, lesson_name)
|
||||
need_skip_chapters = 0
|
||||
|
||||
if progress_result['exists']:
|
||||
progress = progress_result['data']
|
||||
@@ -111,6 +103,33 @@ class AgentNamespace(Namespace):
|
||||
# 使用默认值,确保有完整的结构
|
||||
chatmanager.chat_historys = progress_result['data']['chat_historys']
|
||||
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)
|
||||
user_uuid2ase_client[user_uuid] = HSAEngineClient(current_app.config["ASE_ENGINE_URL"], current_app.config["ASE_ENGINE_NAMESPACE"],id=user_id, chatmanager = chatmanager)
|
||||
|
||||
Reference in New Issue
Block a user