diff --git a/src/plugins/chat/config.py b/src/plugins/chat/config.py index eb98e4ef..6472b83d 100644 --- a/src/plugins/chat/config.py +++ b/src/plugins/chat/config.py @@ -82,12 +82,12 @@ class BotConfig: chinese_typo_word_replace_rate: float = 0.02 # 整词替换概率 reply_possibility_enhance_enable: bool = True # 是否启用回复可能性增强 - minumum_group_reply_possibility = 0 # 最低群组回复可能性 - minumum_friend_reply_possibility = 0.5 # 最低好友回复可能性 - max_group_reply_possibility = 1.0 # 最大回复可能性 - max_friend_reply_possibility = 1.0 # 最大回复可能性 - group_reply_possibility_enhance = 0 # 群组回复可能性增强 - friend_reply_possibility_enhance = 0 # 好友回复可能性增强 + min_group_reply_possibility: float = 0.0 # 最低群组回复可能性 + min_friend_reply_possibility: float = 0.5 # 最低好友回复可能性 + max_group_reply_possibility: float = 1.0 # 最大回复可能性 + max_friend_reply_possibility: float = 1.0 # 最大回复可能性 + group_reply_possibility_enhance: float = 0.0 # 群组回复可能性增强 + friend_reply_possibility_enhance: float = 0.0 # 好友回复可能性增强 # 默认人设 PROMPT_PERSONALITY = [ @@ -354,13 +354,13 @@ class BotConfig: def reply_possibility_enhance(parent: dict): reply_possibility_enhance_config = parent["reply_possibility_enhance"] config.reply_possibility_enhance_enable = reply_possibility_enhance_config.get( - "enable", config.reply_possibility_enhance_config_enable + "enable", config.reply_possibility_enhance_enable ) - config.minumum_group_reply_possibility = reply_possibility_enhance_config.get( - "minumum_group_reply_possibility", config.minumum_group_reply_possibility + config.min_group_reply_possibility = reply_possibility_enhance_config.get( + "min_group_reply_possibility", config.min_group_reply_possibility ) - config.minumum_friend_reply_possibility = reply_possibility_enhance_config.get( - "minumum_friend_reply_possibility", config.minumum_friend_reply_possibility + config.min_group_reply_possibility = reply_possibility_enhance_config.get( + "min_group_reply_possibility", config.min_group_reply_possibility ) config.max_group_reply_possibility = reply_possibility_enhance_config.get( "max_group_reply_possibility", config.max_group_reply_possibility @@ -369,10 +369,10 @@ class BotConfig: "max_friend_reply_possibility", config.max_friend_reply_possibility ) config.group_reply_possibility_enhance = reply_possibility_enhance_config.get( - "group_reply_possibility_enhance", config.group_reply_possibility_enhance + "group_reply_possibility_enhance", config.group_reply_possibility_enhance ) config.friend_reply_possibility_enhance = reply_possibility_enhance_config.get( - "friend_reply_possibility_enhance", config.friend_reply_possibility_enhance + "friend_reply_possibility_enhance", config.friend_reply_possibility_enhance ) # 版本表达式:>=1.0.0,<2.0.0 diff --git a/src/plugins/chat/willing_manager.py b/src/plugins/chat/willing_manager.py index 773d40c6..47e4986b 100644 --- a/src/plugins/chat/willing_manager.py +++ b/src/plugins/chat/willing_manager.py @@ -70,6 +70,24 @@ class WillingManager: reply_probability = max((current_willing - 0.45) * 2, 0) + # 回复意愿增强器 + if global_config.reply_possibility_enhance_enable: + logger.debug("回复意愿增强器激活") + # 群聊 + if chat_stream.group_info and chat_stream.group_info.group_id: + reply_probability += global_config.group_reply_possibility_enhance + reply_probability = min(reply_probability, global_config.max_group_reply_possibility) + reply_probability = max(reply_probability, global_config.min_group_reply_possibility) + logger.debug(f"群聊回复意愿增强: {reply_probability}") + + # 私聊 + else: + reply_probability += global_config.friend_reply_possibility_enhance + reply_probability = min(reply_probability, global_config.max_friend_reply_possibility) + reply_probability = max(reply_probability, global_config.min_friend_reply_possibility) + logger.debug(f"私聊回复意愿增强: {reply_probability}") + + # 检查群组权限(如果是群聊) if chat_stream.group_info: if chat_stream.group_info.group_id in config.talk_frequency_down_groups: diff --git a/template/bot_config_template.toml b/template/bot_config_template.toml index 68317099..ecf36241 100644 --- a/template/bot_config_template.toml +++ b/template/bot_config_template.toml @@ -109,9 +109,10 @@ enable_debug_output = false # 是否启用调试输出 enable_friend_chat = false # 是否启用好友聊天 [reply_possibility_enhance] +# 若果开启此项,最终回复概率=原始回复概率+回复可能性增强,并被限制在max和min之间 enable = true # 是否启用回复可能性增强 -minumum_group_reply_possibility = 0 # 最低群组回复可能性 -minumum_friend_reply_possibility = 0.5 # 最低好友回复可能性 +min_group_reply_possibility = 0 # 最低群组回复可能性 +min_friend_reply_possibility = 0.5 # 最低好友回复可能性 max_group_reply_possibility = 1.0 # 最大回复可能性 max_friend_reply_possibility = 1.0 # 最大回复可能性 group_reply_possibility_enhance = 0 # 群组回复可能性增强