Commit Graph

1923 Commits

Author SHA1 Message Date
tt-P607
5e559ee7ea feat(config): 添加配置以切换知识摘要
这在 `lpmm_knowledge` 部分引入了一个新的配置选项 `enable_summary`。用户现在可以将其设置为 `false`,以防止知识库摘要被包含在最终提示上下文中。

这提供了对输出冗长程度的更多控制,并有助于管理令牌消耗。该功能默认启用,以保持现有行为。
2025-11-13 16:27:58 +08:00
Windpicker-owo
9c136e141b feat: 更新 action_type 为 'reply' 并添加 action_parameters 的 JSON 示例 2025-11-13 15:54:08 +08:00
Windpicker-owo
be74c4aa18 fix: 修正 _get_stream_context 方法的类型注解格式 2025-11-13 15:31:32 +08:00
Windpicker-owo
d67b15deae refactor: 延迟导入 StreamContext 以提高类型检查性能 2025-11-13 15:28:18 +08:00
Windpicker-owo
13d6e13991 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-13 15:15:02 +08:00
Windpicker-owo
41e8a17e58 refactor(planner): 移除Normal模式下的引用回复设置以保持对话流畅 2025-11-13 15:14:55 +08:00
minecraft1024a
9f4db5da2b Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-13 15:12:08 +08:00
minecraft1024a
271b4a5285 feat(plugin_system): 新增 mood_api 插件接口 2025-11-13 15:12:01 +08:00
Windpicker-owo
c5178b5e58 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-13 15:10:15 +08:00
Windpicker-owo
bc7228cb3c feat(planner): 使用标准化的JSON格式重构动作规划系统
- 将聊天流和消息管理器中的默认聊天模式从“normal”更改为“focus”
- 从ActionPlannerInfo数据模型中移除已弃用的should_quote_reply字段
- 通过移除回复可用性检查和基于兴趣的过滤,简化计划过滤逻辑
- 采用新的标准化JSON操作格式,并强制使用操作列表结构
- 更新规划器提示,以强制执行一致的动作输出格式
- 移除遗留操作参数过滤,简化消息目标解析
- 清理计划过滤器中未使用的导入和已弃用的代码路径
2025-11-13 15:10:08 +08:00
minecraft1024a
992a1129ce refactor(report): 优化报告样式和数据加载逻辑
- 调整了报告页面的CSS样式,包括颜色、阴影和布局,以提供更专业、现代的视觉效果。
- 改进了从后端向前端JavaScript传递图表数据的方式。现在通过一个独立的`<script>`标签注入JSON字符串,而不是直接嵌入到JS代码中,这增强了鲁棒性并避免了特殊字符导致的解析错误。
- 在JavaScript中增加了对JSON解析和图表数据有效性的检查,以防止因数据格式错误或缺失导致页面渲染失败。
- 将统计模块中的耗时相关键名统一为大写格式,以提高代码一致性。
2025-11-13 14:31:54 +08:00
minecraft1024a
a9f4c422b1 1 2025-11-13 13:13:53 +08:00
minecraft1024a
df2e6eabdc add igorne 2025-11-13 13:13:43 +08:00
Windpicker-owo
1d92f16ce2 feat(plan_filter): 优化动作过滤逻辑,增强对reply和respond动作的可用性检查 2025-11-13 12:51:58 +08:00
minecraft1024a
e1622ca6be refactor(config): 移除废弃的数据库配置模块
旧的数据库配置模块 `src/common/database/config` 已被完全移除。该模块已被标记为废弃,其功能已统一整合到 `global_config` 中。

本次重构旨在:
- 简化代码库,消除冗余和过时的文件。
- 统一配置管理,提高可维护性。

此外,对 `AttentionOptimizer` 中的类变量添加了 `ClassVar` 类型注解,以增强代码的清晰度和类型安全性。
2025-11-13 12:51:42 +08:00
minecraft1024a
7dc4be3555 feat(report): 优化统计报告页面的UI和布局
对生成的HTML统计报告进行了全面的视觉和结构重构,以提供更现代化、更具可读性的用户界面。

