From 6f7074fbb8d51237fabe72b35b6e42d437413f76 Mon Sep 17 00:00:00 2001 From: Bakadax Date: Sat, 26 Apr 2025 20:34:31 +0800 Subject: [PATCH] =?UTF-8?q?checker=E4=B9=9F=E8=A6=81=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/PFC/conversation.py | 1 + src/plugins/PFC/reply_checker.py | 11 +---------- src/plugins/PFC/reply_generator.py | 4 ++-- 3 files changed, 4 insertions(+), 12 deletions(-) diff --git a/src/plugins/PFC/conversation.py b/src/plugins/PFC/conversation.py index b389dbcfc..6db3a0f0a 100644 --- a/src/plugins/PFC/conversation.py +++ b/src/plugins/PFC/conversation.py @@ -280,6 +280,7 @@ class Conversation: reply=self.generated_reply, goal=current_goal_str, chat_history=observation_info.chat_history, + chat_history_str=observation_info.chat_history_str, retry_count=reply_attempt_count - 1, # 传递当前尝试次数(从0开始计数) ) logger.info( diff --git a/src/plugins/PFC/reply_checker.py b/src/plugins/PFC/reply_checker.py index 1f6f91ddf..1379a2c6b 100644 --- a/src/plugins/PFC/reply_checker.py +++ b/src/plugins/PFC/reply_checker.py @@ -22,7 +22,7 @@ class ReplyChecker: self.max_retries = 3 # 最大重试次数 async def check( - self, reply: str, goal: str, chat_history: List[Dict[str, Any]], retry_count: int = 0 + self, reply: str, goal: str, chat_history: List[Dict[str, Any]], chat_history_text: str, retry_count: int = 0 ) -> Tuple[bool, str, bool]: """检查生成的回复是否合适 @@ -36,7 +36,6 @@ class ReplyChecker: """ # 不再从 observer 获取,直接使用传入的 chat_history # messages = self.chat_observer.get_cached_messages(limit=20) - chat_history_text = "" try: # 筛选出最近由 Bot 自己发送的消息 bot_messages = [] @@ -82,14 +81,6 @@ class ReplyChecker: logger.error(f"检查回复时出错: 类型={type(e)}, 值={e}") logger.error(traceback.format_exc()) # 打印详细的回溯信息 - for msg in chat_history[-20:]: - time_str = datetime.datetime.fromtimestamp(msg["time"]).strftime("%H:%M:%S") - user_info = UserInfo.from_dict(msg.get("user_info", {})) - sender = user_info.user_nickname or f"用户{user_info.user_id}" - if sender == self.name: - sender = "你说" - chat_history_text += f"{time_str},{sender}:{msg.get('processed_plain_text', '')}\n" - prompt = f"""请检查以下回复或消息是否合适: 当前对话目标:{goal} diff --git a/src/plugins/PFC/reply_generator.py b/src/plugins/PFC/reply_generator.py index 04a1e8cb9..ee1e28e1c 100644 --- a/src/plugins/PFC/reply_generator.py +++ b/src/plugins/PFC/reply_generator.py @@ -175,7 +175,7 @@ class ReplyGenerator: return "抱歉,我现在有点混乱,让我重新思考一下..." async def check_reply( - self, reply: str, goal: str, chat_history: List[Dict[str, Any]], retry_count: int = 0 + self, reply: str, goal: str, chat_history: List[Dict[str, Any]], chat_history_str: str, retry_count: int = 0 ) -> Tuple[bool, str, bool]: """检查回复是否合适 @@ -187,4 +187,4 @@ class ReplyGenerator: Returns: Tuple[bool, str, bool]: (是否合适, 原因, 是否需要重新规划) """ - return await self.reply_checker.check(reply, goal, chat_history, retry_count) \ No newline at end of file + return await self.reply_checker.check(reply, goal, chat_history, chat_history_str, retry_count) \ No newline at end of file