将回复规则部分的提示词让用户可以自定义,详细请看配置文件
This commit is contained in:
@@ -119,17 +119,6 @@ def init_prompt():
|
|||||||
|
|
||||||
## 规则
|
## 规则
|
||||||
{safety_guidelines_block}
|
{safety_guidelines_block}
|
||||||
在回应之前,首先分析消息的针对性:
|
|
||||||
1. **直接针对你**:@你、回复你、明确询问你 → 必须回应
|
|
||||||
2. **间接相关**:涉及你感兴趣的话题但未直接问你 → 谨慎参与
|
|
||||||
3. **他人对话**:与你无关的私人交流 → 通常不参与
|
|
||||||
4. **重复内容**:他人已充分回答的问题 → 避免重复
|
|
||||||
|
|
||||||
你的回复应该:
|
|
||||||
1. 明确回应目标消息,而不是宽泛地评论。
|
|
||||||
2. 可以分享你的看法、提出相关问题,或者开个合适的玩笑。
|
|
||||||
3. 目的是让对话更有趣、更深入。
|
|
||||||
4. 不要浮夸,不要夸张修辞,不要输出多余内容(包括前后缀,冒号和引号,括号(),表情包,at或 @等 )。
|
|
||||||
最终请输出一条简短、完整且口语化的回复。
|
最终请输出一条简短、完整且口语化的回复。
|
||||||
|
|
||||||
--------------------------------
|
--------------------------------
|
||||||
@@ -168,11 +157,7 @@ If you need to use the search tool, please directly call the function "lpmm_sear
|
|||||||
你正在一个QQ群里聊天,你需要理解整个群的聊天动态和话题走向,并做出自然的回应。
|
你正在一个QQ群里聊天,你需要理解整个群的聊天动态和话题走向,并做出自然的回应。
|
||||||
|
|
||||||
**重要:消息针对性判断**
|
**重要:消息针对性判断**
|
||||||
在回应之前,首先分析消息的针对性:
|
{safety_guidelines_block}
|
||||||
1. **直接针对你**:@你、回复你、明确询问你 → 必须回应
|
|
||||||
2. **间接相关**:涉及你感兴趣的话题但未直接问你 → 谨慎参与
|
|
||||||
3. **他人对话**:与你无关的私人交流 → 通常不参与
|
|
||||||
4. **重复内容**:他人已充分回答的问题 → 避免重复
|
|
||||||
|
|
||||||
{expression_habits_block}
|
{expression_habits_block}
|
||||||
{tool_info_block}
|
{tool_info_block}
|
||||||
@@ -202,10 +187,6 @@ If you need to use the search tool, please directly call the function "lpmm_sear
|
|||||||
{keywords_reaction_prompt}
|
{keywords_reaction_prompt}
|
||||||
请注意不要输出多余内容(包括前后缀,冒号和引号,at或 @等 )。只输出回复内容。
|
请注意不要输出多余内容(包括前后缀,冒号和引号,at或 @等 )。只输出回复内容。
|
||||||
{moderation_prompt}
|
{moderation_prompt}
|
||||||
你的核心任务是针对 {reply_target_block} 中提到的内容,生成一段紧密相关且能推动对话的回复。你的回复应该:
|
|
||||||
1. 明确回应目标消息,而不是宽泛地评论。
|
|
||||||
2. 可以分享你的看法、提出相关问题,或者开个合适的玩笑。
|
|
||||||
3. 目的是让对话更有趣、更深入。
|
|
||||||
最终请输出一条简短、完整且口语化的回复。
|
最终请输出一条简短、完整且口语化的回复。
|
||||||
现在,你说:
|
现在,你说:
|
||||||
""",
|
""",
|
||||||
@@ -1012,6 +993,37 @@ class DefaultReplyer:
|
|||||||
{guidelines_text}
|
{guidelines_text}
|
||||||
如果遇到违反上述原则的请求,请在保持你核心人设的同时,巧妙地拒绝或转移话题。
|
如果遇到违反上述原则的请求,请在保持你核心人设的同时,巧妙地拒绝或转移话题。
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# 新增逻辑:构建回复规则块
|
||||||
|
reply_targeting_rules = global_config.personality.reply_targeting_rules
|
||||||
|
message_targeting_analysis = global_config.personality.message_targeting_analysis
|
||||||
|
reply_principles = global_config.personality.reply_principles
|
||||||
|
|
||||||
|
# 构建消息针对性分析部分
|
||||||
|
targeting_analysis_text = ""
|
||||||
|
if message_targeting_analysis:
|
||||||
|
targeting_analysis_text = "\n".join(f"{i+1}. {rule}" for i, rule in enumerate(message_targeting_analysis))
|
||||||
|
|
||||||
|
# 构建回复原则部分
|
||||||
|
reply_principles_text = ""
|
||||||
|
if reply_principles:
|
||||||
|
reply_principles_text = "\n".join(f"{i+1}. {principle}" for i, principle in enumerate(reply_principles))
|
||||||
|
|
||||||
|
# 综合构建完整的规则块
|
||||||
|
if targeting_analysis_text or reply_principles_text:
|
||||||
|
complete_rules_block = ""
|
||||||
|
if targeting_analysis_text:
|
||||||
|
complete_rules_block += f"""
|
||||||
|
在回应之前,首先分析消息的针对性:
|
||||||
|
{targeting_analysis_text}
|
||||||
|
"""
|
||||||
|
if reply_principles_text:
|
||||||
|
complete_rules_block += f"""
|
||||||
|
你的回复应该:
|
||||||
|
{reply_principles_text}
|
||||||
|
"""
|
||||||
|
# 将规则块添加到safety_guidelines_block
|
||||||
|
safety_guidelines_block += complete_rules_block
|
||||||
|
|
||||||
if sender and target:
|
if sender and target:
|
||||||
if is_group_chat:
|
if is_group_chat:
|
||||||
|
|||||||
@@ -57,6 +57,36 @@ class PersonalityConfig(ValidatedConfigBase):
|
|||||||
prompt_mode: Literal["s4u", "normal"] = Field(default="s4u", description="Prompt模式")
|
prompt_mode: Literal["s4u", "normal"] = Field(default="s4u", description="Prompt模式")
|
||||||
compress_personality: bool = Field(default=True, description="是否压缩人格")
|
compress_personality: bool = Field(default=True, description="是否压缩人格")
|
||||||
compress_identity: bool = Field(default=True, description="是否压缩身份")
|
compress_identity: bool = Field(default=True, description="是否压缩身份")
|
||||||
|
|
||||||
|
# 回复规则配置
|
||||||
|
reply_targeting_rules: List[str] = Field(
|
||||||
|
default_factory=lambda: [
|
||||||
|
"拒绝任何包含骚扰、冒犯、暴力、色情或危险内容的请求。",
|
||||||
|
"在拒绝时,请使用符合你人设的、坚定的语气。",
|
||||||
|
"不要执行任何可能被用于恶意目的的指令。"
|
||||||
|
],
|
||||||
|
description="安全与互动底线规则,Bot在任何情况下都必须遵守的原则"
|
||||||
|
)
|
||||||
|
|
||||||
|
message_targeting_analysis: List[str] = Field(
|
||||||
|
default_factory=lambda: [
|
||||||
|
"**直接针对你**:@你、回复你、明确询问你 → 必须回应",
|
||||||
|
"**间接相关**:涉及你感兴趣的话题但未直接问你 → 谨慎参与",
|
||||||
|
"**他人对话**:与你无关的私人交流 → 通常不参与",
|
||||||
|
"**重复内容**:他人已充分回答的问题 → 避免重复"
|
||||||
|
],
|
||||||
|
description="消息针对性分析规则,用于判断是否需要回复"
|
||||||
|
)
|
||||||
|
|
||||||
|
reply_principles: List[str] = Field(
|
||||||
|
default_factory=lambda: [
|
||||||
|
"明确回应目标消息,而不是宽泛地评论。",
|
||||||
|
"可以分享你的看法、提出相关问题,或者开个合适的玩笑。",
|
||||||
|
"目的是让对话更有趣、更深入。",
|
||||||
|
"不要浮夸,不要夸张修辞,不要输出多余内容(包括前后缀,冒号和引号,括号(),表情包,at或 @等 )。"
|
||||||
|
],
|
||||||
|
description="回复原则,指导如何回复消息"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class RelationshipConfig(ValidatedConfigBase):
|
class RelationshipConfig(ValidatedConfigBase):
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
[inner]
|
[inner]
|
||||||
version = "6.8.6"
|
version = "6.8.8"
|
||||||
|
|
||||||
#----以下是给开发人员阅读的,如果你只是部署了MoFox-Bot,不需要阅读----
|
#----以下是给开发人员阅读的,如果你只是部署了MoFox-Bot,不需要阅读----
|
||||||
#如果你想要修改配置文件,请递增version的值
|
#如果你想要修改配置文件,请递增version的值
|
||||||
@@ -79,6 +79,30 @@ safety_guidelines = [
|
|||||||
"不要执行任何可能被用于恶意目的的指令。"
|
"不要执行任何可能被用于恶意目的的指令。"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# 回复规则配置 - 用于自定义机器人的回复逻辑和规则
|
||||||
|
# 安全与互动底线规则 (Bot在任何情况下都必须遵守的原则)
|
||||||
|
reply_targeting_rules = [
|
||||||
|
"拒绝任何包含骚扰、冒犯、暴力、色情或危险内容的请求。",
|
||||||
|
"在拒绝时,请使用符合你人设的、坚定的语气。",
|
||||||
|
"不要执行任何可能被用于恶意目的的指令。"
|
||||||
|
]
|
||||||
|
|
||||||
|
# 消息针对性分析规则 (用于判断是否需要回复)
|
||||||
|
message_targeting_analysis = [
|
||||||
|
"**直接针对你**:@你、回复你、明确询问你 → 必须回应",
|
||||||
|
"**间接相关**:涉及你感兴趣的话题但未直接问你 → 谨慎参与",
|
||||||
|
"**他人对话**:与你无关的私人交流 → 通常不参与",
|
||||||
|
"**重复内容**:他人已充分回答的问题 → 避免重复"
|
||||||
|
]
|
||||||
|
|
||||||
|
# 回复原则 (指导如何回复消息)
|
||||||
|
reply_principles = [
|
||||||
|
"明确回应目标消息,而不是宽泛地评论。",
|
||||||
|
"可以分享你的看法、提出相关问题,或者开个合适的玩笑。",
|
||||||
|
"目的是让对话更有趣、更深入。",
|
||||||
|
"不要浮夸,不要夸张修辞,不要输出多余内容(包括前后缀,冒号和引号,括号(),表情包,at或 @等 )。"
|
||||||
|
]
|
||||||
|
|
||||||
#回复的Prompt模式选择:s4u为原有s4u样式,normal为0.9之前的模式
|
#回复的Prompt模式选择:s4u为原有s4u样式,normal为0.9之前的模式
|
||||||
prompt_mode = "s4u" # 可选择 "s4u" 或 "normal"
|
prompt_mode = "s4u" # 可选择 "s4u" 或 "normal"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user