Commit Graph

23 Commits

Author SHA1 Message Date
雅诺狐
898208f425 perf(methods): 通过移除不必要的 self 参数优化方法签名
在包括 chat、plugin_system、schedule 和 mais4u 在内的多个模块中,消除冗余的实例引用。此次改动将无需访问实例状态的实用函数转换为静态方法,从而提升了内存效率,并使方法依赖关系更加清晰。
2025-09-20 10:55:06 +08:00
Windpicker-owo
8149731925 修复代码格式和文件名大小写问题 2025-08-31 20:50:17 +08:00
minecraft1024a
d06cfe3a36 refactor(schedule): 重构日程与月度计划管理模块
将 `schedule_manager` 和 `monthly_plan_manager` 从 `src/manager` 移动到 `src/schedule` 目录,以更好地组织与日程和计划相关的功能。

主要变更:
- 将 `schedule_manager` 和 `monthly_plan_manager` 移动到新的 `src/schedule` 目录。
- 更新了所有对这两个模块的导入路径,以反映新的文件位置。
- 删除了旧的 `src/manager` 目录下的模块文件。
- `monthly_plan_manager` 内部实现被重构,取代了原有的 `plan_generator.py`,简化了计划生成逻辑。
2025-08-27 19:46:01 +08:00
minecraft1024a
1e037e5ce9 feat(maizone): 新增QQ空间互通组功能,根据聊天上下文生成说说
引入了全新的“QQ空间互通组”功能。用户可以配置多个群聊为一个互通组。
在通过指令发布说说时,系统会自动获取这些群聊的近期聊天记录作为上下文,从而生成与当前讨论话题更相关的说说内容。

- 在 `config.toml` 中新增了 `[maizone_intercom]` 配置项用于定义互通组。
- 重构并增强了动态(说说)的拉取逻辑,提高了对不同数据格式的兼容性和解析的稳定性。
- 对项目中的多个文件进行了代码清理,移除了未使用的导入,使代码更加整洁。
2025-08-26 20:20:54 +08:00
minecraft1024a
cbd115efdb feat(monthly_plan): 增强月度计划系统,引入状态管理和智能抽取
对月度计划系统进行了全面的重构和功能增强,以提供更智能、更可持续的计划管理体验。

主要变更包括:
- **引入状态生命周期**: 废弃了原有的 `is_deleted` 软删除标记,引入了更明确的 `status` 字段 (`active`, `completed`, `archived`),用于管理计划的整个生命周期。
- **增加使用统计与自动完成**: 新增 `usage_count` 和 `last_used_date` 字段来跟踪计划的使用情况。当计划使用次数达到可配置的阈值后,会自动标记为 `completed`。
- **实现智能计划抽取**: 为每日日程生成实现了新的智能抽取算法。该算法会优先选择使用次数较少且近期未被使用的计划,以增加计划的多样性并避免重复。
- **更新配置选项**: 移除了旧的概率删除相关配置,增加了 `completion_threshold`、`avoid_repetition_days` 等新选项以支持新逻辑。
- **数据库模型更新**: 更新了 `MonthlyPlan` 的数据库模型和索引,以支持新功能并优化查询性能。保留 `is_deleted` 字段以兼容旧数据。
2025-08-26 19:19:53 +08:00
雅诺狐
4a44ba9866 全面更换orjson 2025-08-26 14:20:26 +08:00
tt-P607
9adcc2e07d feat(log): 优化唤醒和休眠日志的输出频率
对唤醒度和休眠检查的日志记录进行节流,以减少在消息密集时产生的日志数量。

- 在 `WakeUpManager` 中,唤醒度变化的日志现在每30秒最多输出一次 INFO 级别的日志,其余时间的日志降为 DEBUG 级别。
- 在 `ScheduleManager` 中,休眠期间被唤醒的日志也增加了类似的节流逻辑,以避免日志刷屏。
2025-08-25 02:14:34 +08:00
tt-P607
0b4e91b835 refactor(schedule): 移除日程生成的结束标记和相关处理逻辑
由于项目内置的LLM响应处理机制已能有效防止消息截断,原先为保证日程生成完整性而引入的`###SCHEDULE_END###`结束标记及其相关检查、清理逻辑已不再必要。

本次重构删除了以下内容:
- Prompt中关于添加结束标记的指令
- `_check_response_completeness`方法
- `_clean_response`方法
- 生成循环中对结束标记的检查和清理调用

这简化了`ScheduleManager`的代码,使其更专注于核心的日程生成与验证逻辑,提高了代码的可读性和维护性。
2025-08-23 21:07:50 +08:00
tt-P607
006c305450 改成异步防止阻塞主程序,还有就是改成无上限重试生成日程,以及结尾加上结束标记,防止虽然时间完整但是日程不完整的截断,tmd傻逼gemini,我去你mlgb,畜生玩意!怎么那么爱空回和截断消息!wcnm!傻逼玩意儿!你别让我逮到你了! 2025-08-23 19:01:32 +08:00
tt-P607
ab48324c6f fix(chat): 修复睡眠模式下无法通过艾特唤醒的问题
在之前的实现中,当机器人处于睡眠模式时,获取消息的逻辑会过滤掉所有命令消息(`filter_command=True`),这其中也包括了艾特(@)机器人的消息。这导致了用户无法通过艾特来唤醒睡眠中的机器人。

