From 646ca52526c21967af937a7d1bbfa9e177a1b788 Mon Sep 17 00:00:00 2001 From: Bakadax Date: Thu, 8 May 2025 09:11:21 +0800 Subject: [PATCH] ruff --- src/plugins/PFC/action_planner.py | 5 +- src/plugins/PFC/actions.py | 2 +- src/plugins/PFC/conversation.py | 6 +- src/plugins/PFC/conversation_initializer.py | 1 - src/plugins/PFC/conversation_loop.py | 8 ++- src/plugins/PFC/pfc.py | 66 +-------------------- src/plugins/PFC/pfc_emotion.py | 3 +- src/plugins/PFC/pfc_utils.py | 6 +- src/plugins/PFC/reply_checker.py | 8 +-- src/plugins/PFC/reply_generator.py | 13 ++-- 10 files changed, 23 insertions(+), 95 deletions(-) diff --git a/src/plugins/PFC/action_planner.py b/src/plugins/PFC/action_planner.py index e59adadb..3b7dcff6 100644 --- a/src/plugins/PFC/action_planner.py +++ b/src/plugins/PFC/action_planner.py @@ -228,7 +228,8 @@ class ActionPlanner: chat_history_text = await self._build_chat_history_text(observation_info) # 获取 sender_name, relationship_text, current_emotion_text sender_name_str = getattr(observation_info, 'sender_name', '对方') # 从 observation_info 获取 - if not sender_name_str: sender_name_str = '对方' # 再次确保有默认值 + if not sender_name_str: + sender_name_str = '对方' # 再次确保有默认值 relationship_text_str = getattr(conversation_info, 'relationship_text', '你们还不熟悉。') current_emotion_text_str = getattr(conversation_info, 'current_emotion_text', '心情平静。') @@ -507,7 +508,7 @@ class ActionPlanner: logger.debug(f"[私聊][{self.private_name}] 向 LLM 追加了 {other_unread_count} 条未读消息。") else: chat_history_text += ( - f"\n--- 以上均为已读消息,未读消息均已处理完毕 ---\n" + "\n--- 以上均为已读消息,未读消息均已处理完毕 ---\n" ) except AttributeError as e: logger.warning(f"[私聊][{self.private_name}] 构建聊天记录文本时属性错误: {e}") diff --git a/src/plugins/PFC/actions.py b/src/plugins/PFC/actions.py index bda88516..82ee4536 100644 --- a/src/plugins/PFC/actions.py +++ b/src/plugins/PFC/actions.py @@ -3,7 +3,7 @@ import asyncio import datetime import traceback import json -from typing import Dict, Any, Optional, Set, TYPE_CHECKING +from typing import Optional, Set, TYPE_CHECKING from src.common.logger_manager import get_logger from src.config.config import global_config diff --git a/src/plugins/PFC/conversation.py b/src/plugins/PFC/conversation.py index 2c87370c..457e933c 100644 --- a/src/plugins/PFC/conversation.py +++ b/src/plugins/PFC/conversation.py @@ -1,13 +1,9 @@ import time import asyncio -import datetime import traceback -import json -from typing import Dict, Any, Optional, Set, List -from dateutil import tz +from typing import Dict, Any, Optional from src.common.logger_manager import get_logger -from src.plugins.utils.chat_message_builder import build_readable_messages # 移除了 get_raw_msg_before_timestamp_with_chat from maim_message import UserInfo from src.plugins.chat.chat_stream import chat_manager, ChatStream from ..chat.message import Message # 假设 Message 类型被 _convert_to_message 使用 diff --git a/src/plugins/PFC/conversation_initializer.py b/src/plugins/PFC/conversation_initializer.py index 1a4f8747..3f7dd394 100644 --- a/src/plugins/PFC/conversation_initializer.py +++ b/src/plugins/PFC/conversation_initializer.py @@ -1,5 +1,4 @@ import time -import asyncio import traceback from typing import TYPE_CHECKING diff --git a/src/plugins/PFC/conversation_loop.py b/src/plugins/PFC/conversation_loop.py index 53de59fb..c2178ef0 100644 --- a/src/plugins/PFC/conversation_loop.py +++ b/src/plugins/PFC/conversation_loop.py @@ -2,7 +2,7 @@ import time import asyncio import datetime import traceback -from typing import Dict, Any, Optional, Set, List, TYPE_CHECKING +from typing import Dict, Any, List, TYPE_CHECKING from dateutil import tz from src.common.logger_manager import get_logger @@ -176,7 +176,8 @@ async def run_conversation_loop(conversation_instance: 'Conversation'): logger.info(f"[私聊][{conversation_instance.private_name}] (Loop) 中断 '{action}',原因: {interrupt_reason}。重新规划...") cancel_record = { "action": action, "plan_reason": reason, "status": "cancelled_due_to_new_messages", "time": datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), "final_reason": interrupt_reason, } if conversation_instance.conversation_info: - if not hasattr(conversation_instance.conversation_info, "done_action") or conversation_instance.conversation_info.done_action is None: conversation_instance.conversation_info.done_action = [] + if not hasattr(conversation_instance.conversation_info, "done_action") or conversation_instance.conversation_info.done_action is None: + conversation_instance.conversation_info.done_action = [] conversation_instance.conversation_info.done_action.append(cancel_record) conversation_instance.conversation_info.last_successful_reply_action = None conversation_instance.state = ConversationState.ANALYZING @@ -204,7 +205,8 @@ async def run_conversation_loop(conversation_instance: 'Conversation'): if conversation_instance.conversation_info and hasattr(conversation_instance.conversation_info, "goal_list") and conversation_instance.conversation_info.goal_list: last_goal_item = conversation_instance.conversation_info.goal_list[-1] current_goal = last_goal_item.get("goal") if isinstance(last_goal_item, dict) else (last_goal_item if isinstance(last_goal_item, str) else None) - if current_goal == "结束对话": goal_ended = True + if current_goal == "结束对话": + goal_ended = True last_action_record_for_end_check = {} if conversation_instance.conversation_info and conversation_instance.conversation_info.done_action: diff --git a/src/plugins/PFC/pfc.py b/src/plugins/PFC/pfc.py index 69f4d7eb..d0f3e7e6 100644 --- a/src/plugins/PFC/pfc.py +++ b/src/plugins/PFC/pfc.py @@ -100,7 +100,7 @@ class GoalAnalyzer: chat_history_text += f"\n--- 以下是 {observation_info.new_messages_count} 条新消息 ---\n{new_messages_str}" else: chat_history_text += ( - f"\n--- 以上均为已读消息,未读消息均已处理完毕 ---\n" + "\n--- 以上均为已读消息,未读消息均已处理完毕 ---\n" ) # await observation_info.clear_unprocessed_messages() @@ -283,66 +283,4 @@ class GoalAnalyzer: except Exception as e: logger.error(f"[私聊][{self.private_name}]分析对话状态时出错: {str(e)}") - return False, False, f"分析出错: {str(e)}" - - -# 先注释掉,万一以后出问题了还能开回来((( -# class DirectMessageSender: -# """直接发送消息到平台的发送器""" - -# def __init__(self, private_name: str): -# self.logger = get_module_logger("direct_sender") -# self.storage = MessageStorage() -# self.private_name = private_name - -# async def send_via_ws(self, message: MessageSending) -> None: -# try: -# await global_api.send_message(message) -# except Exception as e: -# raise ValueError(f"未找到平台:{message.message_info.platform} 的url配置,请检查配置文件") from e - -# async def send_message( -# self, -# chat_stream: ChatStream, -# content: str, -# reply_to_message: Optional[Message] = None, -# ) -> None: -# """直接发送消息到平台 - -# Args: -# chat_stream: 聊天流 -# content: 消息内容 -# reply_to_message: 要回复的消息 -# """ -# # 构建消息对象 -# message_segment = Seg(type="text", data=content) -# bot_user_info = UserInfo( -# user_id=global_config.BOT_QQ, -# user_nickname=global_config.BOT_NICKNAME, -# platform=chat_stream.platform, -# ) - -# message = MessageSending( -# message_id=f"dm{round(time.time(), 2)}", -# chat_stream=chat_stream, -# bot_user_info=bot_user_info, -# sender_info=reply_to_message.message_info.user_info if reply_to_message else None, -# message_segment=message_segment, -# reply=reply_to_message, -# is_head=True, -# is_emoji=False, -# thinking_start_time=time.time(), -# ) - -# # 处理消息 -# await message.process() - -# _message_json = message.to_dict() - -# # 发送消息 -# try: -# await self.send_via_ws(message) -# await self.storage.store_message(message, chat_stream) -# logger.success(f"[私聊][{self.private_name}]PFC消息已发送: {content}") -# except Exception as e: -# logger.error(f"[私聊][{self.private_name}]PFC消息发送失败: {str(e)}") + return False, False, f"分析出错: {str(e)}" \ No newline at end of file diff --git a/src/plugins/PFC/pfc_emotion.py b/src/plugins/PFC/pfc_emotion.py index 35b526a2..f1018bfd 100644 --- a/src/plugins/PFC/pfc_emotion.py +++ b/src/plugins/PFC/pfc_emotion.py @@ -67,7 +67,8 @@ class PfcEmotionUpdater: current_mood_text_from_manager = self.mood_mng.current_mood.text # 从 MoodManager 获取当前情绪文本 sender_name_for_prompt = getattr(observation_info, 'sender_name', '对方') - if not sender_name_for_prompt: sender_name_for_prompt = '对方' + if not sender_name_for_prompt: + sender_name_for_prompt = '对方' relationship_text_for_prompt = getattr(conversation_info, 'relationship_text', '关系一般。') # 从 ConversationInfo 获取关系文本 emotion_prompt = f"""你是{self.bot_name}。你现在的心情是【{current_mood_text_from_manager}】。 diff --git a/src/plugins/PFC/pfc_utils.py b/src/plugins/PFC/pfc_utils.py index 2a16439b..fb571062 100644 --- a/src/plugins/PFC/pfc_utils.py +++ b/src/plugins/PFC/pfc_utils.py @@ -141,7 +141,8 @@ def get_items_from_json( valid_item = False break # 这个元素无效 - if not valid_item: continue + if not valid_item: + continue # 验证类型 if required_types: @@ -152,7 +153,8 @@ def get_items_from_json( valid_item = False break - if not valid_item: continue + if not valid_item: + continue # 验证字符串不为空 (只检查 items 中要求的字段) for field in items: diff --git a/src/plugins/PFC/reply_checker.py b/src/plugins/PFC/reply_checker.py index cb95eded..47578502 100644 --- a/src/plugins/PFC/reply_checker.py +++ b/src/plugins/PFC/reply_checker.py @@ -1,13 +1,7 @@ - -import json from typing import Tuple, List, Dict, Any from src.common.logger import get_module_logger -# LLMRequest 和 global_config 不再需要直接在此文件中使用(除非 ReplyChecker 以后有其他功能) -# from ..models.utils_model import LLMRequest # <--- 移除 -# from ...config.config import global_config # <--- 移除,但下面会用到 bot_id -from ...config.config import global_config # 为了获取 BOT_QQ +from src.config.config import global_config # 为了获取 BOT_QQ from .chat_observer import ChatObserver -from maim_message import UserInfo # 保持,可能用于未来扩展,但当前逻辑不直接使用 logger = get_module_logger("reply_checker") diff --git a/src/plugins/PFC/reply_generator.py b/src/plugins/PFC/reply_generator.py index dfb6d879..1de3e937 100644 --- a/src/plugins/PFC/reply_generator.py +++ b/src/plugins/PFC/reply_generator.py @@ -1,12 +1,6 @@ import random from .pfc_utils import retrieve_contextual_info -# 可能用于旧知识库提取主题 (如果需要回退到旧方法) -# import jieba # 如果报错说找不到 jieba,可能需要安装: pip install jieba -# import re # 正则表达式库,通常 Python 自带 -from typing import Tuple, List, Dict, Any - -# from src.common.logger import get_module_logger from src.common.logger_manager import get_logger from ..models.utils_model import LLMRequest from ...config.config import global_config @@ -227,15 +221,16 @@ class ReplyGenerator: chat_history_text = "还没有聊天记录。" else: chat_history_text += ( - f"\n--- 以上均为已读消息,未读消息均已处理完毕 ---\n" + "\n--- 以上均为已读消息,未读消息均已处理完毕 ---\n" ) sender_name_str = getattr(observation_info, 'sender_name', '对方') - if not sender_name_str: sender_name_str = '对方' + if not sender_name_str: + sender_name_str = '对方' relationship_text_str = getattr(conversation_info, 'relationship_text', '你们还不熟悉。') current_emotion_text_str = getattr(conversation_info, 'current_emotion_text', '心情平静。') - + persona_text = f"你的名字是{self.name},{self.personality_info}。" retrieval_context = chat_history_text retrieved_memory_str, retrieved_knowledge_str = await retrieve_contextual_info(