功能:配置可以单独调整各聊天群聊的回复权重

pull/345/head
Oct-autumn 2025-03-13 21:00:08 +08:00
parent 5ae32a965a
commit 4642e79999
No known key found for this signature in database
GPG Key ID: 53C510DF2E6149E8
7 changed files with 54 additions and 59 deletions

View File

@ -146,8 +146,7 @@ enable_check = false # 是否要检查表情包是不是合适的喵
check_prompt = "符合公序良俗" # 检查表情包的标准呢
[groups]
talk_allowed = [123456, 789012] # 比如让机器人在群123456和789012里说话
talk_frequency_down = [345678] # 比如在群345678里少说点话
talk_allowed = { 123456 = 1.5, 789012 = 1.0, 345678 = 0.5 } # 比如让机器人在群123456多说点话789012里正常说话在群345678里少说点话
ban_user_id = [111222] # 比如不回复QQ号为111222的人的消息
[others]

View File

@ -107,8 +107,7 @@ enable_check = false # 启用表情审核
check_prompt = "符合公序良俗"
[groups]
talk_allowed = [] # 允许对话的群号
talk_frequency_down = [] # 降低回复频率的群号
talk_allowed = {} # 允许对话的群号与对应的回复权重
ban_user_id = [] # 禁止回复的用户QQ号
[others]

View File

@ -316,8 +316,7 @@ enable_check = false # 启用表情审核
check_prompt = "符合公序良俗"
[groups]
talk_allowed = [] # 允许对话的群号
talk_frequency_down = [] # 降低回复频率的群号
talk_allowed = {} # 允许对话的群号与对应的回复权重
ban_user_id = [] # 禁止回复的用户QQ号
[others]

View File

@ -117,7 +117,7 @@ class ChatBot:
else:
# 白名单设定由nontbot侧完成
if event.group_id:
if event.group_id not in global_config.talk_allowed_groups:
if event.group_id not in global_config.talk_allowed_groups.keys():
return
user_info = UserInfo(

View File

@ -27,8 +27,7 @@ class BotConfig:
ENABLE_PIC_TRANSLATE: bool = True # 是否启用图片翻译
talk_allowed_groups = set()
talk_frequency_down_groups = set()
talk_allowed_groups = {}
thinking_timeout: int = 100 # 思考时间
response_willing_amplifier: float = 1.0 # 回复意愿放大系数
@ -330,8 +329,10 @@ class BotConfig:
def groups(parent: dict):
groups_config = parent["groups"]
config.talk_allowed_groups = set(groups_config.get("talk_allowed", []))
config.talk_frequency_down_groups = set(groups_config.get("talk_frequency_down", []))
# talk_allowed 是一个dict组每个dict包含群id和回复权重talk_allowed_groups是一个dictkey是群idvalue是回复权重
config.talk_allowed_groups = {int(k): v for k, v in groups_config.get("talk_allowed", {}).items()}
config.ban_user_id = set(groups_config.get("ban_user_id", []))
def others(parent: dict):

View File

@ -182,10 +182,12 @@ class WillingManager:
# 考虑回复意愿的影响
reply_probability = base_probability * current_willing
# 检查群组权限(如果是群聊)
# 群聊,根据配置调整回复概率
if chat_stream.group_info and config:
if chat_stream.group_info.group_id in config.talk_frequency_down_groups:
reply_probability = reply_probability / global_config.down_frequency_rate
if chat_stream.group_info.group_id in config.talk_allowed_groups.keys():
reply_probability = reply_probability * global_config.talk_allowed_groups[chat_stream.group_info.group_id]
else:
reply_probability = 0
# 限制最大回复概率
reply_probability = min(reply_probability, 0.75) # 设置最大回复概率为75%

View File

@ -1,5 +1,5 @@
[inner]
version = "0.0.8"
version = "0.0.9"
#如果你想要修改配置文件请在修改后将version的值进行变更
#如果新增项目请在BotConfig类下新增相应的变量
@ -21,7 +21,7 @@ alias_names = ["小麦", "阿麦"]
prompt_personality = [
"曾经是一个学习地质的女大学生,现在学习心理学和脑科学,你会刷贴吧", # 贴吧人格
"是一个女大学生,你有黑色头发,你会刷小红书", # 小红书人格
"是一个女大学生你会刷b站对ACG文化感兴趣" # b站人格
"是一个女大学生你会刷b站对ACG文化感兴趣", # b站人格
]
personality_1_probability = 0.6 # 第一种人格出现概率
personality_2_probability = 0.3 # 第二种人格出现概率
@ -109,11 +109,7 @@ enable_debug_output = false # 是否启用调试输出
enable_friend_chat = false # 是否启用好友聊天
[groups]
talk_allowed = [
123,
123,
] #可以回复消息的群
talk_frequency_down = [] #降低回复频率的群
talk_allowed = { 123456 = 1.5, 789012 = 1.0, 345678 = 0.5 } # 允许对话的群号与对应的回复权重
ban_user_id = [] #禁止回复消息的QQ号
@ -179,7 +175,6 @@ name = "Pro/Qwen/Qwen2-VL-7B-Instruct"
provider = "SILICONFLOW"
#嵌入模型
[model.embedding] #嵌入