Windpicker-owo 64bdd0df12 feat(database): 完成API层、Utils层和兼容层重构 (Stage 4-6)
Stage 4: API层重构
=================
新增文件:
- api/crud.py (430行): CRUDBase泛型类,提供12个CRUD方法
  * get, get_by, get_multi, create, update, delete
  * count, exists, get_or_create, bulk_create, bulk_update
  * 集成缓存: 自动缓存读操作,写操作清除缓存
  * 集成批处理: 可选use_batch参数透明使用AdaptiveBatchScheduler

- api/query.py (461行): 高级查询构建器
  * QueryBuilder: 链式调用,MongoDB风格操作符
    - 操作符: __gt, __lt, __gte, __lte, __ne, __in, __nin, __like, __isnull
    - 方法: filter, filter_or, order_by, limit, offset, no_cache
    - 执行: all, first, count, exists, paginate
  * AggregateQuery: 聚合查询
    - sum, avg, max, min, group_by_count

- api/specialized.py (461行): 业务特定API
  * ActionRecords: store_action_info, get_recent_actions
  * Messages: get_chat_history, get_message_count, save_message
  * PersonInfo: get_or_create_person, update_person_affinity
  * ChatStreams: get_or_create_chat_stream, get_active_streams
  * LLMUsage: record_llm_usage, get_usage_statistics
  * UserRelationships: get_user_relationship, update_relationship_affinity

- 更新api/__init__.py: 导出所有API接口

Stage 5: Utils层实现
===================
新增文件:
- utils/decorators.py (320行): 数据库操作装饰器
  * @retry: 自动重试失败操作,指数退避
  * @timeout: 超时控制
  * @cached: 自动缓存函数结果
  * @measure_time: 性能测量,慢查询日志
  * @transactional: 事务管理,自动提交/回滚
  * @db_operation: 组合装饰器

- utils/monitoring.py (330行): 性能监控系统
  * DatabaseMonitor: 单例监控器
  * OperationMetrics: 操作指标 (次数、时间、错误)
  * DatabaseMetrics: 全局指标
    - 连接池统计
    - 缓存命中率
    - 批处理统计
    - 预加载统计
  * 便捷函数: get_monitor, record_operation, print_stats

- 更新utils/__init__.py: 导出装饰器和监控函数

Stage 6: 兼容层实现
==================
新增目录: compatibility/
- adapter.py (370行): 向后兼容适配器
  * 完全兼容旧API签名: db_query, db_save, db_get, store_action_info
  * 支持MongoDB风格操作符 (\, \, \)
  * 内部使用新架构 (QueryBuilder + CRUDBase)
  * 保持返回dict格式不变
  * MODEL_MAPPING: 25个模型映射

- __init__.py: 导出兼容API

更新database/__init__.py:
- 导出核心层 (engine, session, models, migration)
- 导出优化层 (cache, preloader, batch_scheduler)
- 导出API层 (CRUD, Query, 业务API)
- 导出Utils层 (装饰器, 监控)
- 导出兼容层 (db_query, db_save等)

核心特性
========
 类型安全: Generic[T]提供完整类型推断
 缓存透明: 自动缓存,用户无需关心
 批处理透明: 可选批处理,自动优化高频写入
 链式查询: 流畅的API设计
 业务封装: 常用操作封装成便捷函数
 向后兼容: 兼容层保证现有代码无缝迁移
 性能监控: 完整的指标收集和报告

统计数据
========
- 新增文件: 7个
- 代码行数: ~2050行
- API函数: 14个业务API + 6个装饰器
- 兼容函数: 5个 (db_query, db_save, db_get等)

下一步
======
- 更新28个文件的import语句 (从sqlalchemy_database_api迁移)
- 移动旧文件到old/目录
- 编写Stage 4-6的测试
- 集成测试验证兼容性
2025-11-19 23:30:43 +08:00
2025-11-19 23:30:17 +08:00
2025-11-19 23:13:20 +08:00
2025-07-09 17:48:00 +08:00
2025-02-28 00:49:47 +08:00
2025-11-19 22:54:09 +08:00

🌟 MoFox_Bot

🚀 基于 MaiCore 的增强型 AI 智能体,功能更强大,体验更流畅

License Python 3.11+ Pyright Ruff Ask DeepWiki
QQ Group QQ Group


📖 项目简介

MoFox_Bot 是一个基于 MaiCore 0.10.0 snapshot.5 的增强型 fork 项目。我们保留了原项目几乎所有核心功能,并在此基础上进行了深度优化与功能扩展,致力于打造一个更稳定、更智能、更具趣味性的 AI 智能体。

[IMPORTANT] 第三方项目声明

