minecraft1024a
b5549ff81f
fix(chat): 修复睡眠和情绪系统中的空值和逻辑问题
...
修复了两个问题:
1. 在睡眠状态下,如果没有设置起床时间,且当天也无法从日程中获取新的起床时间,程序会错误地继续执行后续的唤醒判断逻辑,而不是直接返回并继续睡眠。
2. 在更新情绪状态时,如果消息的`interest_value`为`None`,会导致类型错误。已增加空值检查,将其默认处理为 0.0。
2025-11-19 23:22:41 +08:00
tt-P607
8abe742349
refactor(chat): 优化聊天日志与分段回复提示词
...
本次提交主要包含两项优化:
1. **聊天日志增强**: 在接收消息的日志中增加了聊天来源(群聊名称或“私聊”),方便在后台快速定位消息上下文。
2. **分段回复优化**: 简化并明确了分段回复的 LLM 提示词,引导模型生成更自然、简短的回复分段,以改善对话的节奏感。
2025-11-19 23:21:04 +08:00
雅诺狐
701466cdef
Potential fix for code scanning alert no. 5: Use of a broken or weak cryptographic hashing algorithm on sensitive data
...
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-11-19 23:20:42 +08:00
Windpicker-owo
d52ebe20c4
feat(mood): 集成情绪系统到消息处理流程并改进初始化逻辑
...
在消息处理完成后自动触发情绪状态更新,增强了聊天体验的动态性。
同时改进了情绪系统的异步初始化过程,增加了错误处理和日志记录,
确保系统在各种异常情况下都能稳定运行。
2025-11-19 23:20:26 +08:00
Windpicker-owo
f002228abb
refactor(scoring): 重构评分系统使用统一API替代插件内部实现
...
将原有的兴趣度评分系统重构为使用统一的评分API,移除了插件内部实现并更新了所有相关引用。主要变更包括:
- 替换 chatter_interest_scoring_system 为 scoring_api
- 移除 interest_scoring.py 文件,统一使用 src/plugin_system/apis/scoring_api
- 更新关系追踪器以使用统一API,保持向后兼容性
- 简化了多个模块中的关系分获取逻辑
2025-11-19 23:20:23 +08:00
sunbiz1024
950b086063
ruff
2025-11-19 23:19:53 +08:00
minecraft1024a
2a89efe47a
ruff fix但指定了--unsafe-fixes
2025-11-19 23:19:42 +08:00
minecraft1024a
f8e62d0253
ruff: 清理代码并规范导入顺序
...
对整个代码库进行了大规模的清理和重构,主要包括:
- 统一并修复了多个文件中的 `import` 语句顺序,使其符合 PEP 8 规范。
- 移除了大量未使用的导入和变量,减少了代码冗余。
- 修复了多处代码风格问题,例如多余的空行、不一致的引号使用等。
- 简化了异常处理逻辑,移除了不必要的 `noqa` 注释。
- 在多个文件中使用了更现代的类型注解语法(例如 `list[str]` 替代 `List[str]`)。
2025-11-19 23:19:07 +08:00
雅诺狐
97dc145b76
Refactor replyer retrieval to async and add memory formatter
...
Changed get_replyer and related calls to async across multiple modules for proper coroutine handling. Added format_memories_bracket_style utility for memory formatting. Improved video analysis caching logic and type annotations. Updated error logging for message processing.
2025-11-19 23:18:45 +08:00
Windpicker-owo
dccf1cffc9
feat(chat): 实现批量动作存储并优化消息处理流程
...
新增批量动作记录存储功能,提升数据库写入性能。重构消息预处理逻辑,改进兴趣度计算和同步机制,优化用户信息和群组信息处理。添加配置选项控制批量存储开关,更新相关模板配置。
2025-11-19 23:18:27 +08:00
minecraft1024a
cd84373828
style: 统一代码风格并进行现代化改进
...
对整个代码库进行了一次全面的风格统一和现代化改进。主要变更包括:
- 将 `hasattr` 等内置函数中的字符串参数从单引号 `'` 统一为双引号 `"`。
- 采用现代类型注解,例如将 `Optional[T]` 替换为 `T | None`,`List[T]` 替换为 `list[T]` 等。
- 移除不再需要的 Python 2 兼容性声明 `# -*- coding: utf-8 -*-`。
- 清理了多余的空行、注释和未使用的导入。
- 统一了文件末尾的换行符。
- 优化了部分日志输出和字符串格式化 (`f"{e!s}"`)。
这些改动旨在提升代码的可读性、一致性和可维护性,使其更符合现代 Python 编码规范。
2025-11-19 23:18:16 +08:00
Windpicker-owo
481252d660
refactor(chat): 异步化聊天系统并重构兴趣值计算机制
...
将同步调用改为异步调用以提升性能,重构兴趣值计算流程以支持更灵活的组件化架构。主要改进包括:
- 异步化ChatManager相关方法,避免阻塞主线程
- 重构兴趣值计算系统,从插件内部计算改为通过兴趣管理器统一处理
- 新增should_act字段支持更细粒度的动作决策
- 优化初始化逻辑,避免构造函数中的异步操作
- 扩展插件系统支持兴趣计算器组件注册
- 更新数据库模型以支持新的兴趣值相关字段
这些改进提升了系统的响应性能和可扩展性,同时保持了API的向后兼容性。
2025-11-19 23:15:31 +08:00
Windpicker-owo
a5a16971e9
refactor(memory): 移除废弃的记忆系统备份文件,优化消息管理器架构
...
移除了deprecated_backup目录下的所有废弃记忆系统文件,包括增强记忆适配器、钩子、集成层、重排序器、元数据索引、多阶段检索和向量存储等模块。同时优化了消息管理器,集成了批量数据库写入器、流缓存管理器和自适应流管理器,提升了系统性能和可维护性。
2025-11-19 23:14:42 +08:00
Windpicker-owo
f8aa149c39
refactor(chat): 优化流循环管理和数据库性能
...
移除StreamLoopManager中的锁机制,简化并发流处理逻辑
- 删除loop_lock,减少锁竞争和超时问题
- 优化流启动、停止和清理流程
- 增强错误处理和日志记录
增强数据库操作性能
- 集成数据库批量调度器和连接池管理器
- 优化ChatStream保存机制,支持批量更新
- 改进数据库会话管理,提高并发性能
清理和优化代码结构
- 移除affinity_chatter中的重复方法
- 改进prompt表达习惯格式化
- 完善系统启动和清理流程
2025-11-19 23:14:16 +08:00
John Richard
a79253c714
re-style: 格式化代码
2025-11-19 23:13:20 +08:00
John Richard
00ba07e0e1
style: 格式化代码
2025-11-19 23:12:18 +08:00
Windpicker-owo
3fcf8e9add
feat(memory): 重构记忆系统并移除插件热重载
...
重构记忆系统核心模块,引入全局记忆作用域、记忆指纹去重机制和查询规划器,优化多阶段检索性能。移除插件热重载系统及其相关依赖。
主要变更:
- 引入全局记忆作用域,简化记忆管理
- 实现记忆指纹去重,避免重复记忆存储
- 新增查询规划器,支持语义查询规划和记忆类型过滤
- 优化多阶段检索,增加语义重排和权重配置
- 改进向量存储,支持嵌入维度自动解析和查询向量生成
- 增强元数据索引,支持主体索引和更新操作
- 记忆构建器支持多主体和自然语言展示
- 移除watchdog依赖和插件热重载模块
- 更新配置模板,简化记忆配置项
BREAKING CHANGE: 移除插件热重载系统,相关API和命令不再可用。记忆系统接口有较大调整,使用该系统的模块需要适配新接口。
2025-11-19 23:11:14 +08:00
Windpicker-owo
0a3c908654
feat(memory): 增强记忆构建上下文处理能力并优化兴趣度批量更新机制
...
- 在记忆构建过程中允许检索历史记忆作为上下文补充
- 改进LLM响应解析逻辑,增强JSON提取兼容性
- 优化消息兴趣度计算和批量更新机制,减少数据库写入频率
- 添加构建状态管理,支持在BUILDING状态下进行记忆检索
- 修复stream_id拼写错误处理和历史消息获取逻辑
2025-11-19 23:11:10 +08:00
Windpicker-owo
ae0c2704d1
refactor(chat): 移除 ChatStream 的历史消息自动加载功能
...
移除 ChatStream 初始化时的 `_load_history_messages()` 调用,改为按需异步加载历史消息。这解决了启动时阻塞事件循环的问题,并提高了聊天流初始化的性能。
主要变更:
- 删除 `ChatStream._load_history_messages()` 方法及相关代码
- 将多个模块中的同步数据库查询函数改为异步版本
- 修复相关调用处的异步调用方式
- 优化图片描述查询的错误处理
BREAKING CHANGE: `get_raw_msg_before_timestamp_with_chat` 和相关消息查询函数现在改为异步操作,需要调用处使用 await
2025-11-19 23:09:40 +08:00
Windpicker-owo
c31fd02daf
refactor(chat): 迁移数据库操作为异步模式并修复相关调用
...
将同步数据库操作全面迁移为异步模式,主要涉及:
- 将 `with get_db_session()` 改为 `async with get_db_session()`
- 修复相关异步调用链,确保 await 正确传递
- 优化消息管理器、上下文管理器等核心组件的异步处理
- 移除同步的 person_id 获取方法,避免协程对象传递问题
修复 deepcopy 在 StreamContext 中的序列化问题,跳过不可序列化的 asyncio.Task 对象
删除无用的测试文件和废弃的插件清单文件
2025-11-19 23:09:34 +08:00
Windpicker-owo
9836d317b8
refactor(database): 将同步数据库操作迁移为异步操作
...
将整个项目的数据库操作从同步模式迁移为异步模式,主要涉及以下修改:
- 将 `with get_db_session()` 改为 `async with get_db_session()`
- 将同步的 SQLAlchemy 查询方法改为异步执行
- 更新相关的方法签名,添加 async/await 关键字
- 修复由于异步化导致的并发问题和性能问题
这些修改提高了数据库操作的并发性能,避免了阻塞主线程,提升了系统的整体响应能力。涉及修改的模块包括表情包管理、反提示注入统计、用户封禁管理、记忆系统、消息存储等多个核心组件。
BREAKING CHANGE: 所有涉及数据库操作的方法现在都需要使用异步调用,同步调用将不再工作
2025-11-19 23:09:31 +08:00
Windpicker-owo
7508d542f2
refactor(interest-system): 移除旧兴趣度管理系统,迁移到插件内部实现
...
移除旧的集中式兴趣度管理系统(interest_manager.py),将兴趣度计算功能迁移到affinity_flow_chatter插件内部实现。主要包括:
- 删除interest_manager.py及其相关导入引用
- 修改RelationshipEnergyCalculator使用插件内部的关系分计算
- 重构StreamContextManager使用插件内部的兴趣度评分系统
- 更新ChatStream、PlanFilter、Planner等组件使用新的插件接口
- 简化上下文管理器,移除事件系统和验证器相关代码
此次重构提高了模块独立性,减少了核心代码对插件功能的直接依赖,符合"高内聚低耦合"的设计原则。
2025-11-19 23:09:28 +08:00
Windpicker-owo
1177b81285
refactor(chat): 重构消息管理器以使用集中式上下文管理和能量系统
...
- 将流上下文管理从MessageManager迁移到专门的ContextManager
- 使用统一的能量系统计算focus_energy和分发间隔
- 重构ChatStream的消息数据转换逻辑,支持更完整的数据字段
- 更新数据库模型,移除interest_degree字段,统一使用interest_value
- 集成新的兴趣度管理系统替代原有的评分系统
- 添加消息存储的interest_value修复功能
2025-11-19 23:09:25 +08:00
Windpicker-owo
5962b44294
refactor(chat): 优化消息管理与打断系统,添加打断计数与历史消息加载功能
2025-11-19 23:09:23 +08:00
Windpicker-owo
ca8a47f246
refactor(chat): 重构消息兴趣度计算与动作记录机制
...
重构聊天系统以使用集中式消息管理API,移除ChatMessageContext类,将兴趣度计算和动作记录功能整合到StreamContext中。
主要变更:
- 移除ChatMessageContext类,使用StreamContext统一管理消息上下文
- 在DatabaseMessages模型中添加interest_degree、actions、should_reply字段
- 实现消息管理器API用于更新消息信息和刷新focus_energy
- 重构ChatStream的focus_energy计算逻辑,基于StreamContext历史消息
- 在动作管理器中添加动作记录功能,确保动作执行后更新消息状态
BREAKING CHANGE: ChatMessageContext类已被移除,相关功能需使用StreamContext API替代
2025-11-19 23:09:19 +08:00
tt-P607
9c6fbce81b
refactor(chat): 移除会话数据中的 relationship_score
2025-11-19 23:09:17 +08:00
tt-P607
3fa26debb9
feat(chat): 实现 focus_energy 的实时更新与同步机制
...
为了解决 `focus_energy` 更新不及时,导致其无法准确反映当前对话兴趣度的问题,本次提交引入了一套新的实时更新与同步机制。
这确保了每当消息的兴趣度发生变化时,代表机器人注意力的 `focus_energy` 也能被立即重新计算和更新,使决策更加精准。
主要变更:
1. **手动更新**: 在 `ChatStream` 中新增 `update_focus_energy` 方法,允许外部逻辑在需要时手动触发 `focus_energy` 的重新计算。
2. **实时计算**: `ChatterActionPlanner` 在评估并更新消息兴趣度后,会立即调用 `update_focus_energy`,确保了兴趣度到注意力的即时传导。
3. **状态同步**: `ChatterManager` 在完成一次执行后,会主动将 `mood_manager` 中可能已更新的 `chat_stream` 同步回当前的 `StreamContext`,保证了整个处理流中数据的一致性。
2025-11-19 23:09:16 +08:00
Windpicker-owo
a67b78b551
feat(chat): 实现动态消息分发系统和消息打断机制
...
添加基于focus_energy的动态消息分发周期调整功能,根据聊天流兴趣度智能调整检查间隔
实现消息打断系统,允许高优先级消息打断正在处理的任务
重构ChatStream类,引入动态兴趣度计算系统,包括消息兴趣度统计和用户关系评分
扩展数据库模型和配置系统以支持新功能,增加相关配置项
更新版本号至0.11.0-alpha-1以反映重大功能更新
2025-11-19 23:09:12 +08:00
tt-P607
42645972e4
feat(core): 实现消息异步处理并引入LLM驱动的智能表情回应
...
本次更新对系统核心处理流程和插件功能进行了重要升级,主要包含以下两方面:
1. **消息处理异步化**:
- 在 `main.py` 中引入了 `asyncio.create_task` 机制,将每条消息的处理过程包装成一个独立的后台任务。
- 这解决了长时间运行的AI或插件操作可能阻塞主事件循环的问题,显著提升了机器人的响应速度和系统稳定性。
- 为后台任务添加了完成回调,现在可以详细地记录每个消息处理任务的成功、失败或取消状态及其耗时,便于监控和调试。
2. **`set_emoji_like` 插件智能化**:
- 为 `set_emoji_like` 插件增加了LLM驱动的表情选择功能。当动作指令未指定具体表情时,插件会自动构建包含聊天上下文、情绪和人设的提示,请求LLM选择一个最合适的表情进行回应。
- 为支持此功能,对AFC规划器的提示词进行了优化,为LLM提供了更清晰的参数示例和规则,提高了动作生成的准确性。
此外,为了统一日志规范,将 `[所见]` 消息接收日志集中到 `bot.py` 中,确保在任何过滤逻辑执行前记录所有收到的消息,并移除了插件中重复的日志。
2025-11-19 23:08:52 +08:00
minecraft1024a
c1ba228862
refactor(chat): 更新判断群聊消息的属性以适配新结构
2025-11-19 23:08:41 +08:00
minecraft1024a
b98417dec6
先修一下命令无法正常检查聊天类型限制
2025-11-19 23:08:34 +08:00
Windpicker-owo
087ecfb420
fix(chat): 修复display_message缺失时的显示问题
2025-11-19 23:08:02 +08:00
Windpicker-owo
df3c616d09
ruff,私聊视为提及了bot
2025-11-19 23:07:30 +08:00
Windpicker-owo
e1fcdf94ee
feat(affinity-flow): 调整回复概率参数和评分计算
...
- 增加最大不回复次数至15次,降低每次不回复的概率提升至1%
- 在最终评分计算中增加1.15倍系数提升
- 被提及时的基础分数从1.0提升至3.0
- 为兴趣标签保存添加数据库验证机制
- 在消息处理流程中增加数据库存储功能
- 修复JSON解析错误处理,增加异常情况下的默认响应
- 优化数据库会话管理和模型转换的健壮性
2025-11-19 23:06:42 +08:00
Windpicker-owo
2739848451
feat(affinity-flow): 优化兴趣度评分系统并集成消息管理器
...
重构兴趣度评分系统,移除时间因子权重,增加未读消息处理机制。集成消息管理器用于消息存储和状态跟踪,改进提及检测逻辑。
主要变更:
- 移除时间因子评分,调整兴趣匹配度权重至0.5
- 添加未读消息参数到规划器,优化兴趣度计算
- 引入消息管理器处理消息存储和状态标记
- 改进提及检测逻辑,使用消息对象的is_mentioned属性
- 添加消息清理和启动/停止机制
BREAKING CHANGE: 兴趣度评分算法调整,需要重新评估消息优先级
2025-11-19 23:06:40 +08:00
Windpicker-owo
d7d7388aa7
炸飞hfc,引入afc
2025-11-19 23:06:33 +08:00
minecraft1024a
f842c43ab0
ruff
2025-11-19 23:05:47 +08:00
minecraft1024a
87389c9d66
Megre Pull Request #1260 from MaiCore: https://github.com/MaiM-with-u/MaiBot/pull/1260
2025-11-19 23:05:41 +08:00
minecraft1024a
350388d116
fix(db): 修复数据库迁移中列和索引的创建逻辑
...
- 增强了添加列时对默认值的处理,以兼容不同数据库方言(例如 SQLite 的布尔值)。
- 切换到更标准的 `index.create()` 方法来创建索引,提高了稳定性。
- 调整了启动顺序,确保数据库在主系统之前完成初始化,以防止竞争条件。
2025-11-19 23:05:40 +08:00
minecraft1024a
ba91b99674
fix(db): 适配 SQLAlchemy 2.0 API 变更
...
更新了与数据库交互的代码,以适配 SQLAlchemy 2.0 引入的 API 变更,解决相关的废弃警告和异步调用问题。
主要变更包括:
- 使用 `scalars().first()` 替代已废弃的 `scalar()` 方法。
- 在获取所有标量结果时显式调用 `.all()`。
- 对异步引擎 `get_engine()` 的调用进行 `await`。
- 移除了向 Inspector 方法(如 `get_table_names`)传递多余的 `conn` 参数。
2025-11-19 23:05:34 +08:00
雅诺狐
679195d792
refactor(db): 修正SQLAlchemy异步操作调用方式
...
移除session.add()方法的不必要await调用,修正异步数据库操作模式。主要变更包括:
- 将 `await session.add()` 统一改为 `session.add()`
- 修正部分函数调用为异步版本(如消息查询函数)
- 重构SQLAlchemyTransaction为完全异步实现
- 重写napcat_adapter_plugin数据库层以符合异步规范
- 添加aiomysql和aiosqlite依赖支持
2025-11-19 23:05:17 +08:00
雅诺狐
0cffc0aa95
refactor(db): 将数据库操作异步化
...
- 将所有 session.add() 改为 await session.add()
- 将所有 session.commit() 改为 await session.commit()
- 将 session.refresh() 改为 await session.refresh()
2025-11-19 23:05:14 +08:00
tt-P607
5892ed1452
refactor(db): 重构数据库交互为异步模式
...
为了提升性能并与项目整体的异步架构保持一致,对核心数据库交互模块进行了异步化重构。
主要修改内容包括:
- 将 `PermissionManager` 中的所有数据库操作从同步改为异步,以避免阻塞事件循环。
- 使用 `async_sessionmaker` 和 `async with session` 替代原有的同步会话管理。
- 将 SQLAlchemy 查询语法更新为异步兼容的 `await session.execute(select(...))` 模式。
- 相应地,调用链中依赖数据库操作的多个方法也已更新为 `async` 函数。
2025-11-19 23:05:09 +08:00
雅诺狐
9ec8ea6310
Update message.py
2025-11-19 23:05:08 +08:00
雅诺狐
ca51182172
小修复
2025-11-19 23:05:07 +08:00
雅诺狐
26a4c492c3
将AFC合并至Master分支
2025-11-19 23:05:06 +08:00
tt-P607
d53238dfc9
4次修改
2025-11-19 23:05:02 +08:00
雅诺狐
93542cadef
perf(methods): 通过移除不必要的 self 参数优化方法签名
...
在包括 chat、plugin_system、schedule 和 mais4u 在内的多个模块中,消除冗余的实例引用。此次改动将无需访问实例状态的实用函数转换为静态方法,从而提升了内存效率,并使方法依赖关系更加清晰。
2025-11-19 23:05:00 +08:00
tt-P607
aba4f1a947
三次修改
2025-11-19 23:02:01 +08:00
BuildTools
14a70496f7
feat(chat): 增强prompt构建功能并优化回复逻辑
...
- 为HfcContext和ChatStream添加focus_energy配置支持
- 修复默认回复生成器中识别自身消息的逻辑
- 完整实现prompt构建中的表达习惯、记忆、工具信息和知识模块
- 优化错误处理,使用原生异常链式传递
- 确保数据库操作中focus_energy字段的持久化
这些改进提升了聊天系统的上下文感知能力和回复质量,同时增强了模块的健壮性和可维护性。
2025-11-19 23:00:13 +08:00