perf(methods): 通过移除不必要的 self 参数优化方法签名
在包括 chat、plugin_system、schedule 和 mais4u 在内的多个模块中,消除冗余的实例引用。此次改动将无需访问实例状态的实用函数转换为静态方法,从而提升了内存效率,并使方法依赖关系更加清晰。
This commit is contained in:
@@ -27,9 +27,9 @@ class ActionManager:
|
||||
|
||||
# === 执行Action方法 ===
|
||||
|
||||
@staticmethod
|
||||
def create_action(
|
||||
self,
|
||||
action_name: str,
|
||||
action_name: str,
|
||||
action_data: dict,
|
||||
reasoning: str,
|
||||
cycle_timers: dict,
|
||||
|
||||
@@ -243,7 +243,8 @@ class ActionModifier:
|
||||
|
||||
return deactivated_actions
|
||||
|
||||
def _generate_context_hash(self, chat_content: str) -> str:
|
||||
@staticmethod
|
||||
def _generate_context_hash(chat_content: str) -> str:
|
||||
"""生成上下文的哈希值用于缓存"""
|
||||
context_content = f"{chat_content}"
|
||||
return hashlib.md5(context_content.encode("utf-8")).hexdigest()
|
||||
|
||||
@@ -27,7 +27,8 @@ class PlanExecutor:
|
||||
"""
|
||||
self.action_manager = action_manager
|
||||
|
||||
async def execute(self, plan: Plan):
|
||||
@staticmethod
|
||||
async def execute(plan: Plan):
|
||||
"""
|
||||
遍历并执行 Plan 对象中 `decided_actions` 列表里的所有动作。
|
||||
|
||||
|
||||
@@ -297,15 +297,17 @@ class PlanFilter:
|
||||
)
|
||||
return parsed_actions
|
||||
|
||||
@staticmethod
|
||||
def _filter_no_actions(
|
||||
self, action_list: List[ActionPlannerInfo]
|
||||
action_list: List[ActionPlannerInfo]
|
||||
) -> List[ActionPlannerInfo]:
|
||||
non_no_actions = [a for a in action_list if a.action_type not in ["no_action", "no_reply"]]
|
||||
if non_no_actions:
|
||||
return non_no_actions
|
||||
return action_list[:1] if action_list else []
|
||||
|
||||
async def _get_long_term_memory_context(self) -> str:
|
||||
@staticmethod
|
||||
async def _get_long_term_memory_context() -> str:
|
||||
try:
|
||||
now = datetime.now()
|
||||
keywords = ["今天", "日程", "计划"]
|
||||
@@ -329,7 +331,8 @@ class PlanFilter:
|
||||
logger.error(f"获取长期记忆时出错: {e}")
|
||||
return "回忆时出现了一些问题。"
|
||||
|
||||
async def _build_action_options(self, current_available_actions: Dict[str, ActionInfo]) -> str:
|
||||
@staticmethod
|
||||
async def _build_action_options(current_available_actions: Dict[str, ActionInfo]) -> str:
|
||||
action_options_block = ""
|
||||
for action_name, action_info in current_available_actions.items():
|
||||
param_text = ""
|
||||
@@ -347,7 +350,8 @@ class PlanFilter:
|
||||
)
|
||||
return action_options_block
|
||||
|
||||
def _find_message_by_id(self, message_id: str, message_id_list: list) -> Optional[Dict[str, Any]]:
|
||||
@staticmethod
|
||||
def _find_message_by_id(message_id: str, message_id_list: list) -> Optional[Dict[str, Any]]:
|
||||
if message_id.isdigit():
|
||||
message_id = f"m{message_id}"
|
||||
for item in message_id_list:
|
||||
@@ -355,7 +359,8 @@ class PlanFilter:
|
||||
return item.get("message")
|
||||
return None
|
||||
|
||||
def _get_latest_message(self, message_id_list: list) -> Optional[Dict[str, Any]]:
|
||||
@staticmethod
|
||||
def _get_latest_message(message_id_list: list) -> Optional[Dict[str, Any]]:
|
||||
if not message_id_list:
|
||||
return None
|
||||
return message_id_list[-1].get("message")
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
PlanGenerator: 负责搜集和汇总所有决策所需的信息,生成一个未经筛选的“原始计划” (Plan)。
|
||||
"""
|
||||
import time
|
||||
from typing import Dict, Optional, Tuple
|
||||
from typing import Dict
|
||||
|
||||
from src.chat.utils.chat_message_builder import get_raw_msg_before_timestamp_with_chat
|
||||
from src.chat.utils.utils import get_chat_type_and_target_info
|
||||
|
||||
@@ -8,12 +8,10 @@ from src.chat.planner_actions.action_manager import ActionManager
|
||||
from src.chat.planner_actions.plan_executor import PlanExecutor
|
||||
from src.chat.planner_actions.plan_filter import PlanFilter
|
||||
from src.chat.planner_actions.plan_generator import PlanGenerator
|
||||
from src.common.data_models.info_data_model import ActionPlannerInfo
|
||||
from src.common.logger import get_logger
|
||||
from src.plugin_system.base.component_types import ChatMode
|
||||
|
||||
# 导入提示词模块以确保其被初始化
|
||||
from . import planner_prompts
|
||||
|
||||
logger = get_logger("planner")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user