diff --git a/src/chat/replyer/default_generator.py b/src/chat/replyer/default_generator.py index cae4e3e10..41eb8a584 100644 --- a/src/chat/replyer/default_generator.py +++ b/src/chat/replyer/default_generator.py @@ -617,13 +617,13 @@ class DefaultReplyer: chat_target_name = ( self.chat_target_info.get("person_name") or self.chat_target_info.get("user_nickname") or "对方" ) - chat_target_1 = await global_prompt_manager.get_prompt_async( + chat_target_1 = await global_prompt_manager.format_prompt( "chat_target_private1", sender_name=chat_target_name ) - chat_target_2 = await global_prompt_manager.get_prompt_async( + chat_target_2 = await global_prompt_manager.format_prompt( "chat_target_private2", sender_name=chat_target_name ) - + prompt = await global_prompt_manager.format_prompt( template_name, expression_habits_block=expression_habits_block, @@ -747,13 +747,13 @@ class DefaultReplyer: chat_target_name = ( self.chat_target_info.get("person_name") or self.chat_target_info.get("user_nickname") or "对方" ) - chat_target_1 = await global_prompt_manager.get_prompt_async( + chat_target_1 = await global_prompt_manager.format_prompt( "chat_target_private1", sender_name=chat_target_name ) - chat_target_2 = await global_prompt_manager.get_prompt_async( + chat_target_2 = await global_prompt_manager.format_prompt( "chat_target_private2", sender_name=chat_target_name ) - + template_name = "default_expressor_prompt" prompt = await global_prompt_manager.format_prompt( diff --git a/src/mais4u/mais4u_chat/s4u_chat.py b/src/mais4u/mais4u_chat/s4u_chat.py index dac652a98..28c19ab74 100644 --- a/src/mais4u/mais4u_chat/s4u_chat.py +++ b/src/mais4u/mais4u_chat/s4u_chat.py @@ -165,6 +165,9 @@ class S4UChat: self._is_replying = False self.gpt = S4UStreamGenerator() + self.interest_dict: Dict[str, float] = {} # 用户兴趣分 + self.at_bot_priority_bonus = 100.0 # @机器人的优先级加成 + self.normal_queue_max_size = 50 # 普通队列最大容量 logger.info(f"[{self.stream_name}] S4UChat with two-queue system initialized.") def _is_vip(self, message: MessageRecv) -> bool: @@ -196,7 +199,7 @@ class S4UChat: async def add_message(self, message: MessageRecv) -> None: """根据VIP状态和中断逻辑将消息放入相应队列。""" is_vip = self._is_vip(message) - self._get_message_priority(message) + new_priority_score = self._calculate_base_priority_score(message) should_interrupt = False if self._current_generation_task and not self._current_generation_task.done(): @@ -218,11 +221,11 @@ class S4UChat: new_sender_id = message.message_info.user_info.user_id current_sender_id = current_msg.message_info.user_info.user_id # 新消息优先级更高 - if new_priority_score > current_priority_score: + if new_priority_score > current_priority: should_interrupt = True logger.info(f"[{self.stream_name}] New normal message has higher priority, interrupting.") # 同用户,新消息的优先级不能更低 - elif new_sender_id == current_sender_id and new_priority_score >= current_priority_score: + elif new_sender_id == current_sender_id and new_priority_score >= current_priority: should_interrupt = True logger.info(f"[{self.stream_name}] Same user sent new message, interrupting.")