- 采用仪表盘式的双栏布局(主内容区和侧边栏),将图表移至侧边栏,使数据表格更聚焦。
- 全面更新了CSS样式,包括配色、字体、卡片、表格和标签页,提升了整体的美观度和用户体验。
- 引入了响应式设计,以更好地适配移动设备。
- 将默认输出文件名从 `maibot_statistics.html` 更改为 `mofox_bot_statistics.html` 以保持项目命名一致性。
2025-11-13 12:47:36 +08:00
minecraft1024a
b1a022cc3c refactor(report): 使用Jinja2模板重构报告生成器
将报告生成逻辑与表示层分离,以提高代码的可维护性和可读性。

- HTML、CSS 和 JavaScript 从 Python f-string 中提取到独立的模板文件中。
- 引入 Jinja2 模板引擎动态渲染报告内容,使未来修改报告样式和结构更加方便,实现了逻辑和视图的分离。
2025-11-13 12:09:37 +08:00
Windpicker-owo
10f5b7d037 feat(persistence): 实现异步保存图存储以提高性能和响应性 2025-11-13 12:02:38 +08:00
minecraft1024a
81b83c88dc Revert "refactor(report): 移除HTML报告生成功能"
This reverts commit bc533880dd.
2025-11-13 11:35:41 +08:00
tt-P607
b1c0ddeb6e Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-13 11:28:38 +08:00
tt-P607
08c1d73f77 refactor(chat):简化和改进回复格式过滤
之前用于过滤 `[回复...]` 格式的实现依赖于多个正则表达式。这种方法比较复杂,并且无法正确处理深度嵌套的回复字符串。

此提交重构了逻辑,采用更简单、更稳健的基于字符串的方法。通过在以 `[回复` 开头的字符串中找到最后一个闭合括号 `]`,新逻辑可以可靠地去除整个回复前缀,无论嵌套深度如何。这提高了解析的准确性,并简化了代码。
2025-11-13 11:28:25 +08:00
minecraft1024a
bc533880dd refactor(report): 移除HTML报告生成功能
移除了HTML报告生成功能,包括 `HTMLReportGenerator` 类及其在统计输出任务中的调用逻辑。

此举旨在简化代码库,剥离一个维护成本较高的功能。删除该组件可以简化统计模块并减少依赖,同时也为未来可能采用更现代、更灵活的报告方案做准备。

BREAKING CHANGE: 系统不再生成HTML格式的统计报告。
2025-11-13 11:26:28 +08:00
tt-P607
0a6a328644 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-13 11:10:26 +08:00
tt-P607
5326c69163 feat(prompt): 添加动态群聊提醒并修复内存搜索
在系统提示中引入动态群聊提醒,使其具备上下文意识。现在仅在对话发生在群聊环境中时注入该提醒,从而防止在私聊中可能引起模型混淆。

这是通过向`PromptParameters`添加`group_chat_reminder_block`实现的,该模块会根据聊天类型有条件地填充。

此外,本次提交还包括修复在内存搜索过程中可能出现的`AttributeError`,确保在尝试使用内存模块之前先进行配置。
2025-11-13 11:10:16 +08:00
minecraft1024a
b0efc8d666 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-13 10:57:37 +08:00
minecraft1024a
a8e8a5d170 feat(report): 为统计报告引入图形化费用分析视图
为增强 HTML 报告的可读性和洞察力,此变更集成了 Chart.js 来将关键的成本数据进行可视化。

现在,报告的每个标签页都会包含一个“数据总览”部分,其中有两个核心图表:
1.  **供应商成本构成图 (饼图)**: 直观展示不同供应商的费用占比,帮助快速定位主要开销来源。
2.  **模型成本排行榜 (条形图)**: 按费用降序排列各个模型,清晰地识别出成本最高的模型。