本次修复通过引入一个 `filter_command_flag` 标志来解决此问题。当机器人处于睡眠状态时(`is_sleeping` 为 `True`),该标志会设置为 `False`,从而在获取消息时不过滤命令消息,确保艾特消息能够被正确接收和处理,进而触发唤醒逻辑。

此外,还对 `schedule_manager` 中的睡眠日志记录逻辑进行了优化,增加了时间间隔来避免在睡眠期间频繁打印日志,减少不必要的日志刷屏。
2025-08-23 02:49:28 +08:00
minecraft1024a
e72b5064f5 feat:现在日程表会根据节日生成东西了(gemini你再有问题我就砍了你) 2025-08-22 16:22:42 +08:00
minecraft1024a
67bb7de8aa refactor(schedule): 优化休眠状态判断逻辑
将原先仅检查日程表首尾项的休眠判断方式,重构为通过关键词匹配所有日程项。
这样可以更灵活地在一天中的任何时段安排休眠,而不仅限于一天的开始或结束。

- 引入 `sleep_keywords` 列表,用于识别表示休眠的活动。
- 遍历当天的所有日程,检查活动名称是否包含休眠关键词。
- 如果关键词匹配,则进一步检查当前时间是否处于该活动的时间范围内。
- 保留了对唤醒状态的检查,确保在被唤醒时不会错误地判断为休眠。

同时,对 `hfc_context.py` 中的 `last_read_time` 初始值进行了微调,以改善相关逻辑的初始行为。
2025-08-22 12:17:10 +08:00
minecraft1024a
4f7836ae0c feat(sleep): 引入休眠阶段消息唤醒机制与愤怒情绪模式
- 扩展日程休眠逻辑,支持在睡眠时段通过@/私聊唤醒
- 新增 WakeUpManager 持续追踪唤醒阈值并触发愤怒状态
- MoodManager 中追加“被吵醒”情绪标识与愤怒提示模板
- HeartFChat 主循环集成唤醒处理管线,兼容原逻辑
- 配置中心开放阈值、衰减、持续时间等可调参数

此举允许机器人即便在“睡觉”时也能被重要消息强行“闹醒”,并以生气口吻做出回应,提升拟人化交互体验。
2025-08-21 16:19:34 +08:00
minecraft1024a
9c3b750328 refactor(chat): 重构HeartFChatting为模块化架构
将原本超长的heartFC_chat.py拆分为6个功能内聚的子模块:
- hfc_context:上下文数据容器
- cycle_tracker:循环状态记录
- energy_manager:能量值独立管理
- proactive_thinker:主动思考逻辑抽离
- cycle_processor:单次循环处理器
- response_handler / normal_mode_handler:响应策略

删除冗余常量、错误样板及旧逻辑;大幅减少类体积;降低耦合度,提升可维护性。
2025-08-21 14:27:12 +08:00
minecraft1024a
43563925e8 fix:紧急修改拼写错误 2025-08-21 13:42:16 +08:00
minecraft1024a
ce50f1637c FEAT:现在AI可以根据日程表决定睡不睡觉了 2025-08-21 13:37:12 +08:00
minecraft1024a
b1b08c1814 feat:添加了月度计划 # 我要混提交 2025-08-21 12:32:48 +08:00
雅诺狐
1405b50d5a Refactor config system to use Pydantic validation
Refactored configuration classes to inherit from a new ValidatedConfigBase using Pydantic for robust validation and error reporting. Updated api_ada_configs.py, config.py, config_base.py, and official_configs.py to replace dataclasses with Pydantic models, add field validation, and improve error messages. This change enhances configuration reliability and developer feedback for misconfigurations. Also includes minor code cleanups and removal of unused variables in other modules.
2025-08-19 15:33:43 +08:00
雅诺狐
5e91f9ef5f Remove unused imports across multiple modules
Cleaned up various files by removing unused or redundant import statements to improve code readability and reduce potential confusion. No functional changes were made.
2025-08-19 11:55:24 +08:00
minecraft1024a
4512b3f9f1 feat(schedule): 新增每日零点自动生成日程任务
新增一个后台异步任务,用于在每日零点自动为新的一天生成日程表。
此功能通过 `AsyncTask` 实现,在程序启动时初始化并启动一个循环任务。该任务会计算到下一个零点的时间并等待,然后在零点触发新的日程生成和保存流程,确保日程表能够每日自动更新。
2025-08-17 15:38:07 +08:00
雅诺狐
d46d689c43 数据库重构 2025-08-16 23:43:45 +08:00
minecraft1024a
5f7f68f640 重构日程管理模块,将原有的schedule_manager模块迁移至manager目录,并更新相关引用。同时优化了定时任务管理逻辑,确保基于日程的发送功能正常运作,改进了日志记录和活动处理机制(OK兄弟们全体目光向我看齐,看我看我,我是个sb) 2025-08-14 12:40:58 +08:00
雅诺狐
2d4745cd58 初始化 2025-08-11 19:34:18 +08:00