Windpicker-owo
dc39fd26c7
feat(memory): 重构记忆系统并移除插件热重载
...
重构记忆系统核心模块,引入全局记忆作用域、记忆指纹去重机制和查询规划器,优化多阶段检索性能。移除插件热重载系统及其相关依赖。
主要变更:
- 引入全局记忆作用域,简化记忆管理
- 实现记忆指纹去重,避免重复记忆存储
- 新增查询规划器,支持语义查询规划和记忆类型过滤
- 优化多阶段检索,增加语义重排和权重配置
- 改进向量存储,支持嵌入维度自动解析和查询向量生成
- 增强元数据索引,支持主体索引和更新操作
- 记忆构建器支持多主体和自然语言展示
- 移除watchdog依赖和插件热重载模块
- 更新配置模板,简化记忆配置项
BREAKING CHANGE: 移除插件热重载系统,相关API和命令不再可用。记忆系统接口有较大调整,使用该系统的模块需要适配新接口。
2025-10-01 04:56:32 +08:00
Windpicker-owo
41c45889c5
feat(memory): 增强记忆构建上下文处理能力并优化兴趣度批量更新机制
...
- 在记忆构建过程中允许检索历史记忆作为上下文补充
- 改进LLM响应解析逻辑,增强JSON提取兼容性
- 优化消息兴趣度计算和批量更新机制,减少数据库写入频率
- 添加构建状态管理,支持在BUILDING状态下进行记忆检索
- 修复stream_id拼写错误处理和历史消息获取逻辑
2025-09-30 14:22:26 +08:00
Windpicker-owo
28bce19d27
refactor(chat): 移除 ChatStream 的历史消息自动加载功能
...
移除 ChatStream 初始化时的 `_load_history_messages()` 调用,改为按需异步加载历史消息。这解决了启动时阻塞事件循环的问题,并提高了聊天流初始化的性能。
主要变更:
- 删除 `ChatStream._load_history_messages()` 方法及相关代码
- 将多个模块中的同步数据库查询函数改为异步版本
- 修复相关调用处的异步调用方式
- 优化图片描述查询的错误处理
BREAKING CHANGE: `get_raw_msg_before_timestamp_with_chat` 和相关消息查询函数现在改为异步操作,需要调用处使用 await
2025-09-28 21:31:49 +08:00
Windpicker-owo
fd76e36320
refactor(chat): 迁移数据库操作为异步模式并修复相关调用
...
将同步数据库操作全面迁移为异步模式,主要涉及:
- 将 `with get_db_session()` 改为 `async with get_db_session()`
- 修复相关异步调用链,确保 await 正确传递
- 优化消息管理器、上下文管理器等核心组件的异步处理
- 移除同步的 person_id 获取方法,避免协程对象传递问题
修复 deepcopy 在 StreamContext 中的序列化问题,跳过不可序列化的 asyncio.Task 对象
删除无用的测试文件和废弃的插件清单文件
2025-09-28 20:40:46 +08:00
Windpicker-owo
08ef960947
refactor(database): 将同步数据库操作迁移为异步操作
...
将整个项目的数据库操作从同步模式迁移为异步模式,主要涉及以下修改:
- 将 `with get_db_session()` 改为 `async with get_db_session()`
- 将同步的 SQLAlchemy 查询方法改为异步执行
- 更新相关的方法签名,添加 async/await 关键字
- 修复由于异步化导致的并发问题和性能问题
这些修改提高了数据库操作的并发性能,避免了阻塞主线程,提升了系统的整体响应能力。涉及修改的模块包括表情包管理、反提示注入统计、用户封禁管理、记忆系统、消息存储等多个核心组件。
BREAKING CHANGE: 所有涉及数据库操作的方法现在都需要使用异步调用,同步调用将不再工作
2025-09-28 15:42:30 +08:00
Windpicker-owo
ff24bd8148
Merge afc branch into dev, prioritizing afc changes and migrating database async modifications from dev
2025-09-27 23:37:40 +08:00
Windpicker-owo
80d34f3130
refactor(interest-system): 移除旧兴趣度管理系统,迁移到插件内部实现
...
移除旧的集中式兴趣度管理系统(interest_manager.py),将兴趣度计算功能迁移到affinity_flow_chatter插件内部实现。主要包括:
- 删除interest_manager.py及其相关导入引用
- 修改RelationshipEnergyCalculator使用插件内部的关系分计算
- 重构StreamContextManager使用插件内部的兴趣度评分系统
- 更新ChatStream、PlanFilter、Planner等组件使用新的插件接口
- 简化上下文管理器,移除事件系统和验证器相关代码
此次重构提高了模块独立性,减少了核心代码对插件功能的直接依赖,符合"高内聚低耦合"的设计原则。
2025-09-27 19:07:24 +08:00
Windpicker-owo
c49b3f3ac4
refactor(chat): 重构消息管理器以使用集中式上下文管理和能量系统
...
- 将流上下文管理从MessageManager迁移到专门的ContextManager
- 使用统一的能量系统计算focus_energy和分发间隔
- 重构ChatStream的消息数据转换逻辑,支持更完整的数据字段
- 更新数据库模型,移除interest_degree字段,统一使用interest_value
- 集成新的兴趣度管理系统替代原有的评分系统
- 添加消息存储的interest_value修复功能
2025-09-27 14:23:48 +08:00
minecraft1024a
9c1a7ff123
ruff
2025-09-26 20:16:46 +08:00
Windpicker-owo
0478be7d2a
refactor(chat): 优化消息管理与打断系统,添加打断计数与历史消息加载功能
2025-09-26 19:17:24 +08:00
Windpicker-owo
bbbf543078
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-09-26 13:56:43 +08:00
tt-P607
ef8d080228
refactor(chat): 移除会话数据中的 relationship_score
2025-09-26 02:14:48 +08:00
tt-P607
99595f239d
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-09-26 02:10:43 +08:00
Windpicker-owo
a2baec088e
feat(chat): 实现动态消息分发系统和消息打断机制
...
添加基于focus_energy的动态消息分发周期调整功能,根据聊天流兴趣度智能调整检查间隔
实现消息打断系统,允许高优先级消息打断正在处理的任务
重构ChatStream类,引入动态兴趣度计算系统,包括消息兴趣度统计和用户关系评分
扩展数据库模型和配置系统以支持新功能,增加相关配置项
更新版本号至0.11.0-alpha-1以反映重大功能更新
2025-09-25 17:14:01 +08:00
tt-P607
1a24233b86
feat(core): 实现消息异步处理并引入LLM驱动的智能表情回应
...
本次更新对系统核心处理流程和插件功能进行了重要升级,主要包含以下两方面:
1. **消息处理异步化**:
- 在 `main.py` 中引入了 `asyncio.create_task` 机制,将每条消息的处理过程包装成一个独立的后台任务。
- 这解决了长时间运行的AI或插件操作可能阻塞主事件循环的问题,显著提升了机器人的响应速度和系统稳定性。
- 为后台任务添加了完成回调,现在可以详细地记录每个消息处理任务的成功、失败或取消状态及其耗时,便于监控和调试。
2. **`set_emoji_like` 插件智能化**:
- 为 `set_emoji_like` 插件增加了LLM驱动的表情选择功能。当动作指令未指定具体表情时,插件会自动构建包含聊天上下文、情绪和人设的提示,请求LLM选择一个最合适的表情进行回应。
- 为支持此功能,对AFC规划器的提示词进行了优化,为LLM提供了更清晰的参数示例和规则,提高了动作生成的准确性。
此外,为了统一日志规范,将 `[所见]` 消息接收日志集中到 `bot.py` 中,确保在任何过滤逻辑执行前记录所有收到的消息,并移除了插件中重复的日志。
2025-09-24 15:43:12 +08:00
minecraft1024a
7feae466c3
Megre Pull Request #1260 from MaiCore: https://github.com/MaiM-with-u/MaiBot/pull/1260
2025-09-24 14:17:32 +08:00
minecraft1024a
8ff4687670
fix(db): 修复数据库迁移中列和索引的创建逻辑
...
- 增强了添加列时对默认值的处理,以兼容不同数据库方言(例如 SQLite 的布尔值)。
- 切换到更标准的 `index.create()` 方法来创建索引,提高了稳定性。
- 调整了启动顺序,确保数据库在主系统之前完成初始化,以防止竞争条件。
2025-09-24 13:46:44 +08:00
minecraft1024a
ff72181649
refactor(chat): 更新判断群聊消息的属性以适配新结构
2025-09-23 21:28:30 +08:00
minecraft1024a
1f2956e725
fix(db): 适配 SQLAlchemy 2.0 API 变更
...
更新了与数据库交互的代码,以适配 SQLAlchemy 2.0 引入的 API 变更,解决相关的废弃警告和异步调用问题。
主要变更包括:
- 使用 `scalars().first()` 替代已废弃的 `scalar()` 方法。
- 在获取所有标量结果时显式调用 `.all()`。
- 对异步引擎 `get_engine()` 的调用进行 `await`。
- 移除了向 Inspector 方法(如 `get_table_names`)传递多余的 `conn` 参数。
2025-09-23 14:05:16 +08:00
minecraft1024a
83860b28de
先修一下命令无法正常检查聊天类型限制
2025-09-23 11:25:47 +08:00
Windpicker-owo
e382b2ffd9
fix(chat): 修复display_message缺失时的显示问题
2025-09-22 12:33:59 +08:00
Windpicker-owo
444f1ca315
ruff,私聊视为提及了bot
2025-09-20 22:34:22 +08:00
雅诺狐
832743249d
refactor(db): 修正SQLAlchemy异步操作调用方式
...
移除session.add()方法的不必要await调用,修正异步数据库操作模式。主要变更包括:
- 将 `await session.add()` 统一改为 `session.add()`
- 修正部分函数调用为异步版本(如消息查询函数)
- 重构SQLAlchemyTransaction为完全异步实现
- 重写napcat_adapter_plugin数据库层以符合异步规范
- 添加aiomysql和aiosqlite依赖支持
2025-09-20 17:26:28 +08:00
雅诺狐
55717669dd
refactor(db): 将数据库操作异步化
...
- 将所有 session.add() 改为 await session.add()
- 将所有 session.commit() 改为 await session.commit()
- 将 session.refresh() 改为 await session.refresh()
2025-09-20 14:35:31 +08:00
tt-P607
8d9aa4fb9e
refactor(db): 重构数据库交互为异步模式
...
为了提升性能并与项目整体的异步架构保持一致,对核心数据库交互模块进行了异步化重构。
主要修改内容包括:
- 将 `PermissionManager` 中的所有数据库操作从同步改为异步,以避免阻塞事件循环。
- 使用 `async_sessionmaker` 和 `async with session` 替代原有的同步会话管理。
- 将 SQLAlchemy 查询语法更新为异步兼容的 `await session.execute(select(...))` 模式。
- 相应地,调用链中依赖数据库操作的多个方法也已更新为 `async` 函数。
2025-09-20 13:07:06 +08:00
tt-P607
57b2e32ba0
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-09-20 12:43:42 +08:00
雅诺狐
7777e1ec71
Update message.py
2025-09-20 12:38:24 +08:00
雅诺狐
d22b3b71fe
小修复
2025-09-20 12:31:05 +08:00
tt-P607
a2b9f963e4
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-09-20 12:26:38 +08:00
tt-P607
a8992cdd51
4次修改
2025-09-20 11:57:22 +08:00
雅诺狐
788190fb11
将AFC合并至Master分支
2025-09-20 11:45:59 +08:00
雅诺狐
898208f425
perf(methods): 通过移除不必要的 self 参数优化方法签名
...
在包括 chat、plugin_system、schedule 和 mais4u 在内的多个模块中,消除冗余的实例引用。此次改动将无需访问实例状态的实用函数转换为静态方法,从而提升了内存效率,并使方法依赖关系更加清晰。
2025-09-20 10:55:06 +08:00
tt-P607
0cc4f5bb27
三次修改
2025-09-20 02:21:53 +08:00
Windpicker-owo
553739f2cd
feat(affinity-flow): 调整回复概率参数和评分计算
...
- 增加最大不回复次数至15次,降低每次不回复的概率提升至1%
- 在最终评分计算中增加1.15倍系数提升
- 被提及时的基础分数从1.0提升至3.0
- 为兴趣标签保存添加数据库验证机制
- 在消息处理流程中增加数据库存储功能
- 修复JSON解析错误处理,增加异常情况下的默认响应
- 优化数据库会话管理和模型转换的健壮性
2025-09-17 13:37:57 +08:00
Windpicker-owo
cdb2344e41
feat(affinity-flow): 优化兴趣度评分系统并集成消息管理器
...
重构兴趣度评分系统,移除时间因子权重,增加未读消息处理机制。集成消息管理器用于消息存储和状态跟踪,改进提及检测逻辑。
主要变更:
- 移除时间因子评分,调整兴趣匹配度权重至0.5
- 添加未读消息参数到规划器,优化兴趣度计算
- 引入消息管理器处理消息存储和状态标记
- 改进提及检测逻辑,使用消息对象的is_mentioned属性
- 添加消息清理和启动/停止机制
BREAKING CHANGE: 兴趣度评分算法调整,需要重新评估消息优先级
2025-09-16 14:13:56 +08:00
Windpicker-owo
0d47e237ee
炸飞hfc,引入afc
2025-09-15 17:51:49 +08:00
BuildTools
69a1f60841
feat(chat): 增强prompt构建功能并优化回复逻辑
...
- 为HfcContext和ChatStream添加focus_energy配置支持
- 修复默认回复生成器中识别自身消息的逻辑
- 完整实现prompt构建中的表达习惯、记忆、工具信息和知识模块
- 优化错误处理,使用原生异常链式传递
- 确保数据库操作中focus_energy字段的持久化
这些改进提升了聊天系统的上下文感知能力和回复质量,同时增强了模块的健壮性和可维护性。
2025-09-12 20:34:31 +08:00
Windpicker-owo
02a636a8ce
plugin_name改为permission_group
2025-09-07 19:03:42 +08:00
Windpicker-owo
90cbd5773e
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-09-06 00:11:31 +08:00
Windpicker-owo
c9b712d8fa
refactor(prompt): 重构并统一提示词系统
...
- 删除旧的智能提示词系统(smart_prompt.py)和相关参数模块(prompt_parameters.py)
- 将 prompt_builder.py 重命名为 prompt.py 并精简功能
- 更新所有模块的导入路径从 `src.chat.utils.prompt_builder` 到 `src.chat.utils.prompt`
- 统一提示词构建接口,使用新的 PromptContext 替代 SmartPromptParameters
- 移除重复和冗余代码,简化系统架构
BREAKING CHANGE: 旧的 SmartPrompt 系统已被完全移除,所有相关模块需要改用新的统一 Prompt 系统
2025-09-06 00:10:54 +08:00
minecraft1024a
513757a8ee
chore: format code and remove redundant blank lines
...
This commit applies automated code formatting across the project. The changes primarily involve removing unnecessary blank lines and ensuring consistent code style, improving readability and maintainability without altering functionality.
2025-09-05 20:58:03 +08:00
minecraft1024a
488e959577
refactor(chat): 重构主动思考逻辑并将其集成到主聊天循环
...
将原有的 `ProactiveThinker` 类中的逻辑直接整合进 `HeartFChatting` 类中。此举简化了整体架构,减少了类之间的耦合,并使得主动思考的触发机制与主聊天循环的状态管理更加统一。
主要变更:
- 删除了独立的 `proactive_thinker.py` 文件。
- 将主动思考的监控循环、条件检查、动态间隔计算等功能实现为 `HeartFChatting` 的私有方法。
- 引入了 `ProactiveTriggerEvent` 事件,使触发源更加明确。
- 调整了相关模块的导入路径和配置项的调用方式,以适应新的结构。
2025-09-05 20:30:35 +08:00
Windpicker-owo
368517267e
fix: at和回复只显示qq号的问题
2025-09-03 17:51:55 +08:00
Windpicker-owo
366dadeb15
迁移:69a855d(feat:保存关键词到message数据库)
2025-09-01 15:24:43 +08:00
Windpicker-owo
9e64806d08
迁移:685c759 (feat:将no_reply功能移动到主循环中)
2025-09-01 14:18:49 +08:00
Windpicker-owo
30e66d5938
Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot
2025-08-31 20:56:35 +08:00
Windpicker-owo
8149731925
修复代码格式和文件名大小写问题
2025-08-31 20:50:17 +08:00
minecraft1024a
d19f211461
refactor(context): 将能量值和睡眠压力状态持久化到数据库
...
将HFC上下文中的能量值(energy_value)和睡眠压力(sleep_pressure)的状态管理从本地文件存储(local_storage)迁移到主数据库。
这一重构的主要改动包括:
- 在`ChatStreams`数据库模型中添加`energy_value`和`sleep_pressure`字段。
- 更新`ChatStream`类,使其能够加载和保存这两个新字段。
- 移除`HfcContext`中原有的基于`local_storage`的加载和保存逻辑,改为直接通过`ChatStream`实例进行状态读写。
- 在`EnergyManager`中,每当能量或睡眠压力发生变化时,调用`save_context_state()`方法,确保状态能够实时持久化。
此举统一了应用的状态管理方式,提高了数据的可靠性和一致性,并为后续在多实例或分布式环境下部署应用奠定了基础。
2025-08-31 13:32:05 +08:00
Windpicker-owo
38212bd351
rust_video依赖检测
2025-08-29 23:35:01 +08:00
Windpicker-owo
2e2fd90497
feat(plugin-system): 添加事件触发和订阅的白名单机制
...
为事件系统添加权限控制功能,包括:
- 在BaseEvent中新增allowed_subscribers和allowed_triggers白名单字段
- 事件管理器触发和订阅时进行白名单验证
- 为所有系统默认事件设置仅允许SYSTEM插件触发
- 在所有事件触发调用处显式传递plugin_name="SYSTEM"参数
确保只有授权插件可以触发特定事件和订阅处理器,增强系统安全性。
2025-08-28 18:25:33 +08:00