add namespace logger

This commit is contained in:
CakeCN
2025-12-10 14:52:33 +08:00
parent 4d5a8bb23f
commit 36662654ba

View File

@@ -86,6 +86,7 @@ class AgentNamespace(Namespace):
chatmanager.function_manager.add_function(next_chapter, {'user_uuid': user_uuid}) chatmanager.function_manager.add_function(next_chapter, {'user_uuid': user_uuid})
if not chatmanager.restart:# 尝试加载用户学习进度 if not chatmanager.restart:# 尝试加载用户学习进度
self.app.logger.info(f"尝试加载用户学习进度: {user_id}, {course_id}, {chapter_name}, {lesson_name}")
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 need_skip_chapters = 0
@@ -96,7 +97,7 @@ class AgentNamespace(Namespace):
# 根据scores的数量确定需要跳过的章节数 # 根据scores的数量确定需要跳过的章节数
need_skip_chapters = len(progress['scores']) need_skip_chapters = len(progress['scores'])
chatmanager.scores = progress['scores'] chatmanager.scores = progress['scores']
print(f"恢复用户学习进度: {user_uuid}, 已完成 {need_skip_chapters} 个章节") self.app.logger.info(f"恢复用户学习进度: {user_id}, 已完成 {need_skip_chapters} 个章节")
# 恢复聊天历史 # 恢复聊天历史
if 'chat_historys' in progress: if 'chat_historys' in progress:
@@ -112,7 +113,7 @@ 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']
print(f"未找到学习记录,使用默认值: {progress_result['message']}") self.app.logger.info(f"未找到学习记录,使用默认值: {progress_result['message']}")
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)
@@ -185,10 +186,10 @@ class AgentNamespace(Namespace):
def on_language(self, language): def on_language(self, language):
ex = current_app.extensions ex = current_app.extensions
print(f"Language changed to: {language}") self.app.logger.info(f"Language changed to: {language}")
def on_message(self, data): def on_message(self, data):
print(f"Message from client: {data}") self.app.logger.info(f"Message from client: {data}")
ex = current_app.extensions ex = current_app.extensions
chatmanager = ex["user_uuid2chatmanager"] chatmanager = ex["user_uuid2chatmanager"]
uuid = session.get('user_uuid') uuid = session.get('user_uuid')
@@ -198,14 +199,14 @@ class AgentNamespace(Namespace):
if data['type'] == 'text': if data['type'] == 'text':
res = user_uuid2ase_client[uuid].send_text('dialog', data['data']) res = user_uuid2ase_client[uuid].send_text('dialog', data['data'])
chatmanager[uuid].chat_historys.append({'role': 'user', 'content': data['data']}) chatmanager[uuid].chat_historys.append({'role': 'user', 'content': data['data']})
print(f"Send text to route 'dialog' success: {res}") self.app.logger.info(f"Send text to route 'dialog' success: {res}")
if data['type'] == 'function': # 在这里 前端会发送允许执行的function与参数 if data['type'] == 'function': # 在这里 前端会发送允许执行的function与参数
print("function_call", data['data']) self.app.logger.info(f"function_call: {data['data']}")
d = data['data'] d = data['data']
res = chatmanager[uuid].function_call(d['data']['name'], d['data'].get('args', {})) res = chatmanager[uuid].function_call(d['data']['name'], d['data'].get('args', {}))
d['data'] = res.to_dict() d['data'] = res.to_dict()
print("function_call_res", d['data']) self.app.logger.info(f"function_call_res: {d['data']}")
emit(d['route'], d, room=uuid, namespace='/agent') emit(d['route'], d, room=uuid, namespace='/agent')
chatmanager[uuid].chat_historys.append({'role': 'user', 'content': data['data']}) chatmanager[uuid].chat_historys.append({'role': 'user', 'content': data['data']})
user_uuid2ase_client[uuid].send_text(d['route'], data['data']) user_uuid2ase_client[uuid].send_text(d['route'], data['data'])
@@ -216,10 +217,10 @@ class AgentNamespace(Namespace):
uuid = session.get('user_uuid') uuid = session.get('user_uuid')
user_uuid2ase_client = ex["user_uuid2ase_client"] user_uuid2ase_client = ex["user_uuid2ase_client"]
res = user_uuid2ase_client[uuid].send_voice('voice_in', voice_data['data']) res = user_uuid2ase_client[uuid].send_voice('voice_in', voice_data['data'])
print(f"Send voicce to route 'voice_in' success: {res}") self.app.logger.info(f"Send voicce to route 'voice_in' success: {res}")
def on_initiative(self,data): # 主动call def on_initiative(self,data): # 主动call
print("User active function call") self.app.logger.info("User active function call")
ex = current_app.extensions ex = current_app.extensions
uuid = session.get('user_uuid') uuid = session.get('user_uuid')
manager = ex["user_uuid2chatmanager"][uuid] manager = ex["user_uuid2chatmanager"][uuid]
@@ -232,7 +233,7 @@ class AgentNamespace(Namespace):
def on_disconnect(self,data): def on_disconnect(self,data):
print(f'AgentNamespace client disconnected, session user_uuid: {session.get("user_uuid", "unknown")}') self.app.logger.info(f'AgentNamespace client disconnected, session user_uuid: {session.get("user_uuid", "unknown")}')
ex = current_app.extensions ex = current_app.extensions
uuid = session.get('user_uuid') uuid = session.get('user_uuid')
user_uuid2chatmanager = ex.get("user_uuid2chatmanager", {}) user_uuid2chatmanager = ex.get("user_uuid2chatmanager", {})
@@ -242,15 +243,15 @@ class AgentNamespace(Namespace):
# 获取用户ID # 获取用户ID
uuid2username = ex.get("uuid2username", {}) uuid2username = ex.get("uuid2username", {})
user_id = uuid2username.get(uuid, "unknown") user_id = uuid2username.get(uuid, "unknown")
current_app.logger.debug(f"get user's dialog his user_id={user_id}") self.app.logger.debug(f"get user's dialog his user_id={user_id}")
# 调用保存学习进度功能 # 调用保存学习进度功能
chatmanager = user_uuid2chatmanager.get(uuid) chatmanager = user_uuid2chatmanager.get(uuid)
if chatmanager: if chatmanager:
save_result = save_learning_progress(chatmanager, user_id) save_result = save_learning_progress(chatmanager, user_id)
print(f"保存学习进度结果: {save_result}") self.app.logger.info(f"保存学习进度结果: {save_result}")
except Exception as e: except Exception as e:
print(f"保存学习进度时发生异常: {str(e)}") self.app.logger.error(f"保存学习进度时发生异常: {str(e)}")
# 执行原有的断开连接逻辑 # 执行原有的断开连接逻辑
if uuid in user_uuid2chatmanager: if uuid in user_uuid2chatmanager:
@@ -260,5 +261,5 @@ class AgentNamespace(Namespace):
if uuid: if uuid:
leave_room(uuid, namespace='/agent') leave_room(uuid, namespace='/agent')
print("VSCode client disconnected") self.app.logger.info("VSCode client disconnected")
print("Disconnect reason:"+str(data)) self.app.logger.info(f"Disconnect reason: {str(data)}")