diff --git a/src/main.py b/src/main.py index 4b5d1bd8c..4e9c2abc4 100644 --- a/src/main.py +++ b/src/main.py @@ -83,7 +83,7 @@ class MainSystem: ) asyncio.create_task(bot_schedule.mai_schedule_start()) - # 启动FastAPI服务器 + # 将bot.py中的chat_bot.message_process消息处理函数注册到api.py的消息处理基类中 self.app.register_message_handler(chat_bot.message_process) # 初始化个体特征 diff --git a/src/plugins/chat/bot.py b/src/plugins/chat/bot.py index ae63d1213..2efb60a7e 100644 --- a/src/plugins/chat/bot.py +++ b/src/plugins/chat/bot.py @@ -48,6 +48,7 @@ class ChatBot: async def message_process(self, message_data: str) -> None: """处理转化后的统一格式消息 + 这个函数本质是预处理一些数据,根据配置信息和消息内容,预处理消息,并分发到合适的消息处理器中 heart_flow模式:使用思维流系统进行回复 - 包含思维流状态管理 - 在回复前进行观察和状态更新 @@ -75,14 +76,17 @@ class ChatBot: groupinfo = message.message_info.group_info userinfo = message.message_info.user_info + #用户黑名单拦截 if userinfo.user_id in global_config.ban_user_id: logger.debug(f"用户{userinfo.user_id}被禁止回复") return + #群聊黑名单拦截 if groupinfo != None and groupinfo.group_id not in global_config.talk_allowed_groups: logger.trace(f"群{groupinfo.group_id}被禁止回复") return - + + #确认从接口发来的message是否有自定义的prompt模板信息 if message.message_info.template_info and not message.message_info.template_info.template_default: template_group_name = message.message_info.template_info.template_name template_items = message.message_info.template_info.template_items @@ -95,8 +99,11 @@ class ChatBot: template_group_name = None async def preprocess(): + #如果在私聊中 if groupinfo is None: + #是否在配置信息中开启私聊模式 if global_config.enable_friend_chat: + #是否进入PFC if global_config.enable_pfc_chatting: userinfo = message.message_info.user_info messageinfo = message.message_info @@ -109,8 +116,10 @@ class ChatBot: message.update_chat_stream(chat) await self.only_process_chat.process_message(message) await self._create_pfc_chat(message) + #禁止PFC,进入普通的心流消息处理逻辑 else: await self.heartflow_processor.process_message(message_data) + #群聊默认进入心流消息处理逻辑 else: await self.heartflow_processor.process_message(message_data)