From d7c5f7031c4b8df52c8bcc56e6a4c8f2abc5f2e2 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Mon, 12 May 2025 12:01:09 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E6=94=B9=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{ => observation}/chatting_observation.py | 2 +- .../{ => observation}/hfcloop_observation.py | 0 .../{ => observation}/memory_observation.py | 2 +- .../{ => observation}/observation.py | 0 .../{ => observation}/working_observation.py | 0 src/heart_flow/sub_heartflow.py | 4 +-- src/heart_flow/tool_user.py | 2 +- .../expressors/default_expressor.py | 2 +- src/plugins/heartFC_chat/heartFC_chat.py | 30 ++++++++++++++----- .../info_processors/chattinginfo_processor.py | 6 ++-- .../info_processors/mind_processor.py | 7 +++-- .../info_processors/tool_processor.py | 6 ++-- 12 files changed, 39 insertions(+), 22 deletions(-) rename src/heart_flow/{ => observation}/chatting_observation.py (99%) rename src/heart_flow/{ => observation}/hfcloop_observation.py (100%) rename src/heart_flow/{ => observation}/memory_observation.py (97%) rename src/heart_flow/{ => observation}/observation.py (100%) rename src/heart_flow/{ => observation}/working_observation.py (100%) diff --git a/src/heart_flow/chatting_observation.py b/src/heart_flow/observation/chatting_observation.py similarity index 99% rename from src/heart_flow/chatting_observation.py rename to src/heart_flow/observation/chatting_observation.py index e44c290cb..ecc61d39b 100644 --- a/src/heart_flow/chatting_observation.py +++ b/src/heart_flow/observation/chatting_observation.py @@ -13,7 +13,7 @@ from src.plugins.utils.prompt_builder import global_prompt_manager from typing import Optional import difflib from src.plugins.chat.message import MessageRecv # 添加 MessageRecv 导入 -from src.heart_flow.observation import Observation +from heart_flow.observation.observation import Observation from src.common.logger_manager import get_logger from src.heart_flow.utils_chat import get_chat_type_and_target_info diff --git a/src/heart_flow/hfcloop_observation.py b/src/heart_flow/observation/hfcloop_observation.py similarity index 100% rename from src/heart_flow/hfcloop_observation.py rename to src/heart_flow/observation/hfcloop_observation.py diff --git a/src/heart_flow/memory_observation.py b/src/heart_flow/observation/memory_observation.py similarity index 97% rename from src/heart_flow/memory_observation.py rename to src/heart_flow/observation/memory_observation.py index 347e7ce05..508b0e4ec 100644 --- a/src/heart_flow/memory_observation.py +++ b/src/heart_flow/observation/memory_observation.py @@ -1,4 +1,4 @@ -from src.heart_flow.chatting_observation import Observation +from src.heart_flow.observation.observation import Observation from datetime import datetime from src.common.logger_manager import get_logger import traceback diff --git a/src/heart_flow/observation.py b/src/heart_flow/observation/observation.py similarity index 100% rename from src/heart_flow/observation.py rename to src/heart_flow/observation/observation.py diff --git a/src/heart_flow/working_observation.py b/src/heart_flow/observation/working_observation.py similarity index 100% rename from src/heart_flow/working_observation.py rename to src/heart_flow/observation/working_observation.py diff --git a/src/heart_flow/sub_heartflow.py b/src/heart_flow/sub_heartflow.py index a002a6fad..8acf615bf 100644 --- a/src/heart_flow/sub_heartflow.py +++ b/src/heart_flow/sub_heartflow.py @@ -1,5 +1,5 @@ -from .observation import Observation -from .chatting_observation import ChattingObservation +from .observation.observation import Observation +from src.heart_flow.observation.chatting_observation import ChattingObservation import asyncio import time from typing import Optional, List, Dict, Tuple, Callable, Coroutine diff --git a/src/heart_flow/tool_user.py b/src/heart_flow/tool_user.py index 92533542a..595d7c0bd 100644 --- a/src/heart_flow/tool_user.py +++ b/src/heart_flow/tool_user.py @@ -1,4 +1,4 @@ -from .observation import ChattingObservation +from .observation.observation import ChattingObservation from src.plugins.models.utils_model import LLMRequest from src.config.config import global_config import time diff --git a/src/plugins/heartFC_chat/expressors/default_expressor.py b/src/plugins/heartFC_chat/expressors/default_expressor.py index 3dc39ff41..fd0448ac4 100644 --- a/src/plugins/heartFC_chat/expressors/default_expressor.py +++ b/src/plugins/heartFC_chat/expressors/default_expressor.py @@ -120,7 +120,7 @@ class DefaultExpressor: if not has_sent_something: logger.warning(f"{self.log_prefix} 回复动作未包含任何有效内容") - return has_sent_something, thinking_id + return has_sent_something, reply except Exception as e: logger.error(f"回复失败: {e}") diff --git a/src/plugins/heartFC_chat/heartFC_chat.py b/src/plugins/heartFC_chat/heartFC_chat.py index 2e1c7cde3..f774207e7 100644 --- a/src/plugins/heartFC_chat/heartFC_chat.py +++ b/src/plugins/heartFC_chat/heartFC_chat.py @@ -11,11 +11,11 @@ from src.common.logger_manager import get_logger from src.plugins.models.utils_model import LLMRequest from src.config.config import global_config from src.plugins.utils.timer_calculator import Timer -from src.heart_flow.chatting_observation import Observation +from src.heart_flow.observation.observation import Observation from src.plugins.heartFC_chat.heartflow_prompt_builder import prompt_builder import contextlib from src.plugins.heartFC_chat.heartFC_Cycleinfo import CycleDetail -from src.heart_flow.chatting_observation import ChattingObservation +from src.heart_flow.observation.chatting_observation import ChattingObservation from src.heart_flow.utils_chat import get_chat_type_and_target_info from rich.traceback import install from src.heart_flow.info.info_base import InfoBase @@ -25,9 +25,9 @@ from src.heart_flow.info.mind_info import MindInfo from src.heart_flow.info.structured_info import StructuredInfo from src.plugins.heartFC_chat.info_processors.chattinginfo_processor import ChattingInfoProcessor from src.plugins.heartFC_chat.info_processors.mind_processor import MindProcessor -from src.heart_flow.memory_observation import MemoryObservation -from src.heart_flow.hfcloop_observation import HFCloopObservation -from src.heart_flow.working_observation import WorkingObservation +from src.heart_flow.observation.memory_observation import MemoryObservation +from src.heart_flow.observation.hfcloop_observation import HFCloopObservation +from src.heart_flow.observation.working_observation import WorkingObservation from src.plugins.heartFC_chat.info_processors.tool_processor import ToolProcessor from src.plugins.heartFC_chat.expressors.default_expressor import DefaultExpressor from src.plugins.heartFC_chat.hfc_utils import _create_empty_anchor_message @@ -517,7 +517,10 @@ class HeartFChatting: # 更新循环信息 self._current_cycle.set_action_info( - action_type=action, reasoning=reasoning, action_taken=True, action_data=action_data + action_type=action, + action_data=action_data, + reasoning=reasoning, + action_taken=True, ) # 处理LLM错误 @@ -983,6 +986,19 @@ class HeartFChatting: else: anchor_message.update_chat_stream(self.chat_stream) - return await self.expressor.deal_reply( + success, reply_set = await self.expressor.deal_reply( cycle_timers=cycle_timers, action_data=reply_data, anchor_message=anchor_message, reasoning=reasoning ) + + reply_text = "" + for reply in reply_set: + reply_text += reply + + self._current_cycle.set_response_info( + success=success, + reply_text=reply_text, + anchor_message=anchor_message, + ) + + return success, reply_text + diff --git a/src/plugins/heartFC_chat/info_processors/chattinginfo_processor.py b/src/plugins/heartFC_chat/info_processors/chattinginfo_processor.py index 8a3f3b832..f9d28b86e 100644 --- a/src/plugins/heartFC_chat/info_processors/chattinginfo_processor.py +++ b/src/plugins/heartFC_chat/info_processors/chattinginfo_processor.py @@ -1,11 +1,11 @@ from typing import List, Optional, Any from src.heart_flow.info.obs_info import ObsInfo -from src.heart_flow.chatting_observation import Observation +from src.heart_flow.observation.observation import Observation from src.heart_flow.info.info_base import InfoBase from .base_processor import BaseProcessor from src.common.logger_manager import get_logger -from src.heart_flow.chatting_observation import ChattingObservation -from src.heart_flow.hfcloop_observation import HFCloopObservation +from src.heart_flow.observation.chatting_observation import ChattingObservation +from src.heart_flow.observation.hfcloop_observation import HFCloopObservation from src.heart_flow.info.cycle_info import CycleInfo logger = get_logger("observation") diff --git a/src/plugins/heartFC_chat/info_processors/mind_processor.py b/src/plugins/heartFC_chat/info_processors/mind_processor.py index 227fcd9be..d64789673 100644 --- a/src/plugins/heartFC_chat/info_processors/mind_processor.py +++ b/src/plugins/heartFC_chat/info_processors/mind_processor.py @@ -1,4 +1,5 @@ -from src.heart_flow.chatting_observation import ChattingObservation, Observation +from src.heart_flow.observation.chatting_observation import ChattingObservation +from src.heart_flow.observation.observation import Observation from src.plugins.models.utils_model import LLMRequest from src.config.config import global_config import time @@ -14,8 +15,8 @@ from src.plugins.person_info.relationship_manager import relationship_manager from .base_processor import BaseProcessor from src.heart_flow.info.mind_info import MindInfo from typing import List, Optional -from src.heart_flow.memory_observation import MemoryObservation -from src.heart_flow.hfcloop_observation import HFCloopObservation +from src.heart_flow.observation.memory_observation import MemoryObservation +from src.heart_flow.observation.hfcloop_observation import HFCloopObservation from src.plugins.heartFC_chat.info_processors.processor_utils import ( calculate_similarity, calculate_replacement_probability, diff --git a/src/plugins/heartFC_chat/info_processors/tool_processor.py b/src/plugins/heartFC_chat/info_processors/tool_processor.py index fa2cb20b9..a91b79cbc 100644 --- a/src/plugins/heartFC_chat/info_processors/tool_processor.py +++ b/src/plugins/heartFC_chat/info_processors/tool_processor.py @@ -1,4 +1,4 @@ -from src.heart_flow.chatting_observation import ChattingObservation +from src.heart_flow.observation.chatting_observation import ChattingObservation from src.plugins.models.utils_model import LLMRequest from src.config.config import global_config import time @@ -10,8 +10,8 @@ from src.plugins.utils.json_utils import process_llm_tool_calls from src.plugins.person_info.relationship_manager import relationship_manager from .base_processor import BaseProcessor from typing import List, Optional -from src.heart_flow.chatting_observation import Observation -from src.heart_flow.working_observation import WorkingObservation +from src.heart_flow.observation.observation import Observation +from src.heart_flow.observation.working_observation import WorkingObservation from src.heart_flow.info.structured_info import StructuredInfo logger = get_logger("tool_use")