minecraft1024a
fe9d99e7fa
refactor(plugin_system): 将依赖检查逻辑从插件基类移至插件管理器
...
将插件的Python包依赖和插件间依赖的检查逻辑,从各个插件实例的初始化阶段 (`PluginBase`),统一前置到插件模块加载阶段 (`PluginManager`)。
这一重构有以下好处:
- **提前失败 (Fail-fast)**:在加载插件模块时立即检查依赖,如果依赖不满足,则直接跳过该插件的加载和实例化,避免了不必要的资源消耗和后续的运行时错误。
- **职责单一**: `PluginManager` 负责插件的发现、加载和依赖管理,而 `PluginBase` 更专注于插件自身的业务逻辑和生命周期,使得代码结构更清晰。
- **配置中心化**: 依赖关系现在统一在 `__plugin_meta__` 中声明,而不是分散在插件类的属性中,提高了可维护性。
- **简化插件实现**: 插件开发者不再需要在插件类中定义 `dependencies` 和 `python_dependencies` 属性,只需在 `__init__.py` 中声明元数据即可。
2025-10-25 21:56:27 +08:00
minecraft1024a
ad9f06b85a
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-25 21:24:58 +08:00
minecraft1024a
ee7a37ce70
feat(plugin_system): 引入高级Prompt注入规则系统以取代旧注入点机制
...
引入了一套全新的、基于规则的Prompt注入系统,以取代原有的 `injection_point` 机制。这套新系统提供了更强大、更灵活的Prompt内容注入能力。
主要变更包括:
- **引入 `InjectionRule` 和 `InjectionType`**:定义了注入规则的数据结构和注入类型(如 `PREPEND`, `APPEND`, `REPLACE`, `REMOVE`, `INSERT_AFTER`),允许插件开发者精确控制注入行为。
- **重构 `PromptComponentManager`**:核心逻辑从简单地拼接字符串 (`execute_components_for`) 重构为按优先级应用注入规则 (`apply_injections`),支持正则表达式匹配和更复杂的注入操作。
- **向后兼容**:`PromptInfo` 中增加了兼容逻辑,能自动将旧的 `injection_point` 定义转换为新的 `injection_rules`,确保现有插件无需立即修改即可正常工作。
- **更新 `BasePrompt`**:废弃了 `injection_point` 属性,并推荐使用新的 `injection_rules` 属性。
- **更新示例插件**:`hello_world_plugin` 已更新,展示了新注入规则的使用方法。
BREAKING CHANGE: `BasePrompt` 中的 `injection_point` 属性已被废弃。虽然目前存在向后兼容逻辑,但未来版本将移除该属性。所有Prompt组件都应迁移至使用 `injection_rules` 以获得更强的控制力和未来的兼容性。
2025-10-25 21:24:51 +08:00
tt-P607
c4b7f2437d
fix: 增强系统健壮性,优化核心组件的错误处理
...
在多个核心模块中增加了前置检查和更详细的错误处理逻辑,以防止因组件初始化失败或外部数据格式不符预期而导致的运行时崩溃。
主要变更:
- **记忆系统:** 在执行记忆构建、融合和价值评估前,增加对相关引擎是否初始化的检查。优化了向量数据库初始化失败时的处理流程,并增强了向量搜索结果的解析安全性。
- **插件系统:** 统一并优化了LLM可用工具定义的获取方式,增加了错误捕获。调整了工具执行器以安全地解析LLM返回的工具调用请求。
- **向量数据库:** 当ChromaDB连接失败时,显式抛出 `ConnectionError`,使上层调用者能更好地捕获和处理该特定问题。
2025-10-25 21:09:26 +08:00
明天好像没什么
0381320859
revert(mcp): 移除MCP SSE客户端及工具集成支持
2025-10-25 16:16:23 +08:00
minecraft1024a
3c4a3b0428
chore: 统一代码风格并进行现代化改造
...
本次提交主要包含以下内容:
- **代码风格统一**:对多个文件进行了格式化,包括移除多余的空行、调整导入顺序、统一字符串引号等,以提高代码一致性和可读性。
- **类型提示现代化**:在多个文件中将旧的 `typing` 模块类型提示(如 `Optional[T]`、`List[T]`、`Union[T, U]`)更新为现代 Python 语法(`T | None`、`list[T]`、`T | U`)。
- **f-string 格式化**:在 `scripts/convert_manifest.py` 中,将 `.format()` 调用更新为更现代和易读的 f-string `!r` 表示法。
- **文件末尾换行符**:为多个文件添加或修正了文件末尾的换行符,遵循 POSIX 标准。
2025-10-25 13:31:22 +08:00
minecraft1024a
5fc9d1b9da
refactor(schedule_api): 重构日程与计划API为只读数据库查询
...
将日程API从依赖`schedule_manager`的内存状态改为直接从数据库异步查询。这提高了数据一致性,并解除了模块间的紧密耦合。
主要变更:
- **解耦**: 移除对`schedule_manager`的依赖,所有数据直接来自数据库。
- **只读设计**: 移除了`regenerate_schedule`, `ensure_monthly_plans`, `archive_monthly_plans`等写操作API,使API职责更清晰,专注于查询。
- **功能增强**:
- `get_schedule` (原`get_today_schedule`) 现在支持查询任意日期的日程。
- `get_monthly_plans` 新增随机抽样功能。
- 新增`get_activities_between`用于查询特定时间范围的活动。
- 新增`count_monthly_plans`用于统计月度计划数量。
- **格式化输出**: 所有查询函数均增加了`formatted`参数,方便插件直接获取格式化后的字符串。
- **文档更新**: 全面更新了模块和函数的文档字符串,以反映新的API设计和用法。
2025-10-25 13:29:49 +08:00
minecraft1024a
07cf6e4074
feat(plugin): 为插件系统提供本地存储API
...
新增了一个集成的本地存储API,允许插件以键值对的形式持久化数据到本地JSON文件。该API通过 `get_local_storage(name)` 函数为每个插件提供一个独立的、线程安全的存储实例。
主要功能包括:
- 动态创建和管理插件的JSON数据文件。
- 提供 `get`, `set`, `add`, `update`, `delete` 等标准数据操作方法。
- 确保文件读写操作的线程安全。
- 实现了数据缓存以提高性能。
2025-10-25 11:27:21 +08:00
minecraft1024a
110dc9f27b
refactor(plugin): 适配 message 对象的 plain_text 字段重命名
...
将 `PlusCommand` 基类中对 `message.plain_text` 的引用更新为 `message.processed_plain_text`,以适配 `Message` 数据结构的变更。同时,优化了群聊判断逻辑,直接使用 `group_id` 进行判断。
2025-10-25 10:23:00 +08:00
tt-P607
08b990eb70
聊天记录互通完全回归 😋
2025-10-20 10:57:02 +08:00
tt-P607
30f2f1345c
perf(cross_context): 优化S4U上下文生成性能与逻辑
...
通过引入批量数据库查询,显著提升了跨群聊上下文(S4U)功能的性能和效率。旧的实现方式会对每个群聊进行一次数据库查询,导致在群聊数量多时性能低下。
主要变更:
- 在 `message_repository` 中新增 `get_user_messages_from_streams` 函数,使用 CTE 和 `row_number()` 在单个请求中高效检索所有目标聊天流中的用户消息。
- 重构 `build_cross_context_s4u` 以使用新的批量查询方法,大幅减少了数据库I/O和应用层循环。
- 增强了私聊场景下的逻辑,会同时获取机器人的消息以提供更完整的对话历史。
- 改进了私聊上下文的标题,使其对用户更加友好。
- 为S4U流程添加了更详细的日志,便于问题排查。
2025-10-20 09:25:27 +08:00
minecraft1024a
50a6c2de58
feat(plugin): 引入Prompt组件系统以实现动态Prompt注入
...
引入了一个新的插件组件类型 `BasePrompt`,允许插件动态地向核心Prompt模板中注入额外的上下文信息。该系统旨在提高Prompt的可扩展性和可定制性,使得开发者可以在不修改核心代码的情况下,通过插件来丰富和调整模型的行为。
主要变更包括:
- **`BasePrompt` 基类**: 定义了Prompt组件的标准接口,包括 `execute` 方法用于生成注入内容,以及 `injection_point` 属性用于指定目标Prompt。
- **`PromptComponentManager`**: 一个新的管理器,负责注册、分类和执行所有 `BasePrompt` 组件。它会在构建核心Prompt时,自动查找并执行相关组件,将其输出拼接到主Prompt内容之前。
- **核心Prompt逻辑更新**: `src.chat.utils.prompt.Prompt` 类现在会调用 `PromptComponentManager` 来获取并注入组件内容。
- **插件系统集成**: `ComponentRegistry` 和 `PluginManager` 已更新,以支持 `BasePrompt` 组件的注册、管理和统计。
- **示例插件更新**: `hello_world_plugin` 中增加了一个 `WeatherPrompt` 示例,演示了如何创建和注册一个新的Prompt组件。
- **代码重构**: 将 `PromptParameters` 类从 `prompt.py` 移动到独立的 `prompt_params.py` 文件中,以改善模块化和解决循环依赖问题。
2025-10-19 13:00:23 +08:00
minecraft1024a
c9c2de40ee
chore(scripts): 移除过时的一次性脚本
...
移除了两个用于项目重构的一次性脚本:
- `convert_sqlalchemy_models.py`:用于将 SQLAlchemy 模型从旧版 `Column` 语法转换为 `Mapped` 语法。
- `update_prompt_imports.py`:用于批量更新 `Prompt` 类的导入路径。
这些脚本已完成其历史使命,不再需要维护。
同时,对插件加载日志和 manifest 转换脚本进行了小幅改进:
- 插件加载日志现在会显示组件的简短描述,方便快速了解其功能。
- manifest 转换脚本增加了对更多元数据字段(如仓库地址、关键字、分类等)的支持。
2025-10-18 19:22:34 +08:00
minecraft1024a
8c97774465
ruff ci
2025-10-18 11:11:05 +08:00
Windpicker-owo
f22e6365cc
feat(action): 重构 Action 激活机制并添加 go_activate() 方法
...
引入新的 Action 激活机制,允许通过重写 go_activate() 方法来自定义激活逻辑。提供了三个工具函数:
- _random_activation(): 随机概率激活
- _keyword_match(): 关键词匹配激活
- _llm_judge_activation(): LLM 智能判断激活
主要变更:
- 在 BaseAction 中添加 go_activate() 抽象方法和相关工具函数
- 更新 ActionModifier 使用新的激活判断逻辑
- 在 hello_world_plugin 中添加新的激活方式示例
- 更新文档说明新的激活机制
- 保持向后兼容,旧的激活类型配置仍然可用
BREAKING CHANGE: Action 激活判断现在通过 go_activate() 方法进行,旧的激活类型字段已标记为废弃但仍然兼容
2025-10-17 20:16:15 +08:00
minecraft1024a
c01607b17b
chore: 代码清理和格式化
...
对项目代码进行了一系列小幅度的清理和改进,包括:
- 移除未使用的导入语句
- 统一代码格式,如调整空行和导入顺序
- 优化日志输出的可读性
- 更新类型注解以符合现代 Python 语法
- 修复代码风格检查器(linter)报告的问题
2025-10-12 12:41:05 +08:00
minecraft1024a
d10f0e81cb
refactor(cross_context): 重构S4U上下文检索逻辑并更新配置
...
将S4U(Search for User)上下文检索模式从依赖于共享组(ContextGroup)的配置中解耦,改为使用独立的全局配置。这使得S4U模式的管理更加清晰和灵活。
主要变更:
- **配置模型更新**: 在`CrossContextConfig`中移除了与S4U相关的字段(如`s4u_ignore_whitelist`),并添加了新的S4U专用配置项,包括`s4u_mode`, `s4u_limit`, `s4u_stream_limit`, `s4u_whitelist_chats`, 和 `s4u_blacklist_chats`。
- **S4U逻辑重构**: `build_cross_context_s4u`函数不再接收`context_group`参数,而是直接读取全局的S4U配置来检索用户在白名单或黑名单聊天中的消息。
- **简化调用**: `Prompt.get_cross_context_prompt`中的调用逻辑被简化,以适应新的函数签名。
- **文档与模板更新**: 更新了`bot_config_template.toml`配置文件模板,以反映新的S4U配置结构,并提供了更清晰的注释说明。
此次重构将Normal模式(群组共享)和S4U模式(用户中心)的配置和实现完全分离,提高了代码的可维护性和配置的直观性。
2025-10-12 12:38:13 +08:00
minecraft1024a
1fb01ef8a5
refactor(cross_context): 重构互通组上下文获取逻辑
...
重构并简化了互通组上下文的获取函数 `get_intercom_group_context`。旧的 `get_chat_history_by_group_name` 和 `get_intercom_group_context_by_name` 函数被合并和优化。
主要变更:
- 移除了冗余的 `get_chat_history_by_group_name` 函数。
- 将 `get_intercom_group_context_by_name` 重命名为 `get_intercom_group_context`,并简化了其参数。
- 增加了对黑名单模式的支持,现在可以正确地从所有聊天中排除指定会话。
- 优化了消息获取和格式化流程,现在按聊天会话分块返回消息,而不是将所有消息混合在一起排序,提高了上下文的可读性。
- 清理了代码格式和移除了未使用的导入。
2025-10-11 20:56:15 +08:00
minecraft1024a
3040000531
refactor: 将项目名称从 MaiBot 重命名为 MoFox-Bot
...
本次更新在整个代码库范围内将项目名称 "MaiBot" 及其相关变体(如 "maibot")统一重命名为 "MoFox-Bot"。
主要变更包括:
- 修改配置文件、模板和日志输出中的项目名称。
- 更新文档、注释和用户可见的字符串,以反映新的品牌名称。
- 调整插件元数据和描述。
2025-10-11 20:46:00 +08:00
minecraft1024a
f7ed5211a3
feat(context): 增加跨上下文黑名单模式
...
为跨上下文共享功能引入了黑名单模式,并增加了相应的配置选项。
- 在 `ContextGroup` 配置中增加了 `mode` 字段,支持 "whitelist"(白名单)和 "blacklist"(黑名单)模式。
- 增加了 `default_limit` 配置项,用于黑名单模式下的默认消息获取数量。
- 重构了 `cross_context_api` 以支持新的黑名单逻辑,现在可以共享除了黑名单中指定聊天外的所有聊天上下文。
- 更新了配置文件模板以包含新模式的说明和示例。
2025-10-11 19:45:32 +08:00
minecraft1024a
419d1a483a
feat(context): 增强s4u跨上下文模式并重构API
...
在跨上下文功能中为s4u模式引入`s4u_ignore_whitelist`配置项。当启用时,除了白名单中配置的聊天记录外,还会自动获取目标用户与Bot的私聊记录,以构建更全面的用户画像。
主要变更:
- 在 `ContextGroup` 配置中添加 `s4u_ignore_whitelist` 字段。
- 重构 `cross_context_api`,将 `get_context_groups` 更改为 `get_context_group`,使其返回完整的 `ContextGroup` 对象而非仅ID列表,以便于访问新配置。
- 调整 `build_cross_context_s4u` 函数以处理新逻辑,包括获取私聊记录和避免重复处理。
- 更新了配置文件模板以包含新选项的说明和示例。
2025-10-11 19:19:52 +08:00
minecraft1024a
b3956c2fa6
feat(cross_context): 支持为跨上下文聊天指定消息数量
...
允许用户在配置文件中为每个聊天流(群聊或私聊)单独设置要检索的历史消息数量(limit)。如果未指定,则默认为5条。
- 更新了 `build_cross_context_normal` 和 `build_cross_context_s4u` 方法以解析和使用这个新的 `limit` 参数。
- 在S4U(Search for User)模式下,获取的消息数量调整为 `limit` 的4倍,以确保有足够的消息可供筛选。
- 更新了配置文件模板 `bot_config_template.toml` 以反映此项新功能,并提供了示例。
2025-10-11 19:02:09 +08:00
minecraft1024a
604b5bc4ac
Revert "feat(cross_context): 新增以用户为中心的跨上下文检索功能"
...
This reverts commit e9c0b8bf9a .
2025-10-11 18:54:49 +08:00
minecraft1024a
3172f36fa5
Revert "feat(cross_context): 优化跨上下文检索,区分群聊与私聊记录"
...
This reverts commit f09af9fe56 .
2025-10-11 18:54:42 +08:00
tt-P607
f09af9fe56
feat(cross_context): 优化跨上下文检索,区分群聊与私聊记录
...
先前的实现中,在获取以用户为中心的上下文时,对所有聊天类型都只提取该用户的发言记录。
这在私聊场景下会导致上下文不完整,因为缺少了另一方(机器人)的消息。
本次更新通过判断聊天类型,实现了差异化的上下文获取:
- **群聊**: 保持原有逻辑,只获取目标用户的近期发言。
- **私聊**: 获取完整的近期双向聊天记录,以提供更全面的对话背景。
2025-10-10 19:17:07 +08:00
tt-P607
e9c0b8bf9a
feat(cross_context): 新增以用户为中心的跨上下文检索功能
...
引入了一种全新的“用户中心”跨上下文检索模式,以替代并废弃了原有的固定共享组模式。
当回复特定用户时,系统现在可以自动从该用户参与的其他聊天(包括私聊和群聊)中检索其最近的发言记录,从而为大语言模型提供更丰富、更具个性化的上下文,以生成更相关的回复。
此功能可通过配置进行精细化控制,支持“全局启用”、“白名单”和“禁用”三种模式,并可设置检索的消息数量和聊天流数量上限。
此外,本次更新还包含一些健壮性修复:
- 修正了事件管理器返回结果可能为None时导致属性错误的潜在问题。
- 增强了对消息内容和用户昵称等可能为空值的处理。
BREAKING CHANGE: `cross_context` 的配置结构已完全重构。原有的 `groups` 配置项已被废弃。请用户根据新的 `bot_config_template.toml` 文件更新配置,迁移到新的 `user_centric_retrieval_mode`、`whitelist_chats` 和 `blacklist_chats` 格式。
2025-10-10 19:08:30 +08:00
minecraft1024a
4f9b31d188
refactor(core): 统一代码风格并移除未使用的导入
...
本次提交主要进行代码风格的统一和现代化改造,具体包括:
- 使用 `|` 联合类型替代 `typing.Optional`,以符合 PEP 604 的现代语法。
- 移除多个文件中未被使用的导入语句,清理代码。
- 调整了部分日志输出的级别,使其更符合调试场景。
- 统一了部分文件的导入顺序和格式。
2025-10-07 20:16:47 +08:00
雅诺狐
93203daa94
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-07 16:29:24 +08:00
雅诺狐
6659c60799
refactor(db,plugin): 优化数据库初始化和插件系统类型安全
...
- 重构数据库初始化逻辑,添加防重入保护和更好的错误处理
- 优化插件组件注册系统的类型注解和代码结构
- 简化统计模块异常处理逻辑
- 移除插件管理器中的重载功能以简化代码
- 更新Pyright配置排除内置插件目录
- 修复权限管理器异步方法调用
2025-10-07 16:29:17 +08:00
Windpicker-owo
1381e7f700
refactor(scoring): 重构评分系统使用统一API替代插件内部实现
...
将原有的兴趣度评分系统重构为使用统一的评分API,移除了插件内部实现并更新了所有相关引用。主要变更包括:
- 替换 chatter_interest_scoring_system 为 scoring_api
- 移除 interest_scoring.py 文件,统一使用 src/plugin_system/apis/scoring_api
- 更新关系追踪器以使用统一API,保持向后兼容性
- 简化了多个模块中的关系分获取逻辑
2025-10-07 14:41:49 +08:00
雅诺狐
e83e0d9ff2
refactor: 优化异步调用和权限系统架构
...
- 移除bot.py中不必要的asyncio.to_thread包装
- 将权限API的is_master方法改为异步调用
- 删除不再使用的SQLAlchemyTransaction类
2025-10-06 21:02:38 +08:00
minecraft1024a
b7a255c4ae
feat(plugin-system): 引入插件权限节点声明式注册机制,解决了issue#24
...
重构了插件权限节点的注册方式,从原先在 `on_plugin_loaded` 钩子中调用 API 的命令式注册,改为通过在插件类中声明 `permission_nodes` 列表的声明式注册。
这一改进有以下优点:
- **简化插件开发**:插件开发者不再需要在代码中手动调用注册函数,只需在类属性中定义权限节点即可,更加直观和简洁。
- **提升核心健壮性**:权限节点的注册逻辑统一由插件管理器在加载时处理,减少了因插件实现不当导致注册失败或遗漏的风险。
- **增强可读性**:所有权限节点集中定义在插件类的顶部,方便快速了解插件所需的权限。
此变更涉及:
- 新增 `PermissionNodeField` 类型用于标准化权限节点定义。
- 在 `PluginBase` 中添加 `permission_nodes` 属性。
- 在 `PluginManager` 中实现插件加载时自动注册权限节点的逻辑。
- 更新 `maizone_refactored` 和 `permission_management` 插件以适应新的声明式注册方式。
2025-10-06 13:26:24 +08:00
sunbiz1024
8f4f7d19af
ruff
2025-10-06 09:38:16 +08:00
minecraft1024a
9d705463ce
ruff fix但指定了--unsafe-fixes
2025-10-05 21:48:32 +08:00
minecraft1024a
0b4e1f5b7b
feat(cross_context): 排除maizone专用上下文组
...
在获取互通上下文组时,增加了一个判断条件,以排除名为 "maizone_context_group" 的专用组。这可以防止该特定组的上下文信息被意外地泄露给其他不相关的聊天。
2025-10-05 21:44:34 +08:00
minecraft1024a
91034ea4de
refactor(cross_context): 提取互通组上下文获取逻辑为通用API
...
将原本在 `maizone` 插件中用于获取互通组聊天上下文的逻辑,提取并重构为一个更通用的 `cross_context_api.get_intercom_group_context_by_name` 函数。
这次重构提高了代码的模块化和复用性,使得其他需要跨聊天上下文功能的插件也能方便地调用此API,而无需重复实现相似的逻辑。`maizone` 插件现在直接调用这个新的API来获取上下文,简化了其内部实现。
2025-10-05 21:44:14 +08:00
minecraft1024a
7a7f737f71
ruff: 清理代码并规范导入顺序
...
对整个代码库进行了大规模的清理和重构,主要包括:
- 统一并修复了多个文件中的 `import` 语句顺序,使其符合 PEP 8 规范。
- 移除了大量未使用的导入和变量,减少了代码冗余。
- 修复了多处代码风格问题,例如多余的空行、不一致的引号使用等。
- 简化了异常处理逻辑,移除了不必要的 `noqa` 注释。
- 在多个文件中使用了更现代的类型注解语法(例如 `list[str]` 替代 `List[str]`)。
2025-10-05 20:38:56 +08:00
subiz
d463d0a21a
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-05 19:25:06 +08:00
subiz
43fe6046b4
没想到吧,我还是没测试()
...
feat(mcp): 集成MCP SSE协议支持并扩展工具调用能力
新增MCP客户端类型(mcp_ssd),支持通过Model Context Protocol连接外部工具服务器。
更新文档和配置模板,提供完整的MCP接入指南;主程序启动时自动初始化MCP工具提供器,
tool_api 与 tool_use 核心链路新增对MCP工具的检测与调用,实现与既有插件工具的无缝兼容。
同步更新配置模型、模板与帮助文档。
2025-10-05 19:24:57 +08:00
tt-P607
9fee569848
是谁连续写了两遍 async def get_replyer(,我不说 🤪
2025-10-05 18:57:08 +08:00
Windpicker-owo
fbe35d1d01
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-05 18:31:56 +08:00
Windpicker-owo
3e37b7cef5
refactor(chat): 统一异步调用模式并修复循环依赖
...
- 将 chat_manager.get_stream() 调用改为异步
- 将 replyer_manager.get_replyer() 方法改为异步
- 在 generator_api 中使用动态导入避免循环依赖
- 在 action_manager 中添加待处理动作队列清理
- 更新所有相关调用点以支持异步模式
2025-10-05 18:30:16 +08:00
雅诺狐
efc4f7a13e
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-05 17:50:13 +08:00
雅诺狐
86377d983f
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-10-05 17:48:28 +08:00
Windpicker-owo
c808d6a0ef
feat(chat): 实现批量动作存储并优化消息处理流程
...
新增批量动作记录存储功能,提升数据库写入性能。重构消息预处理逻辑,改进兴趣度计算和同步机制,优化用户信息和群组信息处理。添加配置选项控制批量存储开关,更新相关模板配置。
2025-10-05 17:45:44 +08:00
雅诺狐
f4404e09ef
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-05 16:35:59 +08:00
雅诺狐
29cf3e3fbc
Refactor memory metadata index to use Rust backend
...
Replaces the Python implementation of MemoryMetadataIndex with a Rust-accelerated version, removing legacy code and fallback logic. Updates search, add, and stats methods to delegate to the Rust backend. Also adds missing imports in llm_data_model.py and base_event.py for improved type support and event handling.
2025-10-05 16:35:31 +08:00
minecraft1024a
2c74b472ab
style: 统一代码风格并进行现代化改进
...
对整个代码库进行了一次全面的风格统一和现代化改进。主要变更包括:
- 将 `hasattr` 等内置函数中的字符串参数从单引号 `'` 统一为双引号 `"`。
- 采用现代类型注解,例如将 `Optional[T]` 替换为 `T | None`,`List[T]` 替换为 `list[T]` 等。
- 移除不再需要的 Python 2 兼容性声明 `# -*- coding: utf-8 -*-`。
- 清理了多余的空行、注释和未使用的导入。
- 统一了文件末尾的换行符。
- 优化了部分日志输出和字符串格式化 (`f"{e!s}"`)。
这些改动旨在提升代码的可读性、一致性和可维护性,使其更符合现代 Python 编码规范。
2025-10-05 13:21:27 +08:00
Windpicker-owo
8e0d1e791b
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-05 01:29:48 +08:00
Windpicker-owo
624298e1b8
refactor(chat): 异步化聊天系统并重构兴趣值计算机制
...
将同步调用改为异步调用以提升性能,重构兴趣值计算流程以支持更灵活的组件化架构。主要改进包括:
- 异步化ChatManager相关方法,避免阻塞主线程
- 重构兴趣值计算系统,从插件内部计算改为通过兴趣管理器统一处理
- 新增should_act字段支持更细粒度的动作决策
- 优化初始化逻辑,避免构造函数中的异步操作
- 扩展插件系统支持兴趣计算器组件注册
- 更新数据库模型以支持新的兴趣值相关字段
这些改进提升了系统的响应性能和可扩展性,同时保持了API的向后兼容性。
2025-10-05 01:25:52 +08:00