同步pr分支

pull/937/head
Bakadax 2025-05-04 20:30:10 +08:00
parent cdd2b2c2aa
commit 5a1dd6b257
3 changed files with 12 additions and 9 deletions

View File

@ -284,7 +284,7 @@ class BotConfig:
nickname_probability_smoothing: int = 1 # 绰号加权随机选择的平滑因子
nickname_queue_max_size: int = 100 # 绰号处理队列最大容量
nickname_process_sleep_interval: float = 60 # 绰号处理进程休眠间隔(秒)
nickname_observation_context_size: int = 30 # 绰号处理选中上下文长度
nickname_analysis_history_limit: int = 30 # 绰号处理可见最大上下文
# 模型配置
llm_reasoning: dict[str, str] = field(default_factory=lambda: {})
@ -420,7 +420,7 @@ class BotConfig:
config.steal_emoji = emoji_config.get("steal_emoji", config.steal_emoji)
def group_nickname(parent: dict):
if config.INNER_VERSION in SpecifierSet(">=1.6.1.1"):
if config.INNER_VERSION in SpecifierSet(">=1.6.1.4"):
group_nickname_config = parent.get("group_nickname", {})
config.enable_nickname_mapping = group_nickname_config.get(
"enable_nickname_mapping", config.enable_nickname_mapping
@ -437,10 +437,9 @@ class BotConfig:
config.nickname_process_sleep_interval = group_nickname_config.get(
"nickname_process_sleep_interval", config.nickname_process_sleep_interval
)
if config.INNER_VERSION in SpecifierSet(">=1.6.1.3"):
config.nickname_observation_context_size = group_nickname_config.get(
"nickname_observation_context_size", config.nickname_observation_context_size
)
config.nickname_analysis_history_limit = group_nickname_config.get(
"nickname_analysis_history_limit", config.nickname_analysis_history_limit
)
def bot(parent: dict):
# 机器人基础配置

View File

@ -143,7 +143,7 @@ class NicknameManager:
self.nickname_queue: asyncio.Queue = asyncio.Queue(maxsize=self.queue_max_size)
self._stop_event = threading.Event() # stop_event 仍然使用 threading.Event因为它是由另一个线程设置的
self._nickname_thread: Optional[threading.Thread] = None
self.sleep_interval = getattr(self.config, "nickname_process_sleep_interval", 0.5) # 超时时间
self.sleep_interval = getattr(self.config, "nickname_process_sleep_interval", 60) # 超时时间
self._initialized = True
logger.info("NicknameManager 初始化完成。")
@ -153,6 +153,10 @@ class NicknameManager:
if not self.is_enabled:
logger.info("绰号处理功能已禁用,处理器未启动。")
return
if global_config.max_nicknames_in_prompt == 0: # 考虑有神秘的用户输入为0的可能性
logger.error("[错误] 绰号注入数量不合适,绰号处理功能已禁用!")
return
if self._nickname_thread is None or not self._nickname_thread.is_alive():
logger.info("正在启动绰号处理器线程...")
self._stop_event.clear()
@ -205,7 +209,7 @@ class NicknameManager:
log_prefix = f"[{current_chat_stream.stream_id}]"
try:
# 1. 获取历史记录
history_limit = getattr(self.config, "NICKNAME_ANALYSIS_HISTORY_LIMIT", global_config.nickname_observation_context_size)
history_limit = getattr(self.config, "nickname_analysis_history_limit", 30)
history_messages = get_raw_msg_before_timestamp_with_chat(
chat_id=current_chat_stream.stream_id,
timestamp=time.time(),

View File

@ -131,7 +131,7 @@ max_nicknames_in_prompt = 10 # Prompt 中最多注入的绰号数量防止to
nickname_probability_smoothing = 1 # 绰号加权随机选择的平滑因子
nickname_queue_max_size = 100 # 绰号处理队列最大容量
nickname_process_sleep_interval = 60 # 绰号处理进程休眠间隔(秒)
nickname_observation_context_size = 30 # 绰号处理选中上下文长度
nickname_analysis_history_limit = 30 # 绰号处理可见最大上下文
[memory]
build_memory_interval = 2000 # 记忆构建间隔 单位秒 间隔越低,麦麦学习越多,但是冗余信息也会增多