This commit is contained in:
SengokuCola
2025-05-29 13:39:11 +08:00
8 changed files with 18 additions and 37 deletions

View File

@@ -16,6 +16,7 @@ from src.chat.focus_chat.info.info_base import InfoBase
from src.chat.focus_chat.info_processors.chattinginfo_processor import ChattingInfoProcessor
from src.chat.focus_chat.info_processors.mind_processor import MindProcessor
from src.chat.focus_chat.info_processors.working_memory_processor import WorkingMemoryProcessor
# from src.chat.focus_chat.info_processors.action_processor import ActionProcessor
from src.chat.heart_flow.observation.hfcloop_observation import HFCloopObservation
from src.chat.heart_flow.observation.working_observation import WorkingMemoryObservation
@@ -481,7 +482,7 @@ class HeartFChatting:
await self.action_modifier.modify_actions(observations=observations, running_memorys=running_memorys)
await self.action_observation.observe()
observations.append(self.action_observation)
with Timer("执行 信息处理器", cycle_timers):
all_plan_info, processor_time_costs = await self._process_processors(
observations, running_memorys, cycle_timers

View File

@@ -29,7 +29,10 @@ class ChattingInfoProcessor(BaseProcessor):
super().__init__()
# TODO: API-Adapter修改标记
self.model_summary = LLMRequest(
model=global_config.model.utils_small, temperature=0.7, max_tokens=300, request_type="focus.observation.chat"
model=global_config.model.utils_small,
temperature=0.7,
max_tokens=300,
request_type="focus.observation.chat",
)
async def process_info(

View File

@@ -70,7 +70,10 @@ class MemoryActivator:
def __init__(self):
# TODO: API-Adapter修改标记
self.summary_model = LLMRequest(
model=global_config.model.memory_summary, temperature=0.7, max_tokens=50, request_type="focus.memory_activator"
model=global_config.model.memory_summary,
temperature=0.7,
max_tokens=50,
request_type="focus.memory_activator",
)
self.running_memory = []
self.cached_keywords = set() # 用于缓存历史关键词

View File

@@ -1,8 +1,5 @@
from typing import List, Optional, Any
from src.chat.heart_flow.observation.observation import Observation
from src.chat.focus_chat.info.info_base import InfoBase
from src.chat.focus_chat.info.action_info import ActionInfo
from ..info_processors.base_processor import BaseProcessor
from src.common.logger_manager import get_logger
from src.chat.heart_flow.observation.hfcloop_observation import HFCloopObservation
from src.chat.heart_flow.observation.chatting_observation import ChattingObservation
@@ -15,14 +12,13 @@ from src.chat.focus_chat.planners.action_manager import ActionManager
logger = get_logger("action_manager")
class ActionModifier():
class ActionModifier:
"""动作处理器
用于处理Observation对象将其转换为ObsInfo对象。
"""
log_prefix = "动作处理"
def __init__(self, action_manager: ActionManager):
"""初始化观察处理器"""
@@ -73,7 +69,7 @@ class ActionModifier():
# reasons.append(f"移除动作{action_changes['remove']}因为检测到连续回复")
# 处理ChattingObservation
if chat_obs :
if chat_obs:
obs = chat_obs
# 检查动作的关联类型
chat_context = chat_manager.get_stream(obs.chat_id).context

View File

@@ -101,24 +101,6 @@ class ActionPlanner:
# 获取观察信息
extra_info: list[str] = []
# # 首先处理动作变更
# for info in all_plan_info:
# if isinstance(info, ActionInfo) and info.has_changes():
# add_actions = info.get_add_actions()
# remove_actions = info.get_remove_actions()
# reason = info.get_reason()
# print(f"{self.log_prefix} 动作变更: {add_actions} {remove_actions} {reason}")
# # 处理动作的增加
# for action_name in add_actions:
# if action_name in self.action_manager.get_registered_actions():
# self.action_manager.add_action_to_using(action_name)
# logger.debug(f"{self.log_prefix}添加动作: {action_name}, 原因: {reason}")
# # 处理动作的移除
# for action_name in remove_actions:
# self.action_manager.remove_action_from_using(action_name)
# logger.debug(f"{self.log_prefix}移除动作: {action_name}, 原因: {reason}")
@@ -134,6 +116,7 @@ class ActionPlanner:
self_info = name_block + personality_block + identity_block
current_mind = "你思考了很久,没有想清晰要做什么"
cycle_info = ""
structured_info = ""
extra_info = []
@@ -157,7 +140,7 @@ class ActionPlanner:
structured_info = info.get_processed_info()
# print(f"structured_info: {structured_info}")
# elif not isinstance(info, ActionInfo): # 跳过已处理的ActionInfo
# extra_info.append(info.get_processed_info())
# extra_info.append(info.get_processed_info())
# 获取当前可用的动作
current_available_actions = self.action_manager.get_using_actions()

View File

@@ -6,6 +6,7 @@ from src.chat.focus_chat.planners.action_manager import ActionManager
logger = get_logger("observation")
# 特殊的观察,专门用于观察动作
# 所有观察的基类
class ActionObservation:
@@ -21,7 +22,6 @@ class ActionObservation:
def get_observe_info(self):
return self.observe_info
def set_action_manager(self, action_manager: ActionManager):
self.action_manager = action_manager
self.all_actions = self.action_manager.get_registered_actions()
@@ -31,6 +31,6 @@ class ActionObservation:
self.all_using_actions = self.action_manager.get_using_actions()
for action_name, action_info in self.all_using_actions.items():
action_info_block += f"\n{action_name}: {action_info.get('description', '')}"
action_info_block += f"\n注意,除了上面动作选项之外,你在群聊里不能做其他任何事情,这是你能力的边界\n"
action_info_block += "\n注意,除了上面动作选项之外,你在群聊里不能做其他任何事情,这是你能力的边界\n"
self.observe_info = action_info_block

View File

@@ -3,7 +3,6 @@
from datetime import datetime
from src.common.logger_manager import get_logger
from src.chat.focus_chat.heartFC_Cycleinfo import CycleDetail
from src.chat.focus_chat.planners.action_manager import ActionManager
from typing import List
# Import the new utility function