From fe1784fa203a30a164f5ea94fe1877e2fe139a3d Mon Sep 17 00:00:00 2001 From: CakeCN Date: Thu, 11 Dec 2025 21:25:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=89=8D=E5=90=8E=E7=AB=AFnext=5Fchapter?= =?UTF-8?q?=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Html/apps/services/asectrl_service.py | 2 ++ Html/apps/sockets/namespaces.py | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Html/apps/services/asectrl_service.py b/Html/apps/services/asectrl_service.py index addc0d0..b34982c 100644 --- a/Html/apps/services/asectrl_service.py +++ b/Html/apps/services/asectrl_service.py @@ -35,6 +35,8 @@ def on_connect_to_ase(client, entry, init_data, **kwargs): clear_user_session(init_data['asengine_url'], init_data['asengine_token'], init_data['room']) restart = init_data.get("restart", False) + if restart: # 重启时,从-1章进入 0章 + ase_client.chatmanager.next_chapter() ase_client.chatmanager.load_now_chapter(load_code=restart) print("load_now_chapter with restart:", restart) if restart: diff --git a/Html/apps/sockets/namespaces.py b/Html/apps/sockets/namespaces.py index 1e4460c..1079214 100644 --- a/Html/apps/sockets/namespaces.py +++ b/Html/apps/sockets/namespaces.py @@ -128,18 +128,23 @@ class AgentNamespace(Namespace): 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) - chatmanager.init(user_uuid, user_uuid2ase_client[user_uuid], fmd, fmdp, fsp, course_id, chapter_name, lesson_name, max_iter=5, app=current_app, socketio=self) - backboard_manager.add_backboard(user_uuid, user_id, course_id, lesson_name, root_path=f'/home/{user_id}/{course_id}/{chapter_name}/{lesson_name}') + chatmanager.init(user_uuid, user_uuid2ase_client[user_uuid], + fmd, fmdp, fsp, course_id, chapter_name, lesson_name, max_iter=5, app=current_app, socketio=self) + backboard_manager.add_backboard(user_uuid, user_id, course_id, + lesson_name, root_path=f'/home/{user_id}/{course_id}/{chapter_name}/{lesson_name}') chatmanager.bb = backboard_manager.get_backboard(user_uuid) # 如果有保存的进度,需要跳过已经完成的章节、无需清空代码、对话历史恢复 if continue_learn: for _ in range(need_skip_chapters): chatmanager.next_chapter() + emit('next_chapter', room=user_uuid, namespace='/agent') # 恢复对话历史到前端 - 使用批量发送消息列表 if chatmanager.chat_historys: emit('messages', chatmanager.chat_historys, room=user_uuid, namespace='/agent')