完成回复概率增强器实现逻辑

pull/256/head
Pliosauroidea 2025-03-12 12:33:40 +08:00
parent 7917191101
commit ad770cec84
3 changed files with 34 additions and 15 deletions

View File

@ -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

View File

@ -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:

View File

@ -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 # 群组回复可能性增强