feat:支持多重人格和切换概率配置
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user