fix(replyer): 优化回复器提示词以修复戳一戳处理逻辑
- **问题现象:** 回复模型(Replyer)在接收到“戳一戳”事件时,会错误地生成如“[戳了戳]”之类的文本回复,而不是交由动作执行器(Planner)处理`poke_user`动作。 - **根本原因:** 1. 回复提示词模板中没有明确禁止输出此类文本,导致模型将其视为普通消息进行模仿。 2. 模板中关于“可用动作”的描述不够明确,可能让回复模型误以为自己需要处理或决定这些动作。 - **解决方案:** 1. **增强指令:** 在所有核心回复模板 (`default_expressor_prompt`, `s4u_style_prompt`, `normal_style_prompt`) 中,明确增加了“‘戳一戳’不是文本消息,而是由`poke_user`动作处理的特殊互动,因此绝对禁止在回复中输出相关文字”的规则。 2. **明确职责:** 修改了 `build_prompt_reply_context` 方法中生成`action_descriptions`的逻辑,向回复模型强调其职责仅是生成回复文本,而动作的决策与执行由独立的模型负责,严禁其在回复中模仿或调用动作。 - **影响:** - 修复了“戳一戳”互动被错误处理为文本回复的BUG。 - 增强了提示词的鲁棒性,明确了回复模型与决策模型之间的职责边界,降低了未来类似问题的发生概率。
This commit is contained in:
@@ -72,7 +72,7 @@ def init_prompt():
|
||||
不要浮夸,不要夸张修辞,平淡且不要输出多余内容(包括前后缀,冒号和引号,括号,表情包,at或 @等 ),只输出一条回复就好。
|
||||
|
||||
**【重要】不要在回复中输出任何格式化标记**:
|
||||
- 不要输出类似 [表情包:xxx]、[图片:xxx]、[回复<xxx>:xxx] 这样的格式
|
||||
- 不要输出类似 [表情包:xxx]、[图片:xxx]、[回复<xxx>:xxx] 这样的格式。**特别注意**:“戳一戳”不是文本消息,而是由`poke_user`动作处理的特殊互动,因此绝对禁止在回复中输出“[戳了戳]”或“[poke]”这样的文字。
|
||||
- 如果想表达笑的情绪,直接说"哈哈"、"笑死"等,不要说"[表情包:笑哭]"
|
||||
- 如果想提到某人,直接说"你"、或者他的名字,不要说"[回复<某人>]"
|
||||
- 说什么就直接输出什么,不要加任何格式化标记
|
||||
@@ -145,7 +145,7 @@ def init_prompt():
|
||||
请注意不要输出多余内容(包括前后缀,冒号和引号,at或 @等 )。只输出回复内容。
|
||||
|
||||
**【重要】不要在回复中输出任何格式化标记**:
|
||||
- 不要输出类似 [表情包:xxx]、[图片:xxx]、[回复<xxx>:xxx] 这样的格式
|
||||
- 不要输出类似 [表情包:xxx]、[图片:xxx]、[回复<xxx>:xxx] 这样的格式。**特别注意**:“戳一戳”不是文本消息,而是由`poke_user`动作处理的特殊互动,因此绝对禁止在回复中输出“[戳了戳]”或“[poke]”这样的文字。
|
||||
- 如果想表达笑的情绪,直接说"哈哈"、"笑死"等,不要说"[表情包:笑哭]"
|
||||
- 如果想提到某人,直接说"你"、"他",不要说"[回复<某人>]"
|
||||
- 说什么就直接输出什么,不要加任何标记或括号
|
||||
@@ -218,7 +218,7 @@ If you need to use the search tool, please directly call the function "lpmm_sear
|
||||
请注意不要输出多余内容(包括前后缀,冒号和引号,at或 @等 )。只输出回复内容。
|
||||
|
||||
**【重要】不要在回复中输出任何格式化标记**:
|
||||
- 不要输出类似 [表情包:xxx]、[图片:xxx]、[回复<xxx>:xxx] 这样的格式
|
||||
- 不要输出类似 [表情包:xxx]、[图片:xxx]、[回复<xxx>:xxx] 这样的格式。**特别注意**:“戳一戳”不是文本消息,而是由`poke_user`动作处理的特殊互动,因此绝对禁止在回复中输出“[戳了戳]”或“[poke]”这样的文字。
|
||||
- 如果想表达笑的情绪,直接说"哈哈"、"笑死"等,不要说"[表情包:笑哭]"
|
||||
- 如果想提到某人,直接说"你"、"他",不要说"[回复<某人>]"
|
||||
- 说什么就直接输出什么,不要加任何标记或括号
|
||||
@@ -1273,7 +1273,7 @@ class DefaultReplyer:
|
||||
# 构建action描述 (如果启用planner)
|
||||
action_descriptions = ""
|
||||
if available_actions:
|
||||
action_descriptions = "你有以下的动作能力,但执行这些动作不由你决定,由另外一个模型同步决定,因此你只需要知道有如下能力即可:\n"
|
||||
action_descriptions = "以下是系统中可用的动作列表。**【重要】**这些动作将由一个独立的决策模型决定是否执行,**并非你的职责**。你只需要了解这些能力的存在,以便更好地理解对话情景,**严禁**在你的回复中模仿、调用或提及这些动作本身。\n"
|
||||
for action_name, action_info in available_actions.items():
|
||||
action_description = action_info.description
|
||||
action_descriptions += f"- {action_name}: {action_description}\n"
|
||||
|
||||
Reference in New Issue
Block a user