mirror of https://github.com/Mai-with-u/MaiBot.git
功能:配置可以单独调整各聊天群聊的回复权重
parent
5ae32a965a
commit
4642e79999
|
|
@ -146,8 +146,7 @@ enable_check = false # 是否要检查表情包是不是合适的喵
|
||||||
check_prompt = "符合公序良俗" # 检查表情包的标准呢
|
check_prompt = "符合公序良俗" # 检查表情包的标准呢
|
||||||
|
|
||||||
[groups]
|
[groups]
|
||||||
talk_allowed = [123456, 789012] # 比如:让机器人在群123456和789012里说话
|
talk_allowed = { 123456 = 1.5, 789012 = 1.0, 345678 = 0.5 } # 比如:让机器人在群123456多说点话789012里正常说话,在群345678里少说点话
|
||||||
talk_frequency_down = [345678] # 比如:在群345678里少说点话
|
|
||||||
ban_user_id = [111222] # 比如:不回复QQ号为111222的人的消息
|
ban_user_id = [111222] # 比如:不回复QQ号为111222的人的消息
|
||||||
|
|
||||||
[others]
|
[others]
|
||||||
|
|
|
||||||
|
|
@ -107,8 +107,7 @@ enable_check = false # 启用表情审核
|
||||||
check_prompt = "符合公序良俗"
|
check_prompt = "符合公序良俗"
|
||||||
|
|
||||||
[groups]
|
[groups]
|
||||||
talk_allowed = [] # 允许对话的群号
|
talk_allowed = {} # 允许对话的群号与对应的回复权重
|
||||||
talk_frequency_down = [] # 降低回复频率的群号
|
|
||||||
ban_user_id = [] # 禁止回复的用户QQ号
|
ban_user_id = [] # 禁止回复的用户QQ号
|
||||||
|
|
||||||
[others]
|
[others]
|
||||||
|
|
|
||||||
|
|
@ -316,8 +316,7 @@ enable_check = false # 启用表情审核
|
||||||
check_prompt = "符合公序良俗"
|
check_prompt = "符合公序良俗"
|
||||||
|
|
||||||
[groups]
|
[groups]
|
||||||
talk_allowed = [] # 允许对话的群号
|
talk_allowed = {} # 允许对话的群号与对应的回复权重
|
||||||
talk_frequency_down = [] # 降低回复频率的群号
|
|
||||||
ban_user_id = [] # 禁止回复的用户QQ号
|
ban_user_id = [] # 禁止回复的用户QQ号
|
||||||
|
|
||||||
[others]
|
[others]
|
||||||
|
|
|
||||||
|
|
@ -117,7 +117,7 @@ class ChatBot:
|
||||||
else:
|
else:
|
||||||
# 白名单设定由nontbot侧完成
|
# 白名单设定由nontbot侧完成
|
||||||
if event.group_id:
|
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
|
return
|
||||||
|
|
||||||
user_info = UserInfo(
|
user_info = UserInfo(
|
||||||
|
|
|
||||||
|
|
@ -27,8 +27,7 @@ class BotConfig:
|
||||||
|
|
||||||
ENABLE_PIC_TRANSLATE: bool = True # 是否启用图片翻译
|
ENABLE_PIC_TRANSLATE: bool = True # 是否启用图片翻译
|
||||||
|
|
||||||
talk_allowed_groups = set()
|
talk_allowed_groups = {}
|
||||||
talk_frequency_down_groups = set()
|
|
||||||
thinking_timeout: int = 100 # 思考时间
|
thinking_timeout: int = 100 # 思考时间
|
||||||
|
|
||||||
response_willing_amplifier: float = 1.0 # 回复意愿放大系数
|
response_willing_amplifier: float = 1.0 # 回复意愿放大系数
|
||||||
|
|
@ -330,8 +329,10 @@ class BotConfig:
|
||||||
|
|
||||||
def groups(parent: dict):
|
def groups(parent: dict):
|
||||||
groups_config = parent["groups"]
|
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是一个dict,key是群id,value是回复权重
|
||||||
|
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", []))
|
config.ban_user_id = set(groups_config.get("ban_user_id", []))
|
||||||
|
|
||||||
def others(parent: dict):
|
def others(parent: dict):
|
||||||
|
|
|
||||||
|
|
@ -182,10 +182,12 @@ class WillingManager:
|
||||||
# 考虑回复意愿的影响
|
# 考虑回复意愿的影响
|
||||||
reply_probability = base_probability * current_willing
|
reply_probability = base_probability * current_willing
|
||||||
|
|
||||||
# 检查群组权限(如果是群聊)
|
# 群聊,根据配置调整回复概率
|
||||||
if chat_stream.group_info and config:
|
if chat_stream.group_info and config:
|
||||||
if chat_stream.group_info.group_id in config.talk_frequency_down_groups:
|
if chat_stream.group_info.group_id in config.talk_allowed_groups.keys():
|
||||||
reply_probability = reply_probability / global_config.down_frequency_rate
|
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%
|
reply_probability = min(reply_probability, 0.75) # 设置最大回复概率为75%
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
[inner]
|
[inner]
|
||||||
version = "0.0.8"
|
version = "0.0.9"
|
||||||
|
|
||||||
#如果你想要修改配置文件,请在修改后将version的值进行变更
|
#如果你想要修改配置文件,请在修改后将version的值进行变更
|
||||||
#如果新增项目,请在BotConfig类下新增相应的变量
|
#如果新增项目,请在BotConfig类下新增相应的变量
|
||||||
|
|
@ -9,8 +9,8 @@ version = "0.0.8"
|
||||||
#"necessary":False #是否必须
|
#"necessary":False #是否必须
|
||||||
#}
|
#}
|
||||||
#2.如果你修改的是[]下的项目,例如你新增了[memory]下的 memory_ban_words ,那么请在config.py的 load_config函数中的 memory函数下新增版本判断:
|
#2.如果你修改的是[]下的项目,例如你新增了[memory]下的 memory_ban_words ,那么请在config.py的 load_config函数中的 memory函数下新增版本判断:
|
||||||
# if config.INNER_VERSION in SpecifierSet(">=0.0.2"):
|
# if config.INNER_VERSION in SpecifierSet(">=0.0.2"):
|
||||||
# config.memory_ban_words = set(memory_config.get("memory_ban_words", []))
|
# config.memory_ban_words = set(memory_config.get("memory_ban_words", []))
|
||||||
|
|
||||||
[bot]
|
[bot]
|
||||||
qq = 123
|
qq = 123
|
||||||
|
|
@ -21,8 +21,8 @@ alias_names = ["小麦", "阿麦"]
|
||||||
prompt_personality = [
|
prompt_personality = [
|
||||||
"曾经是一个学习地质的女大学生,现在学习心理学和脑科学,你会刷贴吧", # 贴吧人格
|
"曾经是一个学习地质的女大学生,现在学习心理学和脑科学,你会刷贴吧", # 贴吧人格
|
||||||
"是一个女大学生,你有黑色头发,你会刷小红书", # 小红书人格
|
"是一个女大学生,你有黑色头发,你会刷小红书", # 小红书人格
|
||||||
"是一个女大学生,你会刷b站,对ACG文化感兴趣" # b站人格
|
"是一个女大学生,你会刷b站,对ACG文化感兴趣", # b站人格
|
||||||
]
|
]
|
||||||
personality_1_probability = 0.6 # 第一种人格出现概率
|
personality_1_probability = 0.6 # 第一种人格出现概率
|
||||||
personality_2_probability = 0.3 # 第二种人格出现概率
|
personality_2_probability = 0.3 # 第二种人格出现概率
|
||||||
personality_3_probability = 0.1 # 第三种人格出现概率,请确保三个概率相加等于1
|
personality_3_probability = 0.1 # 第三种人格出现概率,请确保三个概率相加等于1
|
||||||
|
|
@ -39,7 +39,7 @@ response_interested_rate_amplifier = 1 # 麦麦回复兴趣度放大系数,听
|
||||||
down_frequency_rate = 3.5 # 降低回复频率的群组回复意愿降低系数
|
down_frequency_rate = 3.5 # 降低回复频率的群组回复意愿降低系数
|
||||||
ban_words = [
|
ban_words = [
|
||||||
# "403","张三"
|
# "403","张三"
|
||||||
]
|
]
|
||||||
|
|
||||||
ban_msgs_regex = [
|
ban_msgs_regex = [
|
||||||
# 需要过滤的消息(原始消息)匹配的正则表达式,匹配到的消息将被过滤(支持CQ码),若不了解正则表达式请勿修改
|
# 需要过滤的消息(原始消息)匹配的正则表达式,匹配到的消息将被过滤(支持CQ码),若不了解正则表达式请勿修改
|
||||||
|
|
@ -92,15 +92,15 @@ reaction = "有人说你是人机或者机器人,否定这一事实,攻击
|
||||||
|
|
||||||
[[keywords_reaction.rules]] # 就像这样复制
|
[[keywords_reaction.rules]] # 就像这样复制
|
||||||
enable = false # 仅作示例,不会触发
|
enable = false # 仅作示例,不会触发
|
||||||
keywords = ["测试关键词回复","test",""]
|
keywords = ["测试关键词回复", "test", ""]
|
||||||
reaction = "回答“测试成功”"
|
reaction = "回答“测试成功”"
|
||||||
|
|
||||||
[chinese_typo]
|
[chinese_typo]
|
||||||
enable = true # 是否启用中文错别字生成器
|
enable = true # 是否启用中文错别字生成器
|
||||||
error_rate=0.006 # 单字替换概率
|
error_rate = 0.006 # 单字替换概率
|
||||||
min_freq=7 # 最小字频阈值
|
min_freq = 7 # 最小字频阈值
|
||||||
tone_error_rate=0.2 # 声调错误概率
|
tone_error_rate = 0.2 # 声调错误概率
|
||||||
word_replace_rate=0.006 # 整词替换概率
|
word_replace_rate = 0.006 # 整词替换概率
|
||||||
|
|
||||||
[others]
|
[others]
|
||||||
enable_advance_output = true # 是否启用高级输出
|
enable_advance_output = true # 是否启用高级输出
|
||||||
|
|
@ -109,11 +109,7 @@ enable_debug_output = false # 是否启用调试输出
|
||||||
enable_friend_chat = false # 是否启用好友聊天
|
enable_friend_chat = false # 是否启用好友聊天
|
||||||
|
|
||||||
[groups]
|
[groups]
|
||||||
talk_allowed = [
|
talk_allowed = { 123456 = 1.5, 789012 = 1.0, 345678 = 0.5 } # 允许对话的群号与对应的回复权重
|
||||||
123,
|
|
||||||
123,
|
|
||||||
] #可以回复消息的群
|
|
||||||
talk_frequency_down = [] #降低回复频率的群
|
|
||||||
ban_user_id = [] #禁止回复消息的QQ号
|
ban_user_id = [] #禁止回复消息的QQ号
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -179,7 +175,6 @@ name = "Pro/Qwen/Qwen2-VL-7B-Instruct"
|
||||||
provider = "SILICONFLOW"
|
provider = "SILICONFLOW"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#嵌入模型
|
#嵌入模型
|
||||||
|
|
||||||
[model.embedding] #嵌入
|
[model.embedding] #嵌入
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue