feat(chat): 重构SmartPrompt系统完全继承DefaultReplyer功能
完成SmartPrompt系统的全面重构,现已完整继承原有DefaultReplyer的复杂提示构建逻辑: - 新增SmartPromptParameters涵盖所有必需参数并向后兼容 - 实现s4u/normal/minimal三种模式的完整支持 - 集成原有的表达式习惯、记忆块、关系信息等构建逻辑 - 重构缓存系统使用统一稳定的缓存键机制 - DefaultReplyer现已完整迁移到SmartPrompt架构且零API变更 BREAKING CHANGE: SmartPrompt系统现在完全可用,可以安全替换原有提示构建系统
This commit is contained in:
@@ -1037,8 +1037,7 @@ class DefaultReplyer:
|
||||
# 根据配置选择模板
|
||||
current_prompt_mode = global_config.personality.prompt_mode
|
||||
|
||||
# 使用智能Prompt系统构建上下文
|
||||
# 构建SmartPromptParameters对象
|
||||
# 构建SmartPromptParameters - 包含所有必需参数
|
||||
prompt_params = SmartPromptParameters(
|
||||
chat_id=chat_id,
|
||||
is_group_chat=is_group_chat,
|
||||
@@ -1069,11 +1068,13 @@ class DefaultReplyer:
|
||||
reply_target_block=reply_target_block,
|
||||
mood_prompt=mood_prompt,
|
||||
action_descriptions=action_descriptions,
|
||||
chat_stream=self.chat_stream,
|
||||
)
|
||||
|
||||
# 使用智能Prompt系统构建Prompt
|
||||
smart_prompt = SmartPrompt(prompt_params)
|
||||
# 使用重构后的SmartPrompt系统
|
||||
smart_prompt = SmartPrompt(
|
||||
template_name=None, # 由current_prompt_mode自动选择
|
||||
parameters=prompt_params
|
||||
)
|
||||
prompt_text = await smart_prompt.build_prompt()
|
||||
|
||||
return prompt_text
|
||||
@@ -1176,23 +1177,47 @@ class DefaultReplyer:
|
||||
|
||||
template_name = "default_expressor_prompt"
|
||||
|
||||
return await global_prompt_manager.format_prompt(
|
||||
template_name,
|
||||
# 使用重构后的SmartPrompt系统
|
||||
prompt_params = SmartPromptParameters(
|
||||
chat_id=chat_id,
|
||||
is_group_chat=is_group_chat,
|
||||
sender=sender,
|
||||
target="", # 重构时使用raw_reply
|
||||
reply_to=f"{sender}:{target}" if sender and target else reply_to,
|
||||
extra_info="", # 重构模式特殊处理
|
||||
expression_habits_block=expression_habits_block,
|
||||
relation_info_block=relation_info,
|
||||
chat_target=chat_target_1,
|
||||
relation_info=relation_info,
|
||||
time_block=time_block,
|
||||
chat_info=chat_talking_prompt_half,
|
||||
identity=identity_block,
|
||||
chat_target_2=chat_target_2,
|
||||
identity_block=identity_block,
|
||||
reply_target_block=reply_target_block,
|
||||
raw_reply=raw_reply,
|
||||
reason=reason,
|
||||
mood_state=mood_prompt, # 添加情绪状态参数
|
||||
reply_style=global_config.personality.reply_style,
|
||||
mood_prompt=mood_prompt,
|
||||
keywords_reaction_prompt=keywords_reaction_prompt,
|
||||
moderation_prompt=moderation_prompt_block,
|
||||
moderation_prompt_block=moderation_prompt_block,
|
||||
current_prompt_mode=global_config.personality.prompt_mode,
|
||||
chat_talking_prompt_short=chat_talking_prompt_half,
|
||||
)
|
||||
|
||||
smart_prompt = SmartPrompt(parameters=prompt_params)
|
||||
|
||||
# 重构为expressor专用格式
|
||||
expressor_params = {
|
||||
'expression_habits_block': expression_habits_block,
|
||||
'relation_info_block': relation_info,
|
||||
'chat_target': chat_target_1,
|
||||
'time_block': time_block,
|
||||
'chat_info': chat_talking_prompt_half,
|
||||
'identity': identity_block,
|
||||
'chat_target_2': chat_target_2,
|
||||
'reply_target_block': reply_target_block,
|
||||
'raw_reply': raw_reply,
|
||||
'reason': reason,
|
||||
'mood_state': mood_prompt,
|
||||
'reply_style': global_config.personality.reply_style,
|
||||
'keywords_reaction_prompt': keywords_reaction_prompt,
|
||||
'moderation_prompt': moderation_prompt_block,
|
||||
}
|
||||
|
||||
return await global_prompt_manager.format_prompt("default_expressor_prompt", **expressor_params)
|
||||
|
||||
async def _build_single_sending_message(
|
||||
self,
|
||||
|
||||
Reference in New Issue
Block a user