这些图表是动态生成的,如果统计周期内数据不足,将显示提示信息,避免用户面对空白图表。
2025-11-13 10:56:33 +08:00
Windpicker-owo
b16b57b232 feat(persistence): 使用aiofiles实现异步文件读写以提高性能 2025-11-12 22:59:09 +08:00
Windpicker-owo
a04cfba202 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-12 22:37:47 +08:00
Windpicker-owo
310256e24d feat(attention): 添加注意力优化器以增强提示词多样性和防止注意力退化
refactor(prompt): 使用 asyncio.gather 替代 as_completed 以提升并发性能
refactor(config): 添加注意力优化配置选项
refactor(prompt_params): 增加注意力优化开关
2025-11-12 22:37:35 +08:00
minecraft1024a
87cea527a3 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-12 21:26:24 +08:00
minecraft1024a
89ca1651d9 1 2025-11-12 21:26:21 +08:00
Windpicker-owo
c1cda89d65 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-12 21:19:27 +08:00
Windpicker-owo
17abfc74ae refactor(prompt): 优化任务并发执行逻辑,使用 as_completed 提升性能和错误处理 2025-11-12 21:19:19 +08:00
minecraft1024a
6ef1829072 refactor(statistic): decouple statistics collection from report generation
Introduces a dedicated `HTMLReportGenerator` class in `report_generator.py` to handle all aspects of HTML and chart rendering. This decouples the report presentation logic from the data collection process within `StatisticOutputTask`.

Key changes include:
- Migrated all HTML and JavaScript generation into the new `HTMLReportGenerator`.
- Extracted all statistic key constants into a separate `statistic_keys.py` file for improved organization.
- Renamed `_generate_chart_data` to `_collect_chart_data` to better reflect its purpose.
- Improved data handling robustness by using `.get()` for dictionary access and safely handling database query results.
2025-11-12 20:34:36 +08:00
Windpicker-owo
61d86875ad 更新机器人配置模板,并添加路径扩展算法规范
- 将bot_config_template.toml中的版本号从7.6.7更新为7.6.8。
- 在bot_config_template.toml中添加了用于控制多个回复的配置选项。
- 引入了一份全面的路径扩展算法规范文档,详细介绍了算法概述、核心数据结构、算法流程、性能优化、接口定义和测试用例。
2025-11-12 19:06:11 +08:00
Windpicker-owo
c2dca8cb2a refactor(person_info): 移除内存缓存逻辑,统一使用数据库缓存系统
refactor(plugin): 使用数据库查询替代内存缓存进行用户信息匹配
refactor(message_sender): 优化消息添加到流上下文的逻辑
2025-11-12 17:58:26 +08:00
Windpicker-owo
edce9ff496 refactor(replyer): 优化用户ID获取逻辑,简化自我回复判断 2025-11-12 17:36:12 +08:00
Windpicker-owo
09db6c0c88 refactor: 移除对机器人自身用户ID的特殊处理,统一使用QQ号进行比较 2025-11-12 17:33:51 +08:00
Windpicker-owo
62c3732200 refactor(action_manager): 简化回复处理逻辑,移除多余的参与者信息获取 2025-11-12 16:23:39 +08:00
Windpicker-owo
80736a0deb refactor(distribution_manager): 优化流循环管理逻辑,减少重复代码并改进异常处理
refactor(action_manager): 将异步存储操作改为非阻塞任务,提升性能
refactor(default_generator): 简化回复生成器中的消息处理逻辑
refactor(generator_api): 更新类型提示,增强代码可读性
refactor(affinity_chatter): 清理异常处理中的冗余代码,确保处理标记的正确清理
refactor(affinity_interest_calculator): 重命名阈值调整方法,提升代码一致性
refactor(plan_executor): 移除冗余的已读消息处理逻辑
refactor(planner): 优化规划器中的异常处理,确保正常模式的退出检查
2025-11-12 16:08:52 +08:00
minecraft1024a
66c23e1ba1 style(system): 修正提示词帮助命令的代码格式 2025-11-12 13:51:14 +08:00
minecraft1024a
ac4c592590 refactor(scheduler): 将统一调度器移动至插件系统API
将统一调度器模块从 `src/schedule/` 目录重构至 `src/plugin_system/apis/` 目录下。

