feat(monthly_plan): 增强月度计划系统,引入状态管理和智能抽取
对月度计划系统进行了全面的重构和功能增强,以提供更智能、更可持续的计划管理体验。 主要变更包括: - **引入状态生命周期**: 废弃了原有的 `is_deleted` 软删除标记,引入了更明确的 `status` 字段 (`active`, `completed`, `archived`),用于管理计划的整个生命周期。 - **增加使用统计与自动完成**: 新增 `usage_count` 和 `last_used_date` 字段来跟踪计划的使用情况。当计划使用次数达到可配置的阈值后,会自动标记为 `completed`。 - **实现智能计划抽取**: 为每日日程生成实现了新的智能抽取算法。该算法会优先选择使用次数较少且近期未被使用的计划,以增加计划的多样性并避免重复。 - **更新配置选项**: 移除了旧的概率删除相关配置,增加了 `completion_threshold`、`avoid_repetition_days` 等新选项以支持新逻辑。 - **数据库模型更新**: 更新了 `MonthlyPlan` 的数据库模型和索引,以支持新功能并优化查询性能。保留 `is_deleted` 字段以兼容旧数据。
This commit is contained in:
committed by
Windpicker-owo
parent
ec25bb6cd4
commit
74c83fdc01
22
src/main.py
22
src/main.py
@@ -17,7 +17,7 @@ from src.common.server import get_global_server, Server
|
||||
from src.mood.mood_manager import mood_manager
|
||||
from rich.traceback import install
|
||||
from src.manager.schedule_manager import schedule_manager
|
||||
from src.schedule.monthly_plan_manager import MonthlyPlanManager
|
||||
from src.manager.monthly_plan_manager import monthly_plan_manager
|
||||
from src.plugin_system.core.event_manager import event_manager
|
||||
from src.plugin_system.base.component_types import EventType
|
||||
# from src.api.main import start_api_server
|
||||
@@ -227,14 +227,18 @@ MaiMbot-Pro-Max(第三方修改版)
|
||||
|
||||
# 初始化个体特征
|
||||
await self.individuality.initialize()
|
||||
|
||||
# 初始化月度计划管理器
|
||||
if global_config.monthly_plan_system.enable:
|
||||
logger.info("正在初始化月度计划管理器...")
|
||||
try:
|
||||
await monthly_plan_manager.start_monthly_plan_generation()
|
||||
logger.info("月度计划管理器初始化成功")
|
||||
except Exception as e:
|
||||
logger.error(f"月度计划管理器初始化失败: {e}")
|
||||
|
||||
# 初始化日程管理器
|
||||
if global_config.schedule.enable:
|
||||
logger.info("正在初始化月度计划...")
|
||||
try:
|
||||
await MonthlyPlanManager.initialize_monthly_plans()
|
||||
logger.info("月度计划初始化完成")
|
||||
except Exception as e:
|
||||
logger.error(f"月度计划初始化失败: {e}")
|
||||
logger.info("日程表功能已启用,正在初始化管理器...")
|
||||
await schedule_manager.load_or_generate_today_schedule()
|
||||
await schedule_manager.start_daily_schedule_generation()
|
||||
@@ -297,6 +301,10 @@ MaiMbot-Pro-Max(第三方修改版)
|
||||
|
||||
def sync_build_memory():
|
||||
"""在线程池中执行同步记忆构建"""
|
||||
if not self.hippocampus_manager:
|
||||
logger.error("尝试在禁用记忆系统时构建记忆,操作已取消。")
|
||||
return
|
||||
|
||||
try:
|
||||
loop = asyncio.new_event_loop()
|
||||
asyncio.set_event_loop(loop)
|
||||
|
||||
Reference in New Issue
Block a user