本项目由 MoFox Studio 独立维护,为 MaiBot 的第三方分支,并非官方版本。所有更新与支持均由我们团队负责,与 MaiBot 官方无直接关系。

[WARNING] 迁移风险提示

由于我们对数据库结构进行了重构与优化,从官方 MaiBot 直接迁移至 MoFox_Bot 可能导致数据不兼容。请在迁移前务必备份原始数据,以避免信息丢失。


核心功能

🔧 原版功能(全部保留)

  • 🔌 强大插件系统 - 全面重构的插件架构,支持完整的管理 API 和权限控制
  • 💭 实时思维系统 - 模拟人类思考过程
  • 📚 表达学习功能 - 学习群友的说话风格和表达方式
  • 😊 情感表达系统 - 情绪系统和表情包系统
  • 🧠 持久记忆系统 - 基于图的长期记忆存储
  • 🎭 动态人格系统 - 自适应的性格特征和表达方式
  • 📊 数据分析 - 内置数据统计和分析功能,更好了解麦麦状态

🚀 拓展功能

  • 🧠 AFC 智能对话 - 基于亲和力流,实现兴趣感知和动态关系构建
  • 🔄 数据库切换 - 支持 SQLite 与 MySQL 自由切换,采用 SQLAlchemy 2.0 重新构建
  • 🛡️ 反注入集成 - 内置一整套回复前注入过滤系统,为人格保驾护航
  • 🎥 视频分析 - 支持多种视频识别模式,拓展原版视觉
  • 😴 苏醒系统 - 能够睡觉、失眠、被吵醒,更具乐趣
  • 📅 日程系统 - 让墨狐规划每一天
  • 🧠 拓展记忆系统 - 支持瞬时记忆等多种记忆
  • 🎪 完善的 Event - 支持动态事件注册和处理器订阅,并实现了聚合结果管理
  • 🔍 内嵌魔改插件 - 内置联网搜索等诸多功能,等你来探索
  • 🔌 MCP 协议支持 - 集成 Model Context Protocol支持外部工具服务器连接仅 Streamable HTTP
  • 🌟 还有更多 - 请参阅详细修改 commits

🔧 系统要求

💻 基础环境

项目 要求
🖥️ 操作系统 Windows 10/11、macOS 10.14+、Linux (Ubuntu 18.04+)
🐍 Python 版本 Python 3.10 或更高版本
💾 内存 建议 ≥ 4GB 可用内存
💿 存储空间 建议 ≥ 2GB 可用空间

🛠️ 依赖服务

服务 描述
🤖 QQ 协议端 NapCatQQ 或其他兼容协议端
🗃️ 数据库 SQLite默认或 MySQL可选
🔧 管理工具 Chat2DB可选用于数据库可视化管理

🏁 快速开始

📦 安装与部署

Note

详细安装与配置指南请参考官方文档:

⚙️ 配置要点

  1. 📝 核心配置:编辑 config/bot_config.toml,设置 LLM API Key、Bot 名称等基础参数。
  2. 🤖 协议端配置:确保使用 NapCatQQ 或兼容协议端,建立稳定通信。
  3. 🗃️ 数据库配置:选择 SQLite默认或配置 MySQL 数据库连接。
  4. 🔌 插件配置:在 config/plugins/ 目录中启用或配置所需插件。

🙏 致谢

我们衷心感谢以下开源项目为本项目提供的坚实基础:

项目 描述 贡献
🎯 MaiM-with-u/MaiBot 原版 MaiBot 框架 提供核心架构与设计
🐱 NapNeko/NapCatQQ 高性能 QQ 协议端 实现稳定通信
🌌 internetsb/Maizone 魔改空间插件 功能借鉴与启发

⚠️ 重要提示

Caution

请务必阅读以下内容:

  • 本项目使用前,请仔细阅读并同意 用户协议 (EULA.md)
  • 本应用生成的内容由 AI 大模型提供,请谨慎甄别其准确性。
  • 请勿将 AI 生成内容用于任何违法、违规或不当用途。
  • 所有 AI 输出不代表 MoFox Studio 的立场或观点。

📄 开源协议

本项目基于 GPL-3.0 协议开源。

GPL-3.0

                                   Copyright © 2025 MoFox Studio
                            Licensed under the GNU General Public License v3.0

🌟 如果这个项目对你有帮助,请给我们一个 Star

💬 有任何问题或建议?欢迎提交 Issue 或 Pull Request

💬 点击加入 QQ 交流群

Made with ❤️ by MoFox Studio

Description
No description provided
Readme GPL-3.0 73 MiB
Languages
Python 97.2%
HTML 1.7%
JavaScript 0.9%
CSS 0.2%