PFC优化:增加一个新的决策

增加了一个可先的新的屏蔽决策,防止机器人受到骚扰信息消耗token,以前的结束对话结束以后,如果收到新的骚扰信息依然会再次进入决策,这次的屏蔽则是直接屏蔽10分钟(无任何决策),在之后实例自我销毁结束。
This commit is contained in:
114514
2025-04-27 10:10:18 +08:00
parent 2a5184ba46
commit cbaed95938
4 changed files with 50 additions and 5 deletions

View File

@@ -1,3 +1,4 @@
import time
from typing import Dict, Optional
from src.common.logger import get_module_logger
from .conversation import Conversation
@@ -44,7 +45,21 @@ class PFCManager:
if stream_id in self._instances and self._instances[stream_id].should_continue:
logger.debug(f"使用现有会话实例: {stream_id}")
return self._instances[stream_id]
if stream_id in self._instances:
instance = self._instances[stream_id]
if hasattr(instance, 'ignore_until_timestamp') and \
instance.ignore_until_timestamp and \
time.time() < instance.ignore_until_timestamp:
logger.debug(f"会话实例当前处于忽略状态: {stream_id}")
# 返回 None 阻止交互。或者可以返回实例但标记它被忽略了喵?
# 还是返回 None 吧喵。
return None
# 检查 should_continue 状态
if instance.should_continue:
logger.debug(f"使用现有会话实例: {stream_id}")
return instance
# else: 实例存在但不应继续
try:
# 创建新实例
logger.info(f"创建新的对话实例: {stream_id}")