feat(notice): 实现全局notice消息管理系统
添加全局notice管理器,将notice消息与普通消息分离处理。主要功能包括: - 创建 GlobalNoticeManager 单例类,支持公共和特定聊天流作用域 - 在 message_manager 中集成notice检测和处理逻辑 - 扩展数据库模型和消息类,添加notice相关字段 - 在提示词生成器中添加notice信息块展示 - 配置系统支持notice相关参数设置 - 适配器插件增强notice类型识别和配置 notice消息特点: - 默认不触发聊天流程,只记录到全局管理器 - 可在提示词中展示最近的系统通知 - 支持按类型设置不同的生存时间 - 支持公共notice(所有聊天可见)和流特定notice BREAKING CHANGE: 数据库消息表结构变更,需要添加 is_public_notice 和 notice_type 字段
This commit is contained in:
@@ -121,7 +121,9 @@ class MessageRecv(Message):
|
||||
self.is_voice = False
|
||||
self.is_video = False
|
||||
self.is_mentioned = None
|
||||
self.is_notify = False
|
||||
self.is_notify = False # 是否为notice消息
|
||||
self.is_public_notice = False # 是否为公共notice
|
||||
self.notice_type = None # notice类型
|
||||
self.is_at = False
|
||||
self.is_command = False
|
||||
|
||||
@@ -131,6 +133,12 @@ class MessageRecv(Message):
|
||||
|
||||
self.key_words = []
|
||||
self.key_words_lite = []
|
||||
|
||||
# 解析additional_config中的notice信息
|
||||
if self.message_info.additional_config and isinstance(self.message_info.additional_config, dict):
|
||||
self.is_notify = self.message_info.additional_config.get("is_notice", False)
|
||||
self.is_public_notice = self.message_info.additional_config.get("is_public_notice", False)
|
||||
self.notice_type = self.message_info.additional_config.get("notice_type")
|
||||
|
||||
def update_chat_stream(self, chat_stream: "ChatStream"):
|
||||
self.chat_stream = chat_stream
|
||||
|
||||
Reference in New Issue
Block a user