refactor(planner): 重构动作规划器为模块化结构
将原有的 `ActionPlanner` 类拆分为三个独立的模块:`PlanGenerator`、`PlanFilter` 和 `PlanExecutor`。`ActionPlanner` 现在作为协调器,按顺序调用这三个模块,使规划流程更加清晰和模块化。 - **PlanGenerator**: 负责根据聊天模式和上下文生成初始规划。 - **PlanFilter**: 负责审查和筛选由生成器产生的动作。 - **PlanExecutor**: 负责执行最终确定的动作。 此重构简化了 `cycle_processor` 中的调用逻辑,并为未来的功能扩展(如更复杂的过滤规则)提供了更好的基础。同时,引入了新的 `Plan` 数据模型来统一规划过程中的数据传递。
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
from dataclasses import dataclass, field
|
||||
from typing import Optional, Dict, TYPE_CHECKING
|
||||
from typing import Optional, Dict, List, TYPE_CHECKING
|
||||
from . import BaseDataModel
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from .database_data_model import DatabaseMessages
|
||||
from src.plugin_system.base.component_types import ActionInfo
|
||||
from src.plugin_system.base.component_types import ActionInfo, ChatMode
|
||||
|
||||
|
||||
@dataclass
|
||||
@@ -23,3 +23,21 @@ class ActionPlannerInfo(BaseDataModel):
|
||||
action_data: Optional[Dict] = None
|
||||
action_message: Optional["DatabaseMessages"] = None
|
||||
available_actions: Optional[Dict[str, "ActionInfo"]] = None
|
||||
|
||||
|
||||
@dataclass
|
||||
class Plan(BaseDataModel):
|
||||
"""
|
||||
统一规划数据模型
|
||||
"""
|
||||
chat_id: str
|
||||
mode: "ChatMode"
|
||||
|
||||
# Generator 填充
|
||||
available_actions: Dict[str, "ActionInfo"] = field(default_factory=dict)
|
||||
chat_history: List["DatabaseMessages"] = field(default_factory=list)
|
||||
target_info: Optional[TargetPersonInfo] = None
|
||||
|
||||
# Filter 填充
|
||||
llm_prompt: Optional[str] = None
|
||||
decided_actions: Optional[List[ActionPlannerInfo]] = None
|
||||
|
||||
Reference in New Issue
Block a user