mirror of https://github.com/Mai-with-u/MaiBot.git
prompt格式化
parent
428a8c9f77
commit
d528f7c7a8
|
|
@ -63,7 +63,7 @@ def init_prompt():
|
|||
5. 如果你刚发言,并且没有人回复你,请谨慎考虑要不要继续发消息
|
||||
6. 不要把注意力放在别人发的表情包上,它们只是一种辅助表达方式
|
||||
7. 注意分辨群里谁在跟谁说话,你不一定是当前聊天的主角,消息中的“你”不一定指的是你({bot_name}),也可能是别人
|
||||
8. 思考要不要回复或发言,如果要,必须思考一下具体说什么,怎么说
|
||||
8. 思考要不要回复或发言,如果要,必须思考一下**具体说什么**,怎么说
|
||||
9. 默认使用中文
|
||||
</output_requirements_for_inner_thought>
|
||||
|
||||
|
|
@ -476,13 +476,11 @@ class SubMind:
|
|||
|
||||
# 思考指导选项和权重
|
||||
hf_options = [
|
||||
(
|
||||
"可以参考之前的想法,在原来想法的基础上继续思考,但是也要注意话题的推进,不要在一个话题上停留太久,除非你觉得真的有必要",
|
||||
0.3,
|
||||
),
|
||||
("可以参考之前的想法,在原来的想法上尝试新的话题", 0.3),
|
||||
("不要太深入,注意话题的推进,不要在一个话题上停留太久,除非你觉得真的有必要", 0.2),
|
||||
("进行深入思考,但是注意话题的推进,不要在一个话题上停留太久,除非你觉得真的有必要", 0.2),
|
||||
("可以参考之前的想法,在原来想法的基础上继续思考,但是也要注意话题的推进,**不要在一个话题上停留太久或揪着一个话题不放,除非你觉得真的有必要**",0.3,),
|
||||
("可以参考之前的想法,在原来的想法上**尝试新的话题**", 0.3),
|
||||
("不要太深入,注意话题的推进,**不要在一个话题上停留太久或揪着一个话题不放,除非你觉得真的有必要**", 0.2),
|
||||
("进行深入思考,但是注意话题的推进,**不要在一个话题上停留太久或揪着一个话题不放,除非你觉得真的有必要**", 0.2),
|
||||
("可以参考之前的想法继续思考,并结合你自身的人设,知识,信息,回忆等等", 0.08),
|
||||
]
|
||||
|
||||
last_cycle = history_cycle[-1] if history_cycle else None
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ def init_prompt():
|
|||
{current_mind_info}
|
||||
因为上述想法,你决定发言。
|
||||
|
||||
现在请你读读之前的聊天记录,把你的想法组织成合适语言,然后发一条消息,可以自然随意一些,简短一些,就像群聊里的真人一样,注意把握聊天内容,整体风格可以平和、简短,范围避免超出你的内心想法
|
||||
现在请你读读之前的聊天记录,把你的想法组织成合适的语言,然后发一条消息,可以自然随意一些,简短一些,就像群聊里的真人一样,注意把握聊天内容,整体风格可以平和、简短,避免超出你内心想法的范围
|
||||
这条消息可以尽量简短一些。{reply_style2}。请一次只回复一个话题,不要同时回复多个人。{prompt_ger}
|
||||
{reply_style1},说中文,不要刻意突出自身学科背景,注意只输出消息内容,不要去主动讨论或评价别人发的表情包,它们只是一种辅助表达方式。
|
||||
{moderation_prompt}。注意:回复不要输出多余内容(包括前后缀,冒号和引号,括号,表情包,at或 @等 )。""",
|
||||
|
|
@ -46,60 +46,97 @@ def init_prompt():
|
|||
"""
|
||||
你有以下信息可供参考:
|
||||
{structured_info}
|
||||
以上的消息是你获取到的消息,或许可以帮助你更好地回复。
|
||||
以上的信息是你获取到的消息,或许可以帮助你更好地回复。
|
||||
""",
|
||||
"info_from_tools",
|
||||
)
|
||||
|
||||
# Planner提示词 - 修改为要求 JSON 输出
|
||||
Prompt(
|
||||
"""现在{bot_name}开始在一个qq群聊中专注聊天。你需要操控{bot_name},并且根据以下消息决定是否,如何参与对话:
|
||||
{nickname_info}
|
||||
{chat_content_block}
|
||||
{current_mind_block}
|
||||
{cycle_info_block}
|
||||
"""
|
||||
<planner_task_definition>
|
||||
现在{bot_name}开始在一个qq群聊中专注聊天。你需要操控{bot_name},并且根据以下信息决定是否,如何参与对话。
|
||||
</planner_task_definition>
|
||||
|
||||
请综合分析聊天内容和你看到的新消息,参考{bot_name}的内心想法,并根据以下原则和可用动作灵活谨慎的做出决策,需要符合正常的群聊社交节奏。
|
||||
<contextual_information>
|
||||
<identity>
|
||||
<bot_name>{bot_name}</bot_name>
|
||||
<group_nicknames>{nickname_info}</group_nicknames>
|
||||
</identity>
|
||||
|
||||
<live_chat_context>
|
||||
<chat_log>{chat_content_block}</chat_log>
|
||||
</live_chat_context>
|
||||
<internal_state>
|
||||
<current_thoughts>{current_mind_block}</current_thoughts>
|
||||
<recent_action_history>{cycle_info_block}</recent_action_history>
|
||||
</internal_state>
|
||||
</contextual_information>
|
||||
|
||||
【决策指导】
|
||||
1. 以下情况可以不发送新消息(no_reply):
|
||||
- {bot_name}的内心想法表达不想发言
|
||||
- 话题似乎对{bot_name}来说无关/无聊/不感兴趣
|
||||
- 现在说话不太合适了
|
||||
- 最后一条消息是{bot_name}自己发的且无人回应{bot_name}
|
||||
- 讨论不了解的专业话题,或你不知道的梗,且对{bot_name}来说似乎没那么重要。
|
||||
- {bot_name}发送了太多消息,且无人回复
|
||||
<decision_framework>
|
||||
<guidance>
|
||||
请综合分析聊天内容和你看到的新消息,参考{bot_name}的内心想法,并根据以下原则和可用动作灵活谨慎的做出决策,需要符合正常的群聊社交节奏。
|
||||
</guidance>
|
||||
|
||||
2. 以下情况可以发送文字消息(text_reply):
|
||||
- 确认内心想法显示{bot_name}想要发言,且有实质内容想表达
|
||||
- 同时确认现在适合发言
|
||||
- 可以追加emoji_query表达情绪(emoji_query填写表情包的适用场合,也就是当前场合)
|
||||
- 不要追加太多表情
|
||||
<decision_principles>
|
||||
<principle_no_reply>
|
||||
1. 以下情况可以不发送新消息(no_reply):
|
||||
- {bot_name}的内心想法表达不想发言
|
||||
- 话题似乎对{bot_name}来说无关/无聊/不感兴趣
|
||||
- 现在说话不太合适了
|
||||
- 最后一条消息是{bot_name}自己发的且无人回应{bot_name}
|
||||
- 讨论不了解的专业话题,或你不知道的梗,且对{bot_name}来说似乎没那么重要
|
||||
- {bot_name}发送了太多消息,且无人回复
|
||||
- (特殊情况){bot_name}的内心想法返回错误/无返回
|
||||
</principle_no_reply>
|
||||
|
||||
3. 发送纯表情(emoji_reply)适用:
|
||||
- {bot_name}似乎想加入话题或继续讨论,但是似乎又没什么实质表达内容
|
||||
- 适合用表情回应的场景
|
||||
- 需提供明确的emoji_query
|
||||
- 群聊里的大家都在发表情包
|
||||
<principle_text_reply>
|
||||
2. 以下情况可以发送文字消息(text_reply):
|
||||
- 确认内心想法显示{bot_name}想要发言,且有实质内容想表达
|
||||
- 同时确认现在适合发言
|
||||
- 可以追加emoji_query表达情绪(emoji_query填写表情包的适用场合,也就是当前场合)
|
||||
- 不要追加太多表情
|
||||
</principle_text_reply>
|
||||
|
||||
4. 对话处理:
|
||||
- 如果最后一条消息是{bot_name}发的,而你还想操控{bot_name}继续发消息,请确保这是合适的
|
||||
- 注意话题的推进,如果没有必要,不要揪着一个话题不放。
|
||||
- 不要让{bot_name}自己和自己聊天
|
||||
<principle_emoji_reply>
|
||||
3. 发送纯表情(emoji_reply)适用:
|
||||
- {bot_name}似乎想加入话题或继续讨论,但是似乎又没什么实质表达内容
|
||||
- 适合用表情回应的场景
|
||||
- 需提供明确的emoji_query
|
||||
- 群聊里除了{bot_name}以外的大家都在发表情包
|
||||
</principle_emoji_reply>
|
||||
|
||||
决策任务
|
||||
{action_options_text}
|
||||
<principle_dialogue_management>
|
||||
4. 对话处理:
|
||||
- 如果最后一条消息是{bot_name}发的,而你还想操控{bot_name}继续发消息,请确保这是合适的
|
||||
- 注意话题的推进,如果没有必要,不要揪着一个话题不放。
|
||||
- 不要让{bot_name}自己和自己聊天
|
||||
</principle_dialogue_management>
|
||||
</decision_principles>
|
||||
|
||||
你必须从上面列出的可用行动中选择一个,并说明原因。
|
||||
你的决策必须以严格的 JSON 格式输出,且仅包含 JSON 内容,不要有任何其他文字或解释。
|
||||
JSON 结构如下,包含三个字段 "action", "reasoning", "emoji_query":
|
||||
{{
|
||||
"action": "string", // 必须是上面提供的可用行动之一 (例如: '{example_action}')
|
||||
"reasoning": "string", // 做出此决定的详细理由和思考过程,说明你如何应用了回复原则
|
||||
"emoji_query": "string" // 可选。如果行动是 'emoji_reply',必须提供表情主题(填写表情包的适用场合);如果行动是 'text_reply' 且你想附带表情,也在此提供表情主题,否则留空字符串 ""。遵循回复原则,不要滥用。
|
||||
}}
|
||||
请输出你的决策 JSON:
|
||||
<available_actions>
|
||||
决策任务
|
||||
{action_options_text}
|
||||
</available_actions>
|
||||
</decision_framework>
|
||||
|
||||
<output_requirements>
|
||||
<format_instruction>
|
||||
你必须从available_actions列出的可用行动中选择一个,并说明原因。
|
||||
你的决策必须以严格的 JSON 格式输出,且仅包含 JSON 内容,不要有任何其他文字或解释。
|
||||
JSON 结构如下,包含三个字段 "action", "reasoning", "emoji_query":
|
||||
</format_instruction>
|
||||
<json_structure>
|
||||
{{
|
||||
"action": "string", // 必须是上面提供的可用行动之一 (例如: '{example_action}')
|
||||
"reasoning": "string", // 做出此决定的详细理由和思考过程,说明你如何应用了decision_principles。
|
||||
"emoji_query": "string" // 可选。如果行动是 'emoji_reply',必须提供表情主题(填写表情包的适用场合);如果行动是 'text_reply' 且你想附带表情,也在此提供表情主题,否则留空字符串 ""。遵循回复原则,不要滥用。
|
||||
}}
|
||||
</json_structure>
|
||||
<final_request>
|
||||
请输出你的决策 JSON:
|
||||
</final_request>
|
||||
</output_requirements>
|
||||
""",
|
||||
"planner_prompt",
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in New Issue