feat: 添加获取所有子心流ID和强制改变子心流状态的API接口

This commit is contained in:
墨梓柒
2025-05-05 01:26:34 +08:00
parent 27212c5d43
commit 2115917580
4 changed files with 61 additions and 4 deletions

View File

@@ -82,6 +82,17 @@ class SubHeartflowManager:
max_tokens=1000, # 与 Heartflow 一致 (虽然可能不需要这么多)
request_type="subheartflow_state_eval", # 保留特定的请求类型
)
async def force_change_state(self, subflow_id: Any, target_state: ChatState) -> bool:
"""强制改变指定子心流的状态"""
async with self._lock:
subflow = self.subheartflows.get(subflow_id)
if not subflow:
logger.warning(f"[强制状态转换]尝试转换不存在的子心流{subflow_id}{target_state.value}")
return False
await subflow.change_chat_state(target_state)
logger.info(f"[强制状态转换]子心流 {subflow_id} 已转换到 {target_state.value}")
return True
def get_all_subheartflows(self) -> List["SubHeartflow"]:
"""获取所有当前管理的 SubHeartflow 实例列表 (快照)。"""
@@ -92,7 +103,7 @@ class SubHeartflowManager:
Args:
subheartflow_id: 子心流唯一标识符
# mai_states 参数已被移除,使用 self.mai_state_info
mai_states 参数已被移除,使用 self.mai_state_info
Returns:
成功返回SubHeartflow实例失败返回None
@@ -174,8 +185,7 @@ class SubHeartflowManager:
continue
subheartflow.update_last_chat_state_time()
absent_last_time = subheartflow.chat_state_last_time
if max_age_seconds and (current_time - absent_last_time) > max_age_seconds:
flows_to_stop.append(subheartflow_id)
flows_to_stop.append(subheartflow_id)
return flows_to_stop