checker也要处理

This commit is contained in:
Bakadax
2025-04-26 20:34:31 +08:00
parent d55043a8a5
commit 6f7074fbb8
3 changed files with 4 additions and 12 deletions

View File

@@ -280,6 +280,7 @@ class Conversation:
reply=self.generated_reply, reply=self.generated_reply,
goal=current_goal_str, goal=current_goal_str,
chat_history=observation_info.chat_history, chat_history=observation_info.chat_history,
chat_history_str=observation_info.chat_history_str,
retry_count=reply_attempt_count - 1, # 传递当前尝试次数从0开始计数 retry_count=reply_attempt_count - 1, # 传递当前尝试次数从0开始计数
) )
logger.info( logger.info(

View File

@@ -22,7 +22,7 @@ class ReplyChecker:
self.max_retries = 3 # 最大重试次数 self.max_retries = 3 # 最大重试次数
async def check( 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]: ) -> Tuple[bool, str, bool]:
"""检查生成的回复是否合适 """检查生成的回复是否合适
@@ -36,7 +36,6 @@ class ReplyChecker:
""" """
# 不再从 observer 获取,直接使用传入的 chat_history # 不再从 observer 获取,直接使用传入的 chat_history
# messages = self.chat_observer.get_cached_messages(limit=20) # messages = self.chat_observer.get_cached_messages(limit=20)
chat_history_text = ""
try: try:
# 筛选出最近由 Bot 自己发送的消息 # 筛选出最近由 Bot 自己发送的消息
bot_messages = [] bot_messages = []
@@ -82,14 +81,6 @@ class ReplyChecker:
logger.error(f"检查回复时出错: 类型={type(e)}, 值={e}") logger.error(f"检查回复时出错: 类型={type(e)}, 值={e}")
logger.error(traceback.format_exc()) # 打印详细的回溯信息 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"""请检查以下回复或消息是否合适: prompt = f"""请检查以下回复或消息是否合适:
当前对话目标:{goal} 当前对话目标:{goal}

View File

@@ -175,7 +175,7 @@ class ReplyGenerator:
return "抱歉,我现在有点混乱,让我重新思考一下..." return "抱歉,我现在有点混乱,让我重新思考一下..."
async def check_reply( 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]: ) -> Tuple[bool, str, bool]:
"""检查回复是否合适 """检查回复是否合适
@@ -187,4 +187,4 @@ class ReplyGenerator:
Returns: Returns:
Tuple[bool, str, bool]: (是否合适, 原因, 是否需要重新规划) Tuple[bool, str, bool]: (是否合适, 原因, 是否需要重新规划)
""" """
return await self.reply_checker.check(reply, goal, chat_history, retry_count) return await self.reply_checker.check(reply, goal, chat_history, chat_history_str, retry_count)