feat:支持多重人格和切换概率配置

pull/1319/head
SengokuCola 2025-10-25 16:39:59 +08:00
parent a92e47701e
commit ae1f509cdb
4 changed files with 41 additions and 3 deletions

View File

@ -594,7 +594,18 @@ class DefaultReplyer:
else:
bot_nickname = ""
prompt_personality = f"{global_config.personality.personality};"
# 获取基础personality
prompt_personality = global_config.personality.personality
# 检查是否需要随机替换为状态
if (global_config.personality.states and
global_config.personality.state_probability > 0 and
random.random() < global_config.personality.state_probability):
# 随机选择一个状态替换personality
selected_state = random.choice(global_config.personality.states)
prompt_personality = selected_state
prompt_personality = f"{prompt_personality};"
return f"你的名字是{bot_name}{bot_nickname},你{prompt_personality}"
async def build_prompt_reply_context(

View File

@ -522,7 +522,18 @@ class PrivateReplyer:
else:
bot_nickname = ""
prompt_personality = f"{global_config.personality.personality};"
# 获取基础personality
prompt_personality = global_config.personality.personality
# 检查是否需要随机替换为状态
if (global_config.personality.states and
global_config.personality.state_probability > 0 and
random.random() < global_config.personality.state_probability):
# 随机选择一个状态替换personality
selected_state = random.choice(global_config.personality.states)
prompt_personality = selected_state
prompt_personality = f"{prompt_personality};"
return f"你的名字是{bot_name}{bot_nickname},你{prompt_personality}"
async def build_prompt_reply_context(

View File

@ -57,6 +57,12 @@ class PersonalityConfig(ConfigBase):
private_plan_style: str = ""
"""私聊说话规则,行为风格"""
states: list[str] = field(default_factory=lambda: [])
"""状态列表用于随机替换personality"""
state_probability: float = 0.0
"""状态概率每次构建人格时替换personality的概率"""
@dataclass
class RelationshipConfig(ConfigBase):

View File

@ -1,5 +1,5 @@
[inner]
version = "6.19.0"
version = "6.19.1"
#----以下是给开发人员阅读的,如果你只是部署了麦麦,不需要阅读----
#如果你想要修改配置文件请递增version的值
@ -47,6 +47,16 @@ private_plan_style = """
2.
3."""
# 状态,可以理解为人格多样性,会随机替换人格
states = [
"是一个女大学生,喜欢上网聊天,会刷小红书。" ,
"是一个大二心理学生,会刷贴吧和中国知网。" ,
"是一个赛博网友,最近很想吐槽人。"
]
# 替换概率每次构建人格时替换personality的概率0.0-1.0
state_probability = 0.3
[expression]
# 表达方式模式
mode = "classic"