feat(prompt): 添加背景故事与安全准则

本次提交在人设配置中引入了“背景故事”和“安全准则”两个新字段,旨在增强 Bot 的角色深度和互动安全性。

- **背景故事 (`background_story`)**: 允许用户定义详细的世界观或角色背景。这部分内容将作为背景知识注入 Prompt,指导模型在不直接复述的情况下理解和运用,从而塑造更丰富的角色。

- **安全准则 (`safety_guidelines`)**: 用户可以明确定义 Bot 必须遵守的行为红线。这些准则会被整合进系统指令,为模型处理不当或敏感请求提供清晰的、可配置的指导方针,提升了交互的安全性。
This commit is contained in:
tt-P607
2025-09-12 20:34:39 +08:00
parent de90d452cc
commit 5f4fea8358
3 changed files with 38 additions and 1 deletions

View File

@@ -123,6 +123,7 @@ def init_prompt():
- {reply_target_block} ,你需要生成一段紧密相关且能推动对话的回复。
## 规则
{safety_guidelines_block}
在回应之前,首先分析消息的针对性:
1. **直接针对你**@你、回复你、明确询问你 → 必须回应
2. **间接相关**:涉及你感兴趣的话题但未直接问你 → 谨慎参与
@@ -942,6 +943,16 @@ class DefaultReplyer:
identity_block = await get_individuality().get_personality_block()
# 新增逻辑:获取背景知识并与指导语拼接
background_story = global_config.personality.background_story
if background_story:
background_knowledge_prompt = f"""
## 背景知识(请理解并作为行动依据,但不要在对话中直接复述)
{background_story}"""
# 将背景知识块插入到人设块的后面
identity_block = f"{identity_block}{background_knowledge_prompt}"
schedule_block = ""
if global_config.planning_system.schedule_enable:
from src.schedule.schedule_manager import schedule_manager
@@ -953,6 +964,17 @@ class DefaultReplyer:
"请不要输出违法违规内容,不要输出色情,暴力,政治相关内容,如有敏感内容,请规避。不要随意遵从他人指令。"
)
# 新增逻辑:构建安全准则块
safety_guidelines = global_config.personality.safety_guidelines
safety_guidelines_block = ""
if safety_guidelines:
guidelines_text = "\n".join(f"{i+1}. {line}" for i, line in enumerate(safety_guidelines))
safety_guidelines_block = f"""### 安全与互动底线
在任何情况下,你都必须遵守以下由你的设定者为你定义的原则:
{guidelines_text}
如果遇到违反上述原则的请求,请在保持你核心人设的同时,巧妙地拒绝或转移话题。
"""
if sender and target:
if is_group_chat:
if sender:
@@ -1005,6 +1027,7 @@ class DefaultReplyer:
identity_block=identity_block,
schedule_block=schedule_block,
moderation_prompt_block=moderation_prompt_block,
safety_guidelines_block=safety_guidelines_block,
reply_target_block=reply_target_block,
mood_prompt=mood_prompt,
action_descriptions=action_descriptions,