优化主动思考提示词
This commit is contained in:
2
TODO.md
2
TODO.md
@@ -23,7 +23,7 @@
|
|||||||
- [ ] 增加基于Open Voice的语音合成功能(插件形式)
|
- [ ] 增加基于Open Voice的语音合成功能(插件形式)
|
||||||
- [x] 对聊天信息的视频增加一个videoid(就像imageid一样)
|
- [x] 对聊天信息的视频增加一个videoid(就像imageid一样)
|
||||||
- [ ] 修复generate_responce_for_image方法有的时候会对同一张图片生成两次描述的问题
|
- [ ] 修复generate_responce_for_image方法有的时候会对同一张图片生成两次描述的问题
|
||||||
- [ ] 主动思考的通用提示词改进
|
- [x] 主动思考的通用提示词改进
|
||||||
- [x] 添加贴表情聊天流判断,过滤好友
|
- [x] 添加贴表情聊天流判断,过滤好友
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -279,19 +279,33 @@ class ProactiveThinkerExecutor:
|
|||||||
"""
|
"""
|
||||||
# 构建通用尾部
|
# 构建通用尾部
|
||||||
prompt += """
|
prompt += """
|
||||||
|
# 决策目标
|
||||||
|
你的最终目标是根据你的角色和当前情境,做出一个最符合人类社交直觉的决策,以求:
|
||||||
|
- **(私聊)深化关系**: 通过展现你的关心、记忆和个性来拉近与对方的距离。
|
||||||
|
- **(群聊)活跃气氛**: 提出能引起大家兴趣的话题,促进群聊的互动。
|
||||||
|
- **提供价值**: 你的出现应该是有意义的,无论是情感上的温暖,还是信息上的帮助。
|
||||||
|
- **保持自然**: 避免任何看起来像机器人或骚扰的行为。
|
||||||
|
|
||||||
# 决策指令
|
# 决策指令
|
||||||
请综合以上所有信息,以稳定、真实、拟人的方式做出决策。你的决策需要以JSON格式输出,包含以下字段:
|
请综合以上所有信息,以稳定、真实、拟人的方式做出决策。你的决策需要以JSON格式输出,包含以下字段:
|
||||||
- `should_reply`: bool, 是否应该发起对话。
|
- `should_reply`: bool, 是否应该发起对话。
|
||||||
- `topic`: str, 如果 `should_reply` 为 true,你打算聊什么话题?
|
- `topic`: str, 如果 `should_reply` 为 true,你打算聊什么话题?
|
||||||
- `reason`: str, 做出此决策的简要理由。
|
- `reason`: str, 做出此决策的简要理由,需体现你对上述目标的考量。
|
||||||
|
|
||||||
# 决策原则
|
# 决策流程与核心原则
|
||||||
- **谨慎对待未回复的对话**: 在发起新话题前,请检查【最近的聊天摘要】。如果最后一条消息是你自己发送的,请仔细评估等待的时间和上下文,判断再次主动发起对话是否礼貌和自然。如果等待时间很短(例如几分钟或半小时内),通常应该选择“不回复”。
|
1. **检查对话状态**:
|
||||||
- **优先利用上下文**: 优先从【情境分析】中已有的信息(如最近的聊天摘要、你的日程、你对Ta的关系印象)寻找自然的话题切入点。
|
- **最后发言者**: 查看【最近的聊天摘要】。如果最后一条消息是你发的,且对方尚未回复,**通常应选择不回复**。这是最重要的原则,以避免打扰。
|
||||||
- **简单问候作为备选**: 如果上下文中没有合适的话题,可以生成一个简单、真诚的日常问候(例如“在忙吗?”,“下午好呀~”)。
|
- **例外**: 只有在等待时间足够长(例如超过数小时),或者你有非常重要且有时效性的新话题(例如,“你昨晚说的那个电影我刚看了!”)时,才考虑再次发言。
|
||||||
- **避免抽象**: 避免创造过于复杂、抽象或需要对方思考很久才能明白的话题。目标是轻松、自然地开启对话。
|
- **无人发言**: 如果最近的聊天记录里只有你一个人在说话,**绝对不要回复**,以防刷屏。
|
||||||
- **避免过于频繁**: 如果你最近(尤其是在最近的几次决策中)已经主动发起过对话,请倾向于选择“不回复”,除非有非常重要和紧急的事情。
|
|
||||||
- **如果上下文中只有你的消息而没有别人的消息**:选择不回复,以防刷屏或者打扰到别人
|
2. **寻找话题切入点 (如果可以回复)**:
|
||||||
|
- **强关联优先**: 优先从【情境分析】中寻找最自然、最相关的话题。顺序建议:`最近的聊天摘要` > `你和Ta的关系` > `你的日程`。一个好的话题往往是对最近对话的延续。
|
||||||
|
- **展现个性**: 结合你的【人设】和【情绪】,思考你会如何看待这些情境信息,并从中找到话题。例如,如果你是一个活泼的人,看到对方日程很满,可以说:“看你今天日程满满,真是活力四射的一天呀!”
|
||||||
|
- **备选方案**: 如果实在没有强关联的话题,可以发起一个简单的日常问候,如“在吗?”或“下午好”。
|
||||||
|
|
||||||
|
3. **最终决策**:
|
||||||
|
- **权衡频率**: 查看【你最近的相关决策历史】。如果你在短时间内已经主动发起过多次对话,即使现在有话题,也应倾向于**不回复**,保持一定的社交距离。
|
||||||
|
- **质量胜于数量**: 宁可错过一次普通的互动机会,也不要进行一次尴尬或生硬的对话。
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -425,9 +439,11 @@ class ProactiveThinkerExecutor:
|
|||||||
|
|
||||||
# 对话指引
|
# 对话指引
|
||||||
- 你决定和Ta聊聊关于“{topic}”的话题。
|
- 你决定和Ta聊聊关于“{topic}”的话题。
|
||||||
- **重要**: 在开始你的话题前,必须先用一句通用的、礼貌的开场白进行问候(例如:“在吗?”、“上午好!”、“晚上好呀~”),然后再自然地衔接你的话题,确保整个回复在一条消息内流畅、自然、像人类的说话方式。
|
- **对话风格**:
|
||||||
|
- **自然开场**: 你可以根据话题和情境,选择最自然的开场方式。可以直接切入话题(如果话题关联性很强),也可以先用一句简单的问候(如“在吗?”、“下午好”)作为过渡。**不要总是使用同一种开场白**。
|
||||||
|
- **融合情境**: 将【情境分析】中的信息(如你的心情、日程、对Ta的印象)巧妙地融入到对话中,让你的话语听起来更真实、更有依据。
|
||||||
|
- **符合人设**: 你的语气、用词、甚至表情符号的使用,都应该完全符合你的【角色】设定和当前【情绪】({context["mood_state"]})以及你对Ta的好感度。
|
||||||
- 请结合以上所有情境信息,自然地开启对话。
|
- 请结合以上所有情境信息,自然地开启对话。
|
||||||
- 你的语气应该符合你的人设({context["mood_state"]})以及你对Ta的好感度。
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def _build_group_plan_prompt(self, context: dict[str, Any], topic: str, reason: str) -> str:
|
def _build_group_plan_prompt(self, context: dict[str, Any], topic: str, reason: str) -> str:
|
||||||
@@ -463,8 +479,10 @@ class ProactiveThinkerExecutor:
|
|||||||
|
|
||||||
# 对话指引
|
# 对话指引
|
||||||
- 你决定和大家聊聊关于“{topic}”的话题。
|
- 你决定和大家聊聊关于“{topic}”的话题。
|
||||||
- **重要**: 在开始你的话题前,必须先用一句通用的、礼貌的开场白进行问候(例如:“哈喽,大家好呀~”、“下午好!”),然后再自然地衔接你的话题,确保整个回复在一条消息内流畅、自然、像人类的说话方式。
|
- **对话风格**:
|
||||||
- 你的语气应该更活泼、更具包容性,以吸引更多群成员参与讨论。你的语气应该符合你的人设)。
|
- **自然开场**: 你可以根据话题和情境,选择最自然的开场方式。可以直接切入话题(如果话题关联性很强),也可以先用一句简单的问候(如“哈喽,大家好呀~”、“下午好!”)作为过渡。**不要总是使用同一种开场白**。
|
||||||
|
- **融合情境**: 将【情境分析】中的信息(如你的心情、日程)巧妙地融入到对话中,让你的话语听起来更真实、更有依据。
|
||||||
|
- **符合人设**: 你的语气、用词、甚至表情符号的使用,都应该完全符合你的【角色】设定和当前【情绪】({context["mood_state"]})。语气应该更活泼、更具包容性,以吸引更多群成员参与讨论。
|
||||||
- 请结合以上所有情境信息,自然地开启对话。
|
- 请结合以上所有情境信息,自然地开启对话。
|
||||||
- 可以分享你的看法、提出相关问题,或者开个合适的玩笑。
|
- 可以分享你的看法、提出相关问题,或者开个合适的玩笑。
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user