refactor(affinity_flow): 重构规划器架构并简化日志输出

- 移除ChatterManager中不必要的ActionPlanner实例化
- 在MessageManager中设置默认聊天模式为FOCUS
- 重构BaseChatter构造函数,移除planner依赖
- 统一ChatMode枚举定义,移除GROUP/PRIVATE模式
- 重构AffinityChatter内部planner初始化逻辑
- 大幅简化兴趣评分系统的日志输出
- 修复plan_filter中的动作解析逻辑,支持新格式
- 更新planner_prompts提示词模板,移除私聊限制
- 优化关系追踪器的错误处理和日志输出
This commit is contained in:
Windpicker-owo
2025-09-23 22:18:03 +08:00
parent 68bf0972df
commit ebc4feebd9
16 changed files with 151 additions and 139 deletions

View File

@@ -1,5 +1,7 @@
from dataclasses import dataclass, field
from typing import Optional, Dict, List, TYPE_CHECKING
from src.plugin_system.base.component_types import ChatType
from . import BaseDataModel
if TYPE_CHECKING:
@@ -46,6 +48,7 @@ class Plan(BaseDataModel):
chat_id: str
mode: "ChatMode"
chat_type: "ChatType"
# Generator 填充
available_actions: Dict[str, "ActionInfo"] = field(default_factory=dict)
chat_history: List["DatabaseMessages"] = field(default_factory=list)

View File

@@ -10,7 +10,7 @@ from enum import Enum
from typing import List, Optional, TYPE_CHECKING
from . import BaseDataModel
from src.plugin_system.base.component_types import ChatType
from src.plugin_system.base.component_types import ChatMode, ChatType
if TYPE_CHECKING:
from .database_data_model import DatabaseMessages
@@ -30,6 +30,7 @@ class StreamContext(BaseDataModel):
stream_id: str
chat_type: ChatType = ChatType.PRIVATE # 聊天类型,默认为私聊
chat_mode: ChatMode = ChatMode.NORMAL # 聊天模式,默认为普通模式
unread_messages: List["DatabaseMessages"] = field(default_factory=list)
history_messages: List["DatabaseMessages"] = field(default_factory=list)
last_check_time: float = field(default_factory=time.time)
@@ -60,6 +61,10 @@ class StreamContext(BaseDataModel):
"""手动更新聊天类型"""
self.chat_type = chat_type
def set_chat_mode(self, chat_mode: ChatMode):
"""设置聊天模式"""
self.chat_mode = chat_mode
def is_group_chat(self) -> bool:
"""检查是否为群聊"""
return self.chat_type == ChatType.GROUP
@@ -89,7 +94,7 @@ class StreamContext(BaseDataModel):
self.history_messages.append(msg)
self.unread_messages.remove(msg)
break
def get_history_messages(self, limit: int = 20) -> List["DatabaseMessages"]:
"""获取历史消息"""
# 优先返回最近的历史消息和所有未读消息