refactor(core): 移除睡眠系统
由于睡眠系统存在设计缺陷、实现复杂且维护成本高,并且实际使用效果不佳,常常导致非预期的行为(如错过重要消息或在不应睡眠时睡眠),现决定将其从核心代码中完全移除。 移除内容包括: - 删除了整个 `sleep_system` 模块及其所有相关逻辑、状态管理和定时任务。 - 清理了配置文件 `config.py` 和 `official_configs.py` 中的 `SleepSystemConfig`。 - 移除了 `main.py` 中关于睡眠系统的初始化调用。 - 清理了 `message_manager` 和 `proactive_thinker` 中对睡眠状态的检查。 - 更新了 `bot_config_template.toml` 模板文件,移除了所有睡眠系统相关的配置项。 此举旨在简化项目架构,提高系统的稳定性和可预测性。未来的相关功能可能会以更健壮、更模块化的插件形式重新实现。
This commit is contained in:
committed by
Windpicker-owo
parent
e7f431392a
commit
7a797a1de6
@@ -40,7 +40,6 @@ from src.config.official_configs import (
|
||||
ProactiveThinkingConfig,
|
||||
ResponsePostProcessConfig,
|
||||
ResponseSplitterConfig,
|
||||
SleepSystemConfig,
|
||||
ToolConfig,
|
||||
VideoAnalysisConfig,
|
||||
VoiceConfig,
|
||||
@@ -425,7 +424,6 @@ class Config(ValidatedConfigBase):
|
||||
default_factory=lambda: DependencyManagementConfig(), description="依赖管理配置"
|
||||
)
|
||||
web_search: WebSearchConfig = Field(default_factory=lambda: WebSearchConfig(), description="网络搜索配置")
|
||||
sleep_system: SleepSystemConfig = Field(default_factory=lambda: SleepSystemConfig(), description="睡眠系统配置")
|
||||
planning_system: PlanningSystemConfig = Field(
|
||||
default_factory=lambda: PlanningSystemConfig(), description="规划系统配置"
|
||||
)
|
||||
|
||||
@@ -593,52 +593,6 @@ class AntiPromptInjectionConfig(ValidatedConfigBase):
|
||||
shield_suffix: str = Field(default=" 🛡️", description="保护后缀")
|
||||
|
||||
|
||||
class SleepSystemConfig(ValidatedConfigBase):
|
||||
"""睡眠系统配置类"""
|
||||
|
||||
enable: bool = Field(default=True, description="是否启用睡眠系统")
|
||||
sleep_by_schedule: bool = Field(default=True, description="是否根据日程表进行睡觉")
|
||||
fixed_sleep_time: str = Field(default="23:00", description="固定的睡觉时间")
|
||||
fixed_wake_up_time: str = Field(default="07:00", description="固定的起床时间")
|
||||
sleep_time_offset_minutes: int = Field(
|
||||
default=15, ge=0, le=60, description="睡觉时间随机偏移量范围(分钟),实际睡觉时间会在±该值范围内随机"
|
||||
)
|
||||
wake_up_time_offset_minutes: int = Field(
|
||||
default=15, ge=0, le=60, description="起床时间随机偏移量范围(分钟),实际起床时间会在±该值范围内随机"
|
||||
)
|
||||
wakeup_threshold: float = Field(default=15.0, ge=1.0, description="唤醒阈值,达到此值时会被唤醒")
|
||||
private_message_increment: float = Field(default=3.0, ge=0.1, description="私聊消息增加的唤醒度")
|
||||
group_mention_increment: float = Field(default=2.0, ge=0.1, description="群聊艾特增加的唤醒度")
|
||||
decay_rate: float = Field(default=0.2, ge=0.0, description="每次衰减的唤醒度数值")
|
||||
decay_interval: float = Field(default=30.0, ge=1.0, description="唤醒度衰减间隔(秒)")
|
||||
angry_duration: float = Field(default=300.0, ge=10.0, description="愤怒状态持续时间(秒)")
|
||||
angry_prompt: str = Field(default="你被人吵醒了非常生气,说话带着怒气", description="被吵醒后的愤怒提示词")
|
||||
re_sleep_delay_minutes: int = Field(
|
||||
default=5, ge=1, description="被唤醒后,如果多久没有新消息则尝试重新入睡(分钟)"
|
||||
)
|
||||
|
||||
# --- 失眠机制相关参数 ---
|
||||
enable_insomnia_system: bool = Field(default=True, description="是否启用失眠系统")
|
||||
insomnia_trigger_delay_minutes: list[int] = Field(
|
||||
default_factory=lambda: [30, 60], description="入睡后触发失眠判定的延迟时间范围(分钟)"
|
||||
)
|
||||
insomnia_duration_minutes: list[int] = Field(
|
||||
default_factory=lambda: [15, 45], description="单次失眠状态的持续时间范围(分钟)"
|
||||
)
|
||||
insomnia_chance_pressure: float = Field(default=0.1, ge=0.0, le=1.0, description="失眠基础概率")
|
||||
|
||||
# --- 弹性睡眠与睡前消息 ---
|
||||
enable_flexible_sleep: bool = Field(default=True, description="是否启用弹性睡眠")
|
||||
flexible_sleep_pressure_threshold: float = Field(
|
||||
default=40.0, description="触发弹性睡眠的睡眠压力阈值,低于该值可能延迟入睡"
|
||||
)
|
||||
max_sleep_delay_minutes: int = Field(default=60, description="单日最大延迟入睡分钟数")
|
||||
enable_pre_sleep_notification: bool = Field(default=True, description="是否启用睡前消息")
|
||||
pre_sleep_prompt: str = Field(
|
||||
default="我准备睡觉了,请生成一句简短自然的晚安问候。", description="用于生成睡前消息的提示"
|
||||
)
|
||||
|
||||
|
||||
class ContextGroup(ValidatedConfigBase):
|
||||
"""
|
||||
上下文共享组配置
|
||||
|
||||
Reference in New Issue
Block a user