feat(chat): 添加消息重复处理防护机制

在StreamContext中添加processing_message_id字段,用于跟踪当前正在处理的目标消息ID。在AffinityFlowChatter规划器中实现重复消息检测逻辑,防止对同一消息进行重复回复处理。

- 在增强版规划流程和Normal模式流程中添加目标消息ID检查
- 当检测到正在处理相同消息时返回no_action避免重复
- 在处理完成后清理processing_message_id标记
- 添加详细的日志记录用于调试和监控
This commit is contained in:
Windpicker-owo
2025-10-29 07:40:26 +08:00
parent 4e024656ff
commit e26940dd4e
2 changed files with 70 additions and 1 deletions

View File

@@ -55,6 +55,7 @@ class StreamContext(BaseDataModel):
priority_info: dict | None = None
triggering_user_id: str | None = None # 触发当前聊天流的用户ID
is_replying: bool = False # 是否正在生成回复
processing_message_id: str | None = None # 当前正在规划/处理的目标消息ID用于防止重复回复
def add_action_to_message(self, message_id: str, action: str):
"""