这次调整旨在将调度器明确地定位为插件系统的核心API之一,从而改善代码的组织结构和架构清晰度。所有引用该模块的内部导入路径均已同步更新。
2025-11-12 13:47:00 +08:00
Windpicker-owo
d3ffe1c47a Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-12 13:38:12 +08:00
Windpicker-owo
c9ee50aed8 feat(user_profile_tool): 更新好感分数描述,增加评分注意事项以提升用户理解 2025-11-12 13:38:03 +08:00
minecraft1024a
a6c2820dd9 fix(prompt): 通过延迟导入解决循环依赖问题
将 `global_prompt_manager` 的导入操作从模块顶部移动到具体使用它的方法内部。

此举旨在解决 `prompt_component_manager` 和 `prompt` 模块之间潜在的循环导入问题,确保在应用初始化时模块加载顺序的稳定性,避免可能因此引发的 `ImportError`。
2025-11-12 13:24:13 +08:00
minecraft1024a
5dbeebda6b feat(system): 为提示词注入系统提供内省与调试能力
新增 `/system prompt` 命令模块,旨在提升提示词注入系统的透明度,并为管理员提供强大的诊断工具。现在可以深入探查提示词的最终构成方式,这对于追踪非预期的 AI 行为和验证插件注入配置非常有帮助。

该模块提供了一系列查询功能,允许管理员:
- 查看完整的注入依赖图谱
- 枚举所有可注入的目标提示词
- 检索所有已注册的提示词组件及其来源
- 分析特定目标的详细注入信息

所有查询操作均受 `system.prompt.view` 权限保护。
2025-11-12 13:20:50 +08:00
minecraft1024a
0e1e9935b2 style: 统一代码风格并采用现代化类型注解
对整个代码库进行了一次全面的代码风格清理和现代化改造,主要包括:

- 移除了所有文件中多余的行尾空格。
- 将类型提示更新为 PEP 585 和 PEP 604 引入的现代语法(例如,使用 `list` 代替 `List`,使用 `|` 代替 `Optional`)。
- 清理了多个模块中未被使用的导入语句。
- 移除了不含插值变量的冗余 f-string。
- 调整了部分 `__init__.py` 文件中的 `__all__` 导出顺序,以保持一致性。

这些改动旨在提升代码的可读性和可维护性,使其与现代 Python 最佳实践保持一致,但未修改任何核心逻辑。
2025-11-12 12:49:40 +08:00
minecraft1024a
daf8ea7e6a refactor: 清理冗余代码并现代化导入语句
- 将 `typing.Awaitable` 和 `typing.Callable` 的导入更新为 `collections.abc`,以遵循 Python 3.9+ 的最佳实践。
- 移除了 `sorted()` 函数中不必要的 `set` 到 `list` 的转换。
- 清理了 `plugin_system/__init__.py` 中不再需要公开的 `__all__` 条目。
2025-11-12 12:47:55 +08:00
minecraft1024a
623cebf728 docs(prompt): 为 PromptComponentManager 植入详尽的代码文档与注释
为了让提示词注入系统的核心 `PromptComponentManager` 变得更加透明和易于理解,本次提交对代码进行了全面的文档化。此举旨在降低新接手者的认知门槛,并为未来的维护工作铺平道路。

具体而言,我们为类和所有公开方法添加了详细的文档字符串,阐明了其设计哲学、职责边界和参数约定。同时,在关键代码块(如规则数据结构、内容提供者闭包、并发锁的使用)旁增加了内联注释,揭示了其背后的实现考量和工作机制。
2025-11-12 12:46:07 +08:00
minecraft1024a
c76e1ff0e6 fix(prompt): 修复 PromptComponentManager 的方法定义在类外部的问题
将多个本应属于 `PromptComponentManager` 的实例方法(如 `get_injections_for_prompt`, `get_rules_for_target` 等)移回正确的类定义内。

这些方法之前因缩进错误被意外地定义在了类外部,导致它们无法作为实例方法被正确调用。本次提交修正了这个问题,确保了类的封装性和方法的正确作用域。
2025-11-12 12:39:51 +08:00