mirror of https://github.com/Mai-with-u/MaiBot.git
开始将event迁移进新架构
parent
253a1a35d1
commit
a82c1a2d2d
6
bot.py
6
bot.py
|
|
@ -63,10 +63,10 @@ async def graceful_shutdown(): # sourcery skip: use-named-expression
|
||||||
try:
|
try:
|
||||||
logger.info("正在优雅关闭麦麦...")
|
logger.info("正在优雅关闭麦麦...")
|
||||||
|
|
||||||
from src.plugin_system.core.events_manager import events_manager
|
from src.plugin_system.apis.event_api import get_event
|
||||||
from src.plugin_system.base.component_types import EventType
|
|
||||||
# 触发 ON_STOP 事件
|
# 触发 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()
|
await async_task_manager.stop_and_wait_all_tasks()
|
||||||
|
|
|
||||||
|
|
@ -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.chat.express.expression_learner import expression_learner_manager
|
||||||
from src.person_info.relationship_builder_manager import relationship_builder_manager
|
from src.person_info.relationship_builder_manager import relationship_builder_manager
|
||||||
from src.person_info.person_info import Person
|
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.core import events_manager
|
||||||
from src.plugin_system.apis import generator_api, send_api, message_api, database_api
|
from src.plugin_system.apis import generator_api, send_api, message_api, database_api
|
||||||
from src.mais4u.mai_think import mai_thinking_manager
|
from src.mais4u.mai_think import mai_thinking_manager
|
||||||
|
|
@ -438,10 +438,13 @@ class HeartFChatting:
|
||||||
# actions_before_now_block=actions_before_now_block,
|
# actions_before_now_block=actions_before_now_block,
|
||||||
message_id_list=message_id_list,
|
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
|
from src.plugin_system.apis.event_api import get_event
|
||||||
):
|
# 触发 ON_PLAN 事件
|
||||||
return False
|
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):
|
with Timer("规划器", cycle_timers):
|
||||||
action_to_use_info, _ = await self.action_planner.plan(
|
action_to_use_info, _ = await self.action_planner.plan(
|
||||||
mode=mode,
|
mode=mode,
|
||||||
|
|
|
||||||
|
|
@ -258,7 +258,10 @@ class ChatBot:
|
||||||
logger.info(f"命令处理完成,跳过后续消息处理: {cmd_result}")
|
logger.info(f"命令处理完成,跳过后续消息处理: {cmd_result}")
|
||||||
return
|
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
|
return
|
||||||
|
|
||||||
# 确认从接口发来的message是否有自定义的prompt模板信息
|
# 确认从接口发来的message是否有自定义的prompt模板信息
|
||||||
|
|
|
||||||
|
|
@ -203,12 +203,12 @@ class DefaultReplyer:
|
||||||
if not prompt:
|
if not prompt:
|
||||||
logger.warning("构建prompt失败,跳过回复生成")
|
logger.warning("构建prompt失败,跳过回复生成")
|
||||||
return False, llm_response
|
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 from_plugin:
|
||||||
if not await events_manager.handle_mai_events(
|
if not await post_llm_event.activate(None, prompt, None, stream_id=stream_id):
|
||||||
EventType.POST_LLM, None, prompt, None, stream_id=stream_id
|
|
||||||
):
|
|
||||||
raise UserWarning("插件于请求前中断了内容生成")
|
raise UserWarning("插件于请求前中断了内容生成")
|
||||||
|
|
||||||
# 4. 调用 LLM 生成回复
|
# 4. 调用 LLM 生成回复
|
||||||
|
|
@ -223,10 +223,14 @@ class DefaultReplyer:
|
||||||
llm_response.reasoning = reasoning_content
|
llm_response.reasoning = reasoning_content
|
||||||
llm_response.model = model_name
|
llm_response.model = model_name
|
||||||
llm_response.tool_calls = tool_call
|
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
|
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("插件于请求后取消了内容生成")
|
raise UserWarning("插件于请求后取消了内容生成")
|
||||||
|
|
||||||
except UserWarning as e:
|
except UserWarning as e:
|
||||||
raise e
|
raise e
|
||||||
except Exception as llm_e:
|
except Exception as llm_e:
|
||||||
|
|
|
||||||
|
|
@ -124,7 +124,7 @@ class MainSystem:
|
||||||
|
|
||||||
# 触发 ON_START 事件
|
# 触发 ON_START 事件
|
||||||
on_start_event = get_event("on_start")
|
on_start_event = get_event("on_start")
|
||||||
_ = await on_start_event.activate()
|
await on_start_event.activate()
|
||||||
# logger.info("已触发 ON_START 事件")
|
# logger.info("已触发 ON_START 事件")
|
||||||
try:
|
try:
|
||||||
init_time = int(1000 * (time.time() - init_start_time))
|
init_time = int(1000 * (time.time() - init_start_time))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue