feat: 整合reasoning模式和hfc模式,统一调控(但不是很统一)

This commit is contained in:
SengokuCola
2025-04-21 18:37:49 +08:00
parent 7e0f41c039
commit c10b7eea61
14 changed files with 1188 additions and 88 deletions

View File

@@ -45,6 +45,8 @@ class CurrentState:
def __init__(self):
self.current_state_info = ""
self.chat_status = "IDLE"
self.mood_manager = MoodManager()
self.mood = self.mood_manager.get_prompt()
@@ -70,7 +72,7 @@ class Heartflow:
"""定期清理不活跃的子心流"""
while True:
current_time = time.time()
inactive_subheartflows_ids = [] # 修改变量名以清晰表示存储的是ID
inactive_subheartflows_ids = [] # 修改变量名以清晰表示存储的是ID
# 检查所有子心流
# 使用 list(self._subheartflows.items()) 避免在迭代时修改字典
@@ -104,7 +106,7 @@ class Heartflow:
# await self.do_a_thinking()
# await asyncio.sleep(global_config.heart_flow_update_interval * 3) # 5分钟思考一次
await asyncio.sleep(300)
async def heartflow_start_working(self):
@@ -253,7 +255,7 @@ class Heartflow:
# 创建并初始化观察对象
logger.debug(f"{subheartflow_id} 创建 observation")
observation = ChattingObservation(subheartflow_id)
await observation.initialize() # 等待初始化完成
await observation.initialize() # 等待初始化完成
subheartflow.add_observation(observation)
logger.debug(f"{subheartflow_id} 添加 observation 成功")
@@ -269,7 +271,7 @@ class Heartflow:
except Exception as e:
# 记录详细错误信息
logger.error(f"创建 subheartflow {subheartflow_id} 失败: {e}")
logger.error(traceback.format_exc()) # 记录完整的 traceback
logger.error(traceback.format_exc()) # 记录完整的 traceback
# 考虑是否需要更具体的错误处理或资源清理逻辑
return None

View File

@@ -5,7 +5,6 @@ from src.plugins.models.utils_model import LLMRequest
from src.config.config import global_config
import time
from typing import Optional, List
from datetime import datetime
import traceback
from src.plugins.chat.utils import parse_text_timestamps
@@ -76,14 +75,14 @@ class SubHeartflow:
)
self.main_heartflow_info = ""
self.last_active_time = time.time() # 添加最后激活时间
self.should_stop = False # 添加停止标志
self.task: Optional[asyncio.Task] = None # 添加 task 属性
self.should_stop = False # 添加停止标志
self.task: Optional[asyncio.Task] = None # 添加 task 属性
self.is_active = False
self.observations: List[ChattingObservation] = [] # 使用 List 类型提示
self.observations: List[ChattingObservation] = [] # 使用 List 类型提示
self.running_knowledges = []
@@ -98,7 +97,7 @@ class SubHeartflow:
# 检查是否被主心流标记为停止
if self.should_stop:
logger.info(f"子心流 {self.subheartflow_id} 被标记为停止,正在退出后台任务...")
break # 退出循环以停止任务
break # 退出循环以停止任务
await asyncio.sleep(global_config.sub_heart_flow_update_interval) # 定期检查销毁条件