11
This commit is contained in:
@@ -107,7 +107,7 @@ class HeartFChatting:
|
|||||||
"WorkingMemoryProcessor": "working_memory_processor",
|
"WorkingMemoryProcessor": "working_memory_processor",
|
||||||
}
|
}
|
||||||
self.enabled_processor_names: List[str] = []
|
self.enabled_processor_names: List[str] = []
|
||||||
config_processor_settings = global_config.focus_chat_processor # 获取处理器配置,若不存在则为空字典
|
config_processor_settings = global_config.focus_chat_processor # 获取处理器配置,若不存在则为空字典
|
||||||
|
|
||||||
for proc_name in PROCESSOR_CLASSES.keys():
|
for proc_name in PROCESSOR_CLASSES.keys():
|
||||||
config_key = PROCESSOR_NAME_TO_CONFIG_KEY_MAP.get(proc_name)
|
config_key = PROCESSOR_NAME_TO_CONFIG_KEY_MAP.get(proc_name)
|
||||||
@@ -115,7 +115,7 @@ class HeartFChatting:
|
|||||||
# 此处理器可通过配置控制
|
# 此处理器可通过配置控制
|
||||||
# getattr(config_processor_settings, config_key, True)
|
# getattr(config_processor_settings, config_key, True)
|
||||||
# 如果config_processor_settings是字典,则用 config_processor_settings.get(config_key, True)
|
# 如果config_processor_settings是字典,则用 config_processor_settings.get(config_key, True)
|
||||||
if getattr(config_processor_settings, config_key, True): # 默认启用,如果配置中未指定
|
if getattr(config_processor_settings, config_key, True): # 默认启用,如果配置中未指定
|
||||||
self.enabled_processor_names.append(proc_name)
|
self.enabled_processor_names.append(proc_name)
|
||||||
else:
|
else:
|
||||||
# 此处理器不在配置映射中,默认启用
|
# 此处理器不在配置映射中,默认启用
|
||||||
@@ -123,7 +123,6 @@ class HeartFChatting:
|
|||||||
|
|
||||||
logger.info(f"{self.log_prefix} 将启用的处理器: {self.enabled_processor_names}")
|
logger.info(f"{self.log_prefix} 将启用的处理器: {self.enabled_processor_names}")
|
||||||
|
|
||||||
|
|
||||||
self.expressor = DefaultExpressor(chat_id=self.stream_id)
|
self.expressor = DefaultExpressor(chat_id=self.stream_id)
|
||||||
self.action_manager = ActionManager()
|
self.action_manager = ActionManager()
|
||||||
self.action_planner = ActionPlanner(log_prefix=self.log_prefix, action_manager=self.action_manager)
|
self.action_planner = ActionPlanner(log_prefix=self.log_prefix, action_manager=self.action_manager)
|
||||||
@@ -185,10 +184,10 @@ class HeartFChatting:
|
|||||||
|
|
||||||
def _register_default_processors(self):
|
def _register_default_processors(self):
|
||||||
"""根据 self.enabled_processor_names 注册信息处理器"""
|
"""根据 self.enabled_processor_names 注册信息处理器"""
|
||||||
self.processors = [] # 清空已有的
|
self.processors = [] # 清空已有的
|
||||||
|
|
||||||
# self.enabled_processor_names 由 __init__ 保证是一个列表
|
# self.enabled_processor_names 由 __init__ 保证是一个列表
|
||||||
for name in self.enabled_processor_names: # 'name' is "ChattingInfoProcessor", etc.
|
for name in self.enabled_processor_names: # 'name' is "ChattingInfoProcessor", etc.
|
||||||
processor_class = PROCESSOR_CLASSES.get(name)
|
processor_class = PROCESSOR_CLASSES.get(name)
|
||||||
if processor_class:
|
if processor_class:
|
||||||
# 根据处理器类名判断是否需要 subheartflow_id
|
# 根据处理器类名判断是否需要 subheartflow_id
|
||||||
@@ -199,16 +198,20 @@ class HeartFChatting:
|
|||||||
else:
|
else:
|
||||||
# 对于PROCESSOR_CLASSES中定义但此处未明确处理构造的处理器
|
# 对于PROCESSOR_CLASSES中定义但此处未明确处理构造的处理器
|
||||||
try:
|
try:
|
||||||
self.processors.append(processor_class()) # 尝试无参构造
|
self.processors.append(processor_class()) # 尝试无参构造
|
||||||
logger.debug(f"{self.log_prefix} 注册处理器 {name} (尝试无参构造).")
|
logger.debug(f"{self.log_prefix} 注册处理器 {name} (尝试无参构造).")
|
||||||
except TypeError:
|
except TypeError:
|
||||||
logger.error(f"{self.log_prefix} 处理器 {name} 构造失败。它可能需要参数(如 subheartflow_id)但未在注册逻辑中明确处理。")
|
logger.error(
|
||||||
|
f"{self.log_prefix} 处理器 {name} 构造失败。它可能需要参数(如 subheartflow_id)但未在注册逻辑中明确处理。"
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
# 这理论上不应该发生,因为 enabled_processor_names 是从 PROCESSOR_CLASSES 的键生成的
|
# 这理论上不应该发生,因为 enabled_processor_names 是从 PROCESSOR_CLASSES 的键生成的
|
||||||
logger.warning(f"{self.log_prefix} 在 PROCESSOR_CLASSES 中未找到名为 '{name}' 的处理器,将跳过注册。")
|
logger.warning(f"{self.log_prefix} 在 PROCESSOR_CLASSES 中未找到名为 '{name}' 的处理器,将跳过注册。")
|
||||||
|
|
||||||
if self.processors:
|
if self.processors:
|
||||||
logger.info(f"{self.log_prefix} 已根据配置和默认规则注册处理器: {[p.__class__.__name__ for p in self.processors]}")
|
logger.info(
|
||||||
|
f"{self.log_prefix} 已根据配置和默认规则注册处理器: {[p.__class__.__name__ for p in self.processors]}"
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
logger.warning(f"{self.log_prefix} 没有注册任何处理器。这可能是由于配置错误或所有处理器都被禁用了。")
|
logger.warning(f"{self.log_prefix} 没有注册任何处理器。这可能是由于配置错误或所有处理器都被禁用了。")
|
||||||
|
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ class SubHeartflow:
|
|||||||
if global_config.chat.chat_mode == "focus":
|
if global_config.chat.chat_mode == "focus":
|
||||||
logger.info(f"{self.log_prefix} 配置为 focus 模式,将直接尝试进入 FOCUSED 状态。")
|
logger.info(f"{self.log_prefix} 配置为 focus 模式,将直接尝试进入 FOCUSED 状态。")
|
||||||
await self.change_chat_state(ChatState.FOCUSED)
|
await self.change_chat_state(ChatState.FOCUSED)
|
||||||
else: # "auto" 或其他模式保持原有逻辑或默认为 NORMAL
|
else: # "auto" 或其他模式保持原有逻辑或默认为 NORMAL
|
||||||
logger.info(f"{self.log_prefix} 配置为 auto 或其他模式,将尝试进入 NORMAL 状态。")
|
logger.info(f"{self.log_prefix} 配置为 auto 或其他模式,将尝试进入 NORMAL 状态。")
|
||||||
await self.change_chat_state(ChatState.NORMAL)
|
await self.change_chat_state(ChatState.NORMAL)
|
||||||
|
|
||||||
@@ -186,11 +186,9 @@ class SubHeartflow:
|
|||||||
try:
|
try:
|
||||||
# 创建 HeartFChatting 实例,并传递 从构造函数传入的 回调函数
|
# 创建 HeartFChatting 实例,并传递 从构造函数传入的 回调函数
|
||||||
|
|
||||||
|
|
||||||
self.heart_fc_instance = HeartFChatting(
|
self.heart_fc_instance = HeartFChatting(
|
||||||
chat_id=self.subheartflow_id,
|
chat_id=self.subheartflow_id,
|
||||||
observations=self.observations,
|
observations=self.observations,
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# 初始化并启动 HeartFChatting
|
# 初始化并启动 HeartFChatting
|
||||||
|
|||||||
Reference in New Issue
Block a user