From c0dcd578c92f46188d9f33c6bb5e5334d4c2b710 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Fri, 18 Apr 2025 11:36:43 +0800 Subject: [PATCH] fix: ruff --- interest_monitor_gui.py | 3 +- src/do_tool/tool_use.py | 5 +-- src/heart_flow/sub_heartflow.py | 16 +++++++--- .../heartFC_chat/heartFC__generator.py | 1 - .../chat_module/heartFC_chat/heartFC_chat.py | 15 +++++---- .../heartFC_chat/heartFC_processor.py | 3 +- .../chat_module/heartFC_chat/interest.py | 2 -- .../chat_module/heartFC_chat/messagesender.py | 1 - .../chat_module/heartFC_chat/pf_chatting.py | 32 ++++++++++++------- .../think_flow_chat/think_flow_chat.py | 2 +- 10 files changed, 45 insertions(+), 35 deletions(-) diff --git a/interest_monitor_gui.py b/interest_monitor_gui.py index 336d74ca5..2185912a7 100644 --- a/interest_monitor_gui.py +++ b/interest_monitor_gui.py @@ -8,7 +8,6 @@ from collections import deque import json # 引入 json # --- 引入 Matplotlib --- -import matplotlib.pyplot as plt from matplotlib.figure import Figure from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg import matplotlib.dates as mdates # 用于处理日期格式 @@ -165,7 +164,7 @@ class InterestMonitorApp: error_count += 1 # logger.warning(f"Skipping invalid JSON line: {line.strip()}") continue # 跳过无法解析的行 - except (TypeError, ValueError) as e: + except (TypeError, ValueError): error_count += 1 # logger.warning(f"Skipping line due to data type error ({e}): {line.strip()}") continue # 跳过数据类型错误的行 diff --git a/src/do_tool/tool_use.py b/src/do_tool/tool_use.py index 40dc2916a..dd01f3f75 100644 --- a/src/do_tool/tool_use.py +++ b/src/do_tool/tool_use.py @@ -1,14 +1,11 @@ from src.plugins.models.utils_model import LLMRequest from src.config.config import global_config from src.plugins.chat.chat_stream import ChatStream -from src.common.database import db -import time import json from src.common.logger import get_module_logger, TOOL_USE_STYLE_CONFIG, LogConfig from src.do_tool.tool_can_use import get_all_tool_definitions, get_tool_instance from src.heart_flow.sub_heartflow import SubHeartflow import traceback -from src.plugins.chat.utils import get_recent_group_detailed_plain_text tool_use_config = LogConfig( # 使用消息发送专用样式 @@ -62,7 +59,7 @@ class ToolUser: prompt = "" prompt += mid_memory_info prompt += "你正在思考如何回复群里的消息。\n" - prompt += f"之前群里进行了如下讨论:\n" + prompt += "之前群里进行了如下讨论:\n" prompt += message_txt # prompt += f"你注意到{sender_name}刚刚说:{message_txt}\n" prompt += f"注意你就是{bot_name},{bot_name}是你的名字。根据之前的聊天记录补充问题信息,搜索时避开你的名字。\n" diff --git a/src/heart_flow/sub_heartflow.py b/src/heart_flow/sub_heartflow.py index 8eefcf60f..19f95c010 100644 --- a/src/heart_flow/sub_heartflow.py +++ b/src/heart_flow/sub_heartflow.py @@ -238,12 +238,18 @@ class SubHeartflow: extra_info_prompt = "无工具信息。\n" # 提供默认值 individuality = Individuality.get_instance() - prompt_personality = f"你的名字是{self.bot_name},你" + prompt_personality = f"你的名字是{self.bot_name},你" prompt_personality += individuality.personality.personality_core - personality_sides = individuality.personality.personality_sides - if personality_sides: random.shuffle(personality_sides); prompt_personality += f",{personality_sides[0]}" - identity_detail = individuality.identity.identity_detail - if identity_detail: random.shuffle(identity_detail); prompt_personality += f",{identity_detail[0]}" + + # 添加随机性格侧面 + if individuality.personality.personality_sides: + random_side = random.choice(individuality.personality.personality_sides) + prompt_personality += f",{random_side}" + + # 添加随机身份细节 + if individuality.identity.identity_detail: + random_detail = random.choice(individuality.identity.identity_detail) + prompt_personality += f",{random_detail}" time_now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) diff --git a/src/plugins/chat_module/heartFC_chat/heartFC__generator.py b/src/plugins/chat_module/heartFC_chat/heartFC__generator.py index c317c79d2..9f3e577c8 100644 --- a/src/plugins/chat_module/heartFC_chat/heartFC__generator.py +++ b/src/plugins/chat_module/heartFC_chat/heartFC__generator.py @@ -1,5 +1,4 @@ from typing import List, Optional -import random from ...models.utils_model import LLMRequest diff --git a/src/plugins/chat_module/heartFC_chat/heartFC_chat.py b/src/plugins/chat_module/heartFC_chat/heartFC_chat.py index bad5964af..e2ce81613 100644 --- a/src/plugins/chat_module/heartFC_chat/heartFC_chat.py +++ b/src/plugins/chat_module/heartFC_chat/heartFC_chat.py @@ -1,5 +1,4 @@ import time -from random import random import traceback from typing import List, Optional, Dict import asyncio @@ -18,7 +17,7 @@ from ...person_info.relationship_manager import relationship_manager from src.plugins.respon_info_catcher.info_catcher import info_catcher_manager from ...utils.timer_calculater import Timer from src.do_tool.tool_use import ToolUser -from .interest import InterestManager, InterestChatting +from .interest import InterestManager from src.plugins.chat.chat_stream import chat_manager from src.plugins.chat.message import BaseMessageInfo from .pf_chatting import PFChatting @@ -405,7 +404,8 @@ class HeartFC_Chat: # 假设 detailed_plain_text 字段包含所需文本 # 你可能需要更复杂的逻辑来格式化,例如添加发送者和时间 text = msg_dict.get('detailed_plain_text', '') - if text: context_texts.append(text) + if text: + context_texts.append(text) observation_context_text = "\n".join(context_texts) logger.debug(f"[{stream_name}] Context for tools:\n{observation_context_text[-200:]}...") # 打印部分上下文 else: @@ -446,7 +446,8 @@ class HeartFC_Chat: except Exception as e: logger.error(f"[{stream_name}] SubHeartflow 思考失败: {e}") logger.error(traceback.format_exc()) - if info_catcher: info_catcher.done_catch() + if info_catcher: + info_catcher.done_catch() return # 思考失败则不继续 if info_catcher: info_catcher.catch_afer_shf_step(timing_results.get("生成内心想法(SubHF)"), past_mind, current_mind) @@ -459,13 +460,15 @@ class HeartFC_Chat: except Exception as e: logger.error(f"[{stream_name}] GPT 生成回复失败: {e}") logger.error(traceback.format_exc()) - if info_catcher: info_catcher.done_catch() + if info_catcher: + info_catcher.done_catch() return if info_catcher: info_catcher.catch_after_generate_response(timing_results.get("生成最终回复(GPT)")) if not response_set: logger.info(f"[{stream_name}] 回复生成失败或为空。") - if info_catcher: info_catcher.done_catch() + if info_catcher: + info_catcher.done_catch() return # --- 10. 发送消息 (使用 anchor_message) --- diff --git a/src/plugins/chat_module/heartFC_chat/heartFC_processor.py b/src/plugins/chat_module/heartFC_chat/heartFC_processor.py index ea27aa77f..4f37997d9 100644 --- a/src/plugins/chat_module/heartFC_chat/heartFC_processor.py +++ b/src/plugins/chat_module/heartFC_chat/heartFC_processor.py @@ -1,12 +1,11 @@ import time import traceback -import asyncio from ...memory_system.Hippocampus import HippocampusManager from ....config.config import global_config from ...chat.message import MessageRecv from ...storage.storage import MessageStorage from ...chat.utils import is_mentioned_bot_in_message -from ...message import UserInfo, Seg +from ...message import Seg from src.heart_flow.heartflow import heartflow from src.common.logger import get_module_logger, CHAT_STYLE_CONFIG, LogConfig from ...chat.chat_stream import chat_manager diff --git a/src/plugins/chat_module/heartFC_chat/interest.py b/src/plugins/chat_module/heartFC_chat/interest.py index efcd4d6fd..ec996b4d9 100644 --- a/src/plugins/chat_module/heartFC_chat/interest.py +++ b/src/plugins/chat_module/heartFC_chat/interest.py @@ -4,12 +4,10 @@ import asyncio import threading import json # 引入 json import os # 引入 os -import traceback # <--- 添加导入 from typing import Optional # <--- 添加导入 import random # <--- 添加导入 random from src.common.logger import get_module_logger, LogConfig, DEFAULT_CONFIG # 引入 DEFAULT_CONFIG from src.plugins.chat.chat_stream import chat_manager # *** Import ChatManager *** -from ...chat.message import MessageRecv # 导入 MessageRecv # 定义日志配置 (使用 loguru 格式) interest_log_config = LogConfig( diff --git a/src/plugins/chat_module/heartFC_chat/messagesender.py b/src/plugins/chat_module/heartFC_chat/messagesender.py index cfffb892c..ed7221963 100644 --- a/src/plugins/chat_module/heartFC_chat/messagesender.py +++ b/src/plugins/chat_module/heartFC_chat/messagesender.py @@ -3,7 +3,6 @@ import time from typing import Dict, List, Optional, Union from src.common.logger import get_module_logger -from ....common.database import db from ...message.api import global_api from ...chat.message import MessageSending, MessageThinking, MessageSet from ...storage.storage import MessageStorage diff --git a/src/plugins/chat_module/heartFC_chat/pf_chatting.py b/src/plugins/chat_module/heartFC_chat/pf_chatting.py index 9c4f58a5f..b77d351d0 100644 --- a/src/plugins/chat_module/heartFC_chat/pf_chatting.py +++ b/src/plugins/chat_module/heartFC_chat/pf_chatting.py @@ -1,8 +1,7 @@ import asyncio import time import traceback -from typing import List, Optional, Dict, Any, Deque, Union, TYPE_CHECKING -from collections import deque +from typing import List, Optional, Dict, Any, TYPE_CHECKING import json from ....config.config import global_config @@ -14,7 +13,6 @@ from src.plugins.chat.chat_stream import chat_manager from .messagesender import MessageManager from src.common.logger import get_module_logger, LogConfig, DEFAULT_CONFIG # 引入 DEFAULT_CONFIG from src.plugins.models.utils_model import LLMRequest -from src.individuality.individuality import Individuality # 定义日志配置 (使用 loguru 格式) interest_log_config = LogConfig( @@ -475,24 +473,36 @@ class PFChatting: logger.info(f"{log_prefix}[Planner] LLM 决策: {action}, 理由: {reasoning}, EmojiQuery: '{emoji_query}'") except json.JSONDecodeError as json_e: logger.error(f"{log_prefix}[Planner] 解析工具参数失败: {json_e}. Arguments: {tool_call['function'].get('arguments')}") - action = "error"; reasoning = "工具参数解析失败"; llm_error = True + action = "error" + reasoning = "工具参数解析失败" + llm_error = True except Exception as parse_e: - logger.error(f"{log_prefix}[Planner] 处理工具参数时出错: {parse_e}") - action = "error"; reasoning = "处理工具参数时出错"; llm_error = True + logger.error(f"{log_prefix}[Planner] 处理工具参数时出错: {parse_e}") + action = "error" + reasoning = "处理工具参数时出错" + llm_error = True else: logger.warning(f"{log_prefix}[Planner] LLM 未按预期调用 'decide_reply_action' 工具。Tool calls: {tool_calls}") - action = "error"; reasoning = "LLM未调用预期工具"; llm_error = True + action = "error" + reasoning = "LLM未调用预期工具" + llm_error = True else: - logger.warning(f"{log_prefix}[Planner] LLM 响应中未包含有效的工具调用。Tool calls: {tool_calls}") - action = "error"; reasoning = "LLM响应无工具调用"; llm_error = True + logger.warning(f"{log_prefix}[Planner] LLM 响应中未包含有效的工具调用。Tool calls: {tool_calls}") + action = "error" + reasoning = "LLM响应无工具调用" + llm_error = True else: logger.warning(f"{log_prefix}[Planner] LLM 未返回预期的工具调用响应。Response parts: {len(response)}") - action = "error"; reasoning = "LLM响应格式错误"; llm_error = True + action = "error" + reasoning = "LLM响应格式错误" + llm_error = True except Exception as llm_e: logger.error(f"{log_prefix}[Planner] Planner LLM 调用失败: {llm_e}") logger.error(traceback.format_exc()) - action = "error"; reasoning = f"LLM 调用失败: {llm_e}"; llm_error = True + action = "error" + reasoning = f"LLM 调用失败: {llm_e}" + llm_error = True # --- 返回决策结果 --- # Note: Lock release is handled by the loop now diff --git a/src/plugins/chat_module/think_flow_chat/think_flow_chat.py b/src/plugins/chat_module/think_flow_chat/think_flow_chat.py index f6fdff5bc..1bc62a805 100644 --- a/src/plugins/chat_module/think_flow_chat/think_flow_chat.py +++ b/src/plugins/chat_module/think_flow_chat/think_flow_chat.py @@ -10,7 +10,7 @@ from .think_flow_generator import ResponseGenerator from ...chat.message import MessageSending, MessageRecv, MessageThinking, MessageSet from ...chat.messagesender import message_manager from ...storage.storage import MessageStorage -from ...chat.utils import is_mentioned_bot_in_message, get_recent_group_detailed_plain_text +from ...chat.utils import is_mentioned_bot_in_message from ...chat.utils_image import image_path_to_base64 from ...willing.willing_manager import willing_manager from ...message import UserInfo, Seg