feat:表达方式可以多种随机
This commit is contained in:
@@ -635,7 +635,7 @@ class DefaultReplyer:
|
||||
# 获取基础personality
|
||||
prompt_personality = global_config.personality.personality
|
||||
|
||||
# 检查是否需要随机替换为状态
|
||||
# 检查是否需要随机替换为状态(personality 本体)
|
||||
if (
|
||||
global_config.personality.states
|
||||
and global_config.personality.state_probability > 0
|
||||
@@ -925,6 +925,17 @@ class DefaultReplyer:
|
||||
else: # think_level == 1 或默认
|
||||
prompt_name = "replyer_prompt"
|
||||
|
||||
# 根据配置构建最终的 reply_style:支持 multiple_reply_style 按概率随机替换
|
||||
reply_style = global_config.personality.reply_style
|
||||
multi_styles = getattr(global_config.personality, "multiple_reply_style", None) or []
|
||||
multi_prob = getattr(global_config.personality, "multiple_probability", 0.0) or 0.0
|
||||
if multi_styles and multi_prob > 0 and random.random() < multi_prob:
|
||||
try:
|
||||
reply_style = random.choice(list(multi_styles))
|
||||
except Exception:
|
||||
# 兜底:即使 multiple_reply_style 配置异常也不影响正常回复
|
||||
reply_style = global_config.personality.reply_style
|
||||
|
||||
return await global_prompt_manager.format_prompt(
|
||||
prompt_name,
|
||||
expression_habits_block=expression_habits_block,
|
||||
@@ -940,7 +951,7 @@ class DefaultReplyer:
|
||||
dialogue_prompt=dialogue_prompt,
|
||||
time_block=time_block,
|
||||
reply_target_block=reply_target_block,
|
||||
reply_style=global_config.personality.reply_style,
|
||||
reply_style=reply_style,
|
||||
keywords_reaction_prompt=keywords_reaction_prompt,
|
||||
moderation_prompt=moderation_prompt_block,
|
||||
memory_retrieval=memory_retrieval,
|
||||
@@ -1021,6 +1032,16 @@ class DefaultReplyer:
|
||||
|
||||
template_name = "default_expressor_prompt"
|
||||
|
||||
# 根据配置构建最终的 reply_style:支持 multiple_reply_style 按概率随机替换
|
||||
reply_style = global_config.personality.reply_style
|
||||
multi_styles = getattr(global_config.personality, "multiple_reply_style", None) or []
|
||||
multi_prob = getattr(global_config.personality, "multiple_probability", 0.0) or 0.0
|
||||
if multi_styles and multi_prob > 0 and random.random() < multi_prob:
|
||||
try:
|
||||
reply_style = random.choice(list(multi_styles))
|
||||
except Exception:
|
||||
reply_style = global_config.personality.reply_style
|
||||
|
||||
return await global_prompt_manager.format_prompt(
|
||||
template_name,
|
||||
expression_habits_block=expression_habits_block,
|
||||
@@ -1033,7 +1054,7 @@ class DefaultReplyer:
|
||||
reply_target_block=reply_target_block,
|
||||
raw_reply=raw_reply,
|
||||
reason=reason,
|
||||
reply_style=global_config.personality.reply_style,
|
||||
reply_style=reply_style,
|
||||
keywords_reaction_prompt=keywords_reaction_prompt,
|
||||
moderation_prompt=moderation_prompt_block,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user