diff --git a/src/chat/message_receive/message.py b/src/chat/message_receive/message.py index 1c8f7789e..6f2c3f784 100644 --- a/src/chat/message_receive/message.py +++ b/src/chat/message_receive/message.py @@ -108,7 +108,7 @@ class MessageRecv(Message): self.detailed_plain_text = message_dict.get("detailed_plain_text", "") self.is_emoji = False self.is_picid = False - self.is_mentioned = 0.0 + self.is_mentioned = None self.priority_mode = "interest" self.priority_info = None @@ -152,14 +152,10 @@ class MessageRecv(Message): elif segment.type == "mention_bot": self.is_mentioned = float(segment.data) return "" - elif segment.type == "set_priority_mode": - # 处理设置优先级模式的消息段 - if isinstance(segment.data, str): - self.priority_mode = segment.data - return "" elif segment.type == "priority_info": if isinstance(segment.data, dict): # 处理优先级信息 + self.priority_mode = "priority" self.priority_info = segment.data """ { diff --git a/src/chat/normal_chat/normal_chat.py b/src/chat/normal_chat/normal_chat.py index 6c285f21d..04958b607 100644 --- a/src/chat/normal_chat/normal_chat.py +++ b/src/chat/normal_chat/normal_chat.py @@ -494,7 +494,11 @@ class NormalChat: # 检查是否有用户满足关系构建条件 asyncio.create_task(self._check_relation_building_conditions()) - await self.reply_one_message(message) + do_reply = await self.reply_one_message(message) + response_set = do_reply if do_reply else [] + factor = 0.5 + cnt = sum([len(r) for r in response_set]) + await asyncio.sleep(max(1, factor * cnt - 3)) # 等待tts # 等待一段时间再检查队列 await asyncio.sleep(1) diff --git a/src/chat/utils/utils.py b/src/chat/utils/utils.py index a147846ca..edfb9f31c 100644 --- a/src/chat/utils/utils.py +++ b/src/chat/utils/utils.py @@ -47,7 +47,8 @@ def is_mentioned_bot_in_message(message: MessageRecv) -> tuple[bool, float]: reply_probability = 0.0 is_at = False is_mentioned = False - + if message.is_mentioned is not None: + return bool(message.is_mentioned), message.is_mentioned if ( message.message_info.additional_config is not None and message.message_info.additional_config.get("is_mentioned") is not None