refactor(chat): 异步化聊天系统并重构兴趣值计算机制
将同步调用改为异步调用以提升性能,重构兴趣值计算流程以支持更灵活的组件化架构。主要改进包括: - 异步化ChatManager相关方法,避免阻塞主线程 - 重构兴趣值计算系统,从插件内部计算改为通过兴趣管理器统一处理 - 新增should_act字段支持更细粒度的动作决策 - 优化初始化逻辑,避免构造函数中的异步操作 - 扩展插件系统支持兴趣计算器组件注册 - 更新数据库模型以支持新的兴趣值相关字段 这些改进提升了系统的响应性能和可扩展性,同时保持了API的向后兼容性。
This commit is contained in:
@@ -48,17 +48,27 @@ class ChatMood:
|
||||
def __init__(self, chat_id: str):
|
||||
self.chat_id: str = chat_id
|
||||
|
||||
chat_manager = get_chat_manager()
|
||||
self.chat_stream = chat_manager.get_stream(self.chat_id)
|
||||
|
||||
if not self.chat_stream:
|
||||
raise ValueError(f"Chat stream for chat_id {chat_id} not found")
|
||||
|
||||
self.log_prefix = f"[{self.chat_stream.group_info.group_name if self.chat_stream.group_info else self.chat_stream.user_info.user_nickname}]"
|
||||
# 这些将在异步初始化中设置
|
||||
self.chat_stream = None # type: ignore
|
||||
self.log_prefix = f"[{chat_id}]"
|
||||
self._initialized = False
|
||||
|
||||
self.mood_state: str = "感觉很平静"
|
||||
self.is_angry_from_wakeup: bool = False # 是否因被吵醒而愤怒
|
||||
|
||||
async def _initialize(self):
|
||||
"""异步初始化方法"""
|
||||
if not self._initialized:
|
||||
from src.chat.message_receive.chat_stream import get_chat_manager
|
||||
chat_manager = get_chat_manager()
|
||||
self.chat_stream = await chat_manager.get_stream(self.chat_id)
|
||||
|
||||
if not self.chat_stream:
|
||||
raise ValueError(f"Chat stream for chat_id {self.chat_id} not found")
|
||||
|
||||
self.log_prefix = f"[{self.chat_stream.group_info.group_name if self.chat_stream.group_info else self.chat_stream.user_info.user_nickname}]"
|
||||
self._initialized = True
|
||||
|
||||
self.regression_count: int = 0
|
||||
|
||||
self.mood_model = LLMRequest(model_set=model_config.model_task_config.emotion, request_type="mood")
|
||||
|
||||
Reference in New Issue
Block a user