diff --git a/bot.py b/bot.py index 631abd61..ff914f96 100644 --- a/bot.py +++ b/bot.py @@ -63,10 +63,10 @@ async def graceful_shutdown(): # sourcery skip: use-named-expression try: logger.info("正在优雅关闭麦麦...") - from src.plugin_system.core.events_manager import events_manager - from src.plugin_system.base.component_types import EventType + from src.plugin_system.apis.event_api import get_event # 触发 ON_STOP 事件 - _ = await events_manager.handle_mai_events(event_type=EventType.ON_STOP) + on_stop_event = get_event("on_stop") + await on_stop_event.activate() # 停止所有异步任务 await async_task_manager.stop_and_wait_all_tasks() diff --git a/src/chat/heart_flow/heartFC_chat.py b/src/chat/heart_flow/heartFC_chat.py index 6805d219..607e32f0 100644 --- a/src/chat/heart_flow/heartFC_chat.py +++ b/src/chat/heart_flow/heartFC_chat.py @@ -24,7 +24,7 @@ from src.chat.frequency_control.focus_value_control import focus_value_control from src.chat.express.expression_learner import expression_learner_manager from src.person_info.relationship_builder_manager import relationship_builder_manager from src.person_info.person_info import Person -from src.plugin_system.base.component_types import ChatMode, EventType, ActionInfo +from src.plugin_system.base.component_types import ChatMode, ActionInfo from src.plugin_system.core import events_manager from src.plugin_system.apis import generator_api, send_api, message_api, database_api from src.mais4u.mai_think import mai_thinking_manager @@ -438,10 +438,13 @@ class HeartFChatting: # actions_before_now_block=actions_before_now_block, message_id_list=message_id_list, ) - if not await events_manager.handle_mai_events( - EventType.ON_PLAN, None, prompt_info[0], None, self.chat_stream.stream_id - ): - return False + + from src.plugin_system.apis.event_api import get_event + # 触发 ON_PLAN 事件 + on_plan_event = get_event("on_plan") + if not await on_plan_event.activate(None, prompt_info[0], None, self.chat_stream.stream_id): + return + with Timer("规划器", cycle_timers): action_to_use_info, _ = await self.action_planner.plan( mode=mode, diff --git a/src/chat/message_receive/bot.py b/src/chat/message_receive/bot.py index bb667cbf..8bf67908 100644 --- a/src/chat/message_receive/bot.py +++ b/src/chat/message_receive/bot.py @@ -257,8 +257,11 @@ class ChatBot: await MessageStorage.store_message(message, chat) logger.info(f"命令处理完成,跳过后续消息处理: {cmd_result}") return - - if not await events_manager.handle_mai_events(EventType.ON_MESSAGE, message): + + from src.plugin_system.apis.event_api import get_event + # 触发 ON_MESSAGE 事件 + on_message_event = get_event("on_message") + if not await on_message_event.activate(message): return # 确认从接口发来的message是否有自定义的prompt模板信息 diff --git a/src/chat/replyer/default_generator.py b/src/chat/replyer/default_generator.py index 77e35fc9..2fb0aa32 100644 --- a/src/chat/replyer/default_generator.py +++ b/src/chat/replyer/default_generator.py @@ -203,12 +203,12 @@ class DefaultReplyer: if not prompt: logger.warning("构建prompt失败,跳过回复生成") return False, llm_response - from src.plugin_system.core.events_manager import events_manager - + + from src.plugin_system.apis.event_api import get_event + # 触发 POST_LLM 事件 + post_llm_event = get_event("post_llm") if not from_plugin: - if not await events_manager.handle_mai_events( - EventType.POST_LLM, None, prompt, None, stream_id=stream_id - ): + if not await post_llm_event.activate(None, prompt, None, stream_id=stream_id): raise UserWarning("插件于请求前中断了内容生成") # 4. 调用 LLM 生成回复 @@ -223,10 +223,14 @@ class DefaultReplyer: llm_response.reasoning = reasoning_content llm_response.model = model_name llm_response.tool_calls = tool_call - if not from_plugin and not await events_manager.handle_mai_events( - EventType.AFTER_LLM, None, prompt, llm_response, stream_id=stream_id - ): - raise UserWarning("插件于请求后取消了内容生成") + + from src.plugin_system.apis.event_api import get_event + # 触发 AFTER_LLM 事件 + after_llm_event = get_event("on_message") + if not from_plugin: + if not await after_llm_event.activate(None, prompt, llm_response, stream_id=stream_id): + raise UserWarning("插件于请求后取消了内容生成") + except UserWarning as e: raise e except Exception as llm_e: diff --git a/src/main.py b/src/main.py index 2c7393cf..8be43211 100644 --- a/src/main.py +++ b/src/main.py @@ -124,7 +124,7 @@ class MainSystem: # 触发 ON_START 事件 on_start_event = get_event("on_start") - _ = await on_start_event.activate() + await on_start_event.activate() # logger.info("已触发 ON_START 事件") try: init_time = int(1000 * (time.time() - init_start_time))