From 297cd85b09785102ddc80ac715be494f44baaec6 Mon Sep 17 00:00:00 2001 From: minecraft1024a Date: Sun, 14 Sep 2025 15:09:55 +0800 Subject: [PATCH] =?UTF-8?q?refactor(data=5Fmodel):=20=E8=A7=A3=E9=99=A4=20?= =?UTF-8?q?plan=5Ffilter=20=E5=AF=B9=20DatabaseMessages=20=E7=9A=84?= =?UTF-8?q?=E7=9B=B4=E6=8E=A5=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将 `target_message_obj` 的类型从 `DatabaseMessages` 实例改为字典,从而消除了 `plan_filter` 模块对 `database_data_model` 的循环导入风险。同时更新了 `ActionPlannerInfo` 中 `action_message` 的类型注解以保持一致性。 --- src/chat/planner_actions/plan_filter.py | 3 +-- src/common/data_models/info_data_model.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/chat/planner_actions/plan_filter.py b/src/chat/planner_actions/plan_filter.py index d76f1aa04..838320700 100644 --- a/src/chat/planner_actions/plan_filter.py +++ b/src/chat/planner_actions/plan_filter.py @@ -263,8 +263,7 @@ class PlanFilter: target_message_dict = self._get_latest_message(message_id_list) if target_message_dict: - from src.common.data_models.database_data_model import DatabaseMessages - target_message_obj = DatabaseMessages(**target_message_dict) + target_message_obj = target_message_dict available_action_names = list(plan.available_actions.keys()) if action not in ["no_action", "no_reply", "reply", "do_nothing", "proactive_reply"] and action not in available_action_names: diff --git a/src/common/data_models/info_data_model.py b/src/common/data_models/info_data_model.py index 2806587c1..32893706d 100644 --- a/src/common/data_models/info_data_model.py +++ b/src/common/data_models/info_data_model.py @@ -21,7 +21,7 @@ class ActionPlannerInfo(BaseDataModel): action_type: str = field(default_factory=str) reasoning: Optional[str] = None action_data: Optional[Dict] = None - action_message: Optional["DatabaseMessages"] = None + action_message: Optional[Dict] = None available_actions: Optional[Dict[str, "ActionInfo"]] = None