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:
@@ -33,6 +33,7 @@ from src.config.official_configs import (
|
||||
MessageReceiveConfig,
|
||||
MoodConfig,
|
||||
NormalChatConfig,
|
||||
NoticeConfig,
|
||||
PermissionConfig,
|
||||
PersonalityConfig,
|
||||
PlanningSystemConfig,
|
||||
@@ -393,6 +394,7 @@ class Config(ValidatedConfigBase):
|
||||
personality: PersonalityConfig = Field(..., description="个性配置")
|
||||
chat: ChatConfig = Field(..., description="聊天配置")
|
||||
message_receive: MessageReceiveConfig = Field(..., description="消息接收配置")
|
||||
notice: NoticeConfig = Field(..., description="Notice消息配置")
|
||||
normal_chat: NormalChatConfig = Field(..., description="普通聊天配置")
|
||||
emoji: EmojiConfig = Field(..., description="表情配置")
|
||||
expression: ExpressionConfig = Field(..., description="表达配置")
|
||||
|
||||
@@ -150,6 +150,17 @@ class MessageReceiveConfig(ValidatedConfigBase):
|
||||
ban_msgs_regex: list[str] = Field(default_factory=lambda: [], description="禁用消息正则列表")
|
||||
|
||||
|
||||
class NoticeConfig(ValidatedConfigBase):
|
||||
"""Notice消息配置类"""
|
||||
|
||||
enable_notice_trigger_chat: bool = Field(default=False, description="是否允许notice消息触发聊天流程")
|
||||
notice_in_prompt: bool = Field(default=True, description="是否在提示词中展示最近的notice消息")
|
||||
notice_prompt_limit: int = Field(default=5, ge=1, le=20, description="在提示词中展示的最大notice数量")
|
||||
notice_time_window: int = Field(default=3600, ge=60, le=86400, description="notice时间窗口(秒)")
|
||||
max_notices_per_chat: int = Field(default=30, ge=10, le=100, description="每个聊天保留的notice数量上限")
|
||||
notice_retention_time: int = Field(default=86400, ge=3600, le=604800, description="notice保留时间(秒)")
|
||||
|
||||
|
||||
class NormalChatConfig(ValidatedConfigBase):
|
||||
"""普通聊天配置类"""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user