refactor: 重构心流聊天模块,简化频率控制; 删除 frequency_control.py 和 hfc_utils_old.py 旧文件; 新增 heartflow_manager.py 统一管理心流聊天; 将 HeartFChatting.adjust_talk_frequency 改为同步方法; 更新消息处理器使用新的 heartflow_manager;

This commit is contained in:
UnCLAS-Prommer
2026-03-12 11:12:47 +08:00
committed by DrSmoothl
parent e303fbeb6b
commit 021463b9f9
5 changed files with 15 additions and 145 deletions

View File

@@ -0,0 +1,48 @@
from typing import Optional, Dict
import traceback
from src.common.logger import get_logger
from src.chat.message_receive.chat_manager import chat_manager
from src.chat.heart_flow.heartFC_chat import HeartFChatting
from src.chat.brain_chat.brain_chat import BrainChatting
logger = get_logger("heartflow")
class HeartflowManager:
"""主心流协调器,负责初始化并协调聊天,控制聊天属性"""
def __init__(self):
self.heartflow_chat_list: Dict[str, HeartFChatting | BrainChatting] = {}
async def get_or_create_heartflow_chat(self, session_id: str) -> Optional[HeartFChatting | BrainChatting]:
"""获取或创建一个新的HeartFChatting实例"""
try:
if chat := self.heartflow_chat_list.get(session_id):
return chat
chat_session = chat_manager.get_session_by_session_id(session_id)
if not chat_session:
raise ValueError(f"未找到 session_id={session_id} 的聊天流")
new_chat = (
HeartFChatting(session_id=session_id) if chat_session.group_id else BrainChatting(session_id=session_id)
)
await new_chat.start()
self.heartflow_chat_list[session_id] = new_chat
return new_chat
except Exception as e:
logger.error(f"创建心流聊天 {session_id} 失败: {e}", exc_info=True)
traceback.print_exc()
return None
def adjust_talk_frequency(self, session_id: str, frequency: float):
"""调整指定聊天流的说话频率"""
chat = self.heartflow_chat_list.get(session_id)
if chat and isinstance(chat, HeartFChatting):
chat.adjust_talk_frequency(frequency)
logger.info(f"已调整聊天 {session_id} 的说话频率为 {frequency}")
else:
logger.warning(f"无法调整频率,未找到 session_id={session_id} 的聊天流")
heartflow_manager = HeartflowManager()