mirror of https://github.com/Mai-with-u/MaiBot.git
修复启用新的 message_sender 后导致麦麦消息被重复存入数据库的问题
parent
bea8ce8150
commit
7fe55ddf68
|
|
@ -514,13 +514,13 @@ class ActionPlanner:
|
|||
retrieved_knowledge_str_planner = await self._get_prompt_info(message=retrieval_context)
|
||||
logger.info(f"[私聊][{self.private_name}] (ActionPlanner) 自动检索知识 {'完成' if retrieved_knowledge_str_planner else '无结果'}。")
|
||||
except Exception as retrieval_err:
|
||||
logger.error(f"[私聊][{self.private_name}] (ActionPlanner) 自动检索时出错: {retrieval_err}")
|
||||
retrieved_memory_str_planner = "检索记忆时出错。\n"
|
||||
retrieved_knowledge_str_planner = "检索知识时出错。\n"
|
||||
logger.error(f"[私聊][{self.private_name}] (ActionPlanner) 自动检索时出错: {retrieval_err}")
|
||||
retrieved_memory_str_planner = "检索记忆时出错。\n"
|
||||
retrieved_knowledge_str_planner = "检索知识时出错。\n"
|
||||
else:
|
||||
logger.debug(f"[私聊][{self.private_name}] (ActionPlanner) 无有效聊天记录,跳过自动检索。")
|
||||
retrieved_memory_str_planner = "无聊天记录无法检索记忆。\n"
|
||||
retrieved_knowledge_str_planner = "无聊天记录无法检索知识。\n"
|
||||
logger.debug(f"[私聊][{self.private_name}] (ActionPlanner) 无有效聊天记录,跳过自动检索。")
|
||||
retrieved_memory_str_planner = "无聊天记录无法检索记忆。\n"
|
||||
retrieved_knowledge_str_planner = "无聊天记录无法检索知识。\n"
|
||||
|
||||
# --- 选择 Prompt ---
|
||||
if last_successful_reply_action in ["direct_reply", "send_new_message"]:
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ from ..chat.message import Message
|
|||
from maim_message import UserInfo, Seg
|
||||
from src.plugins.chat.message import MessageSending, MessageSet
|
||||
from src.plugins.chat.message_sender import message_manager
|
||||
# from ..storage.storage import MessageStorage
|
||||
from ...config.config import global_config
|
||||
|
||||
|
||||
|
|
@ -18,7 +17,6 @@ class DirectMessageSender:
|
|||
|
||||
def __init__(self, private_name: str):
|
||||
self.private_name = private_name
|
||||
# self.storage = MessageStorage()
|
||||
|
||||
async def send_message(
|
||||
self,
|
||||
|
|
@ -70,7 +68,6 @@ class DirectMessageSender:
|
|||
message_set = MessageSet(chat_stream, message_id)
|
||||
message_set.add_message(message)
|
||||
await message_manager.add_message(message_set)
|
||||
# await self.storage.store_message(message, chat_stream)
|
||||
logger.info(f"[私聊][{self.private_name}]PFC消息已发送: {content}")
|
||||
|
||||
except Exception as e:
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ from .chat_observer import ChatObserver
|
|||
from .chat_states import NotificationHandler, NotificationType, Notification
|
||||
from src.plugins.utils.chat_message_builder import build_readable_messages
|
||||
import traceback # 导入 traceback 用于调试
|
||||
from src.config.config import global_config
|
||||
|
||||
logger = get_module_logger("observation_info")
|
||||
|
||||
|
|
@ -253,27 +252,6 @@ class ObservationInfo:
|
|||
message_time = message.get("time")
|
||||
message_id = message.get("message_id")
|
||||
processed_text = message.get("processed_plain_text", "")
|
||||
is_bot_message = False
|
||||
|
||||
# 确定发送者和是否为机器人
|
||||
if user_info:
|
||||
sender_id = str(user_info.user_id)
|
||||
if sender_id == str(global_config.BOT_QQ):
|
||||
is_bot_message = True
|
||||
# 更新机器人最后发言时间
|
||||
if message_time and message_time > (self.last_bot_speak_time or 0):
|
||||
self.last_bot_speak_time = message_time
|
||||
else:
|
||||
# 更新用户最后发言时间
|
||||
if message_time and message_time > (self.last_user_speak_time or 0):
|
||||
self.last_user_speak_time = message_time
|
||||
self.active_users.add(sender_id)
|
||||
self.last_message_sender = sender_id
|
||||
else:
|
||||
logger.warning(
|
||||
f"[私聊][{self.private_name}]处理消息更新时缺少有效的 UserInfo 对象, message_id: {message_id}"
|
||||
)
|
||||
self.last_message_sender = None
|
||||
|
||||
# 只有在新消息到达时才更新 last_message 相关信息
|
||||
if message_time and message_time > (self.last_message_time or 0):
|
||||
|
|
@ -300,17 +278,12 @@ class ObservationInfo:
|
|||
)
|
||||
self.last_message_sender = None # 发送者未知
|
||||
|
||||
if not is_bot_message:
|
||||
# 将原始消息字典添加到未处理列表
|
||||
self.unprocessed_messages.append(message)
|
||||
self.new_messages_count = len(self.unprocessed_messages) # 直接用列表长度
|
||||
logger.debug(f"[私聊][{self.private_name}] 用户新消息加入未处理列表. 当前未处理数: {self.new_messages_count}")
|
||||
# logger.debug(f"[私聊][{self.private_name}]消息更新: last_time={self.last_message_time}, new_count={self.new_messages_count}")
|
||||
self.update_changed() # 标记状态已改变
|
||||
else:
|
||||
# 是机器人自己的消息,仅记录日志,不加入未处理列表
|
||||
logger.debug(f"[私聊][{self.private_name}] 观察到机器人自身消息 (ID: {message_id}),仅更新时间戳,不处理。")
|
||||
# 将原始消息字典添加到未处理列表
|
||||
self.unprocessed_messages.append(message)
|
||||
self.new_messages_count = len(self.unprocessed_messages) # 直接用列表长度
|
||||
|
||||
# logger.debug(f"[私聊][{self.private_name}]消息更新: last_time={self.last_message_time}, new_count={self.new_messages_count}")
|
||||
self.update_changed() # 标记状态已改变
|
||||
else:
|
||||
# 如果消息时间戳不是最新的,可能不需要处理,或者记录一个警告
|
||||
pass
|
||||
|
|
|
|||
Loading…
Reference in New Issue