Commit Graph

8002 Commits

Author SHA1 Message Date
ikun-11451
46359a8933 应该是把私聊必回加回来了喵? 2025-11-30 21:51:09 +08:00
Windpicker-owo
35c4937068 feat: 优化 KFC 主提示词模板,调整结构和字段说明,增强可读性 2025-11-30 21:35:17 +08:00
Windpicker-owo
a1feae99cc Merge branch 'feature/kfc' of https://github.com/MoFox-Studio/MoFox-Core into feature/kfc 2025-11-30 21:01:09 +08:00
Windpicker-owo
9d0488ef5a feat: 重构 KFC 回复动作,优化回复生成流程和上下文注入 2025-11-30 21:01:02 +08:00
tt-P607
967f0c063e Merge branch 'feature/kfc' of https://github.com/MoFox-Studio/MoFox-Core into feature/kfc 2025-11-30 20:45:31 +08:00
tt-P607
f4c31ddce7 feat(scripts): 增强数据库迁移工具,支持自动修复 PostgreSQL 问题
- 新增 fix_postgresql_boolean_columns(): 自动将 SQLite INTEGER 布尔列转换为 PostgreSQL BOOLEAN
- 新增 fix_postgresql_sequences(): 迁移后自动重置序列值,避免主键冲突
- 迁移完成后自动执行上述修复,无需手动干预
- 批量插入失败时自动降级为逐行插入,最大程度保留数据
- 新增 --only-tables 和 --no-create-tables 参数支持增量迁移
- 移除 reset_pg_sequences.py(功能已整合到主脚本)
2025-11-30 20:45:23 +08:00
Windpicker-owo
1288fd6cf7 feat: 添加主动思考配置选项,优化问候功能和触发概率设置 2025-11-30 20:41:30 +08:00
Windpicker-owo
6330faa793 feat: 移除戳一戳动作的显示消息,简化发送逻辑 2025-11-30 20:33:49 +08:00
Windpicker-owo
b148463f66 feat: 优化主动思考器和提示词构建逻辑,新增用户关系和等待思考提示词模板 2025-11-30 20:20:23 +08:00
Windpicker-owo
c45f0e9cea feat: 添加获取用户名称的方法,优化超时决策和主动思考中的用户名处理 2025-11-30 19:54:36 +08:00
Windpicker-owo
8e26a5f58c feat: 重构Kokoro Flow Chatter,新增规划器和回复生成器,优化提示词构建逻辑 2025-11-30 18:50:21 +08:00
Windpicker-owo
673da5cc8b feat: 更新提示词构建逻辑,增强说话风格提示信息 2025-11-30 17:48:05 +08:00
Windpicker-owo
7eb784f137 feat: 实施Kokoro Flow Chatter提示管理系统
- 在Kokoro Flow Chatter中添加提示模块以管理提示信息。
引入PromptBuilder,用于根据会话上下文构建提示。
- 为各种场景创建提示模板,包括用户消息、机器人规划和等待更新。
- 开发一个回复模块,使用LLM API生成回复。
- 建立会话管理机制,以处理用户交互并维护会话状态。
- 实现日志记录功能,以便更好地追踪操作和错误。
2025-11-30 17:17:14 +08:00
Windpicker-owo
d11c56524c Merge branch 'feature/kfc' of https://github.com/MoFox-Studio/MoFox-Core into feature/kfc 2025-11-30 17:08:48 +08:00
Windpicker-owo
109468a808 feat: 更新KFC V2配置和提示词构建逻辑,支持多种配置项和上下文数据整合 2025-11-30 16:50:15 +08:00
Windpicker-owo
252e8620e1 feat: 重命名Kokoro Flow Chatter V2为Kokoro Flow Chatter,更新相关模块和配置 2025-11-30 16:16:22 +08:00
Windpicker-owo
c6f34992d1 feat(KFC): 更新聊天处理器和回复模块,优化动作名称及上下文构建逻辑 2025-11-30 15:52:01 +08:00
Windpicker-owo
fc85338d0b feat: 更新消息管理和数据库操作日志,增强调试信息 2025-11-30 15:13:01 +08:00
Windpicker-owo
1750004ffa feat: 添加KFC V2专属动作模块及相关功能,优化回复机制 2025-11-30 15:04:00 +08:00
minecraft1024a
dd12c441a9 feat(report): 优化报告图表并引入对数坐标轴
本次提交对报告页面的 ECharts 图表进行了多项视觉和可用性优化,以提升数据可读性和展示效果。

主要变更包括:

1.  **饼图优化**:
    -   统一将图例(Legend)固定在图表顶部,以获得更一致和整洁的布局。
    -   增大了饼图的半径,使其在视觉上更突出。

2.  **Token 对比图重构**:
    -   从垂直条形图改为水平条形图,更利于展示较长的标签。
    -   将数值轴(现为 X 轴)改为对数(log)坐标轴,有效解决了 Token 数量差异巨大时的显示问题,让小数值也能清晰可见。
    -   为对数轴处理了 0 值的情况,并在提示框中恢复显示原始值。
    -   数据缩放(dataZoom)也相应调整为在 Y 轴上进行。

3.  **其他条形图**:
    -   增加了条形的宽度,增强了视觉冲击力。
2025-11-30 14:16:50 +08:00
minecraft1024a
474f86af54 feat(report): migrate charting library from Chart.js to ECharts
This commit replaces the Chart.js library with Apache ECharts for all charts in the statistics report page. The migration aims to significantly enhance chart interactivity, visual appeal, and performance, especially with larger datasets.

Key improvements include:
- **Enhanced Interactivity**: Implemented data zooming and panning (`dataZoom`) for all time-series and bar charts, allowing for detailed data exploration.
- **Improved Visuals**: Leveraged ECharts' capabilities to introduce smoother lines, gradient area fills, better animations, and a more modern aesthetic.
- **Smart Legends**: Legends now automatically become scrollable when there are too many items, resolving UI clutter and improving readability.
- **Performance Optimization**: Optimized charts like the model cost bar chart and response time scatter plot to handle large numbers of data points smoothly.
- **Responsive Resizing**: Reworked the chart resizing logic to ensure all charts correctly and smoothly redraw when the window size changes.
2025-11-30 13:53:53 +08:00
Windpicker-owo
c68bf4ad4f 重构Kokoro Flow Chatter:移除已弃用的响应后处理器和会话管理器
- 删除了`response_post_processor.py`和`session_manager.py`,因为它们已不再需要。
- 更新了`__init__.py`文件,移除了对`ActionExecutor`的引用。
- 删除了`action_executor.py`,并将动作执行直接集成到`chatter.py`和`proactive_thinker.py`中。
- 在`KokoroFlowChatterV2`中重构了动作执行逻辑,以直接使用`ChatterActionManager`。
- 增强了主动思考逻辑,以简化操作执行,而无需依赖已移除的`ActionExecutor`。
2025-11-30 13:40:59 +08:00
Windpicker-owo
0fe15dac52 feat: 使用提示管理和会话处理来实现Kokoro Flow Chatter V2
- 在Kokoro Flow Chatter V2中添加提示模块以管理提示信息。
- 创建一个构建器,用于根据用户交互和会话上下文构建提示。
- 为不同场景(新消息、及时回复等)注册各种提示模板。
- 开发一个回复模块,使用LLM API生成回复。
- 实现会话管理以处理用户交互并维护状态。
- 引入心理日志条目以追踪用户与机器人的交互情况。
- 确保各模块中都有适当的日志记录和错误处理。
2025-11-30 13:05:26 +08:00
minecraft1024a
46f88ebc70 feat(report): 重构统计报告页面,引入全新现代化UI主题
本次提交对统计报告页面进行了一次全面的视觉和代码重构,旨在提升用户体验和可维护性。

主要更新包括:
- **UI/UX 重构**: 废弃原有的 Material Design 3 主题,采用更简洁、现代的仪表盘风格,优化了色彩、字体和布局,提升了整体视觉效果和数据可读性。
- **布局优化**: 使用 CSS Grid 构建主布局,提高了响应式设计的灵活性和健壮性。
- **图表美化**: 更新了所有图表的视觉样式,包括新的调色板、交互式工具提示和更清晰的坐标轴。
- **代码优化**:
  - 将图表数据从内联 JavaScript 字符串改为通过 `<script type="application/json">` 标签注入,更加安全和规范。
  - 实现了图表的懒加载,仅在切换到对应标签页时才进行初始化,提升了初始加载速度。
  - 移除大量内联样式,统一使用 CSS 类进行管理,增强了代码的可维护性。
2025-11-30 13:00:09 +08:00
minecraft1024a
06b4b7e4b9 feat(log_viewer): 添加日志查看器功能,支持实时查看、搜索和筛选日志 2025-11-30 12:13:35 +08:00
tt-P607
f489020a12 feat(core): 实现死锁检测器并改进 LLM 消息拆分 本次提交引入了两个主要增强功能:在 StreamLoopManager 中增加死锁检测机制以提高系统稳定性,以及对 Kokoro Flow Chatter (KFC) 的消息拆分策略进行调整,以生成更自然、更贴近人类的对话。 **StreamLoopManager 中的死锁检测:** - 新的死锁检测器现在会定期运行,监控所有活动消息流。 - 它会跟踪每个消息流的最后活动时间,并标记任何超过两分钟未活动的流为潜在死锁。 - 这种主动监控有助于识别和诊断可能卡住的消息流,防止系统整体冻结。 - 为了避免在长时间等待(例如等待用户回复或长时间 LLM 生成)期间出现误报,消息流循环现在即使在睡眠或处理阶段也会定期更新其活动时间戳。 **KFC 中的消息拆分优化:** - 自动,响应后处理器中的基于规则的消息拆分器已被禁用。- 消息拆分的责任现在完全交由大型语言模型(LLM)处理。- 系统提示已更新,明确指示LLM使用多个 reply 操作,将长响应拆分为更短、更自然的段落,模仿真实的人类消息模式。- 此更改允许进行更加上下文感知和情感适宜的消息分段,从而提供更具吸引力的用户体验。**VectorStore 的异步安全性:**- 所有对同步 ChromaDB 库的调用现在都被封装在 asyncio.to_thread() 中。这可以防止阻塞主 asyncio 事件循环,而这正是新检测器设计用来捕获的潜在死锁来源。 2025-11-30 11:59:27 +08:00
minecraft1024a
7cf55d0d61 feat(config): 完善 Gemini 模型配置模板
- 将 Google API 的 `base_url` 更新为正确的 `v1beta` 端点。
- 新增了 Gemini 模型的完整配置示例,方便用户参考。
- 在示例中包含了新的 `thinking_level` 和 `thinking_budget` 参数,并附有使用说明。
- 修正了注释中的拼写错误 (Gimini -> Gemini)。
2025-11-30 11:07:58 +08:00
minecraft1024a
be6a081cec Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-30 11:04:22 +08:00
minecraft1024a
9bc189d6fe feat(gemini_client): 为 Gemini API 添加 thinking_level 参数支持
根据 Gemini API 的更新,引入了新的 `thinking_level` 参数 ("low", "medium", "high"),以提供对模型思考过程更直观的控制。

为了确保向后兼容,客户端现在会优先使用 `thinking_level` 参数。如果该参数未提供,则会回退到使用旧的 `thinking_budget` 参数。相关函数和文档也已同步更新。
2025-11-30 11:04:18 +08:00
ikun-11451
acafc074b1 依旧修pyright喵喵喵~ 2025-11-29 22:20:55 +08:00
ikun-11451
574c2384a2 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-29 21:26:53 +08:00
ikun-11451
72e7492953 依旧修pyright喵~ 2025-11-29 21:26:42 +08:00
minecraft1024a
cabae2ec1e Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-29 20:51:15 +08:00
minecraft1024a
7b0c349c22 refactor(config): 简化配置文件模板,移除废弃的跨上下文配置
从 `bot_config_template.toml` 文件中移除了 `[[cross_context.groups]]` 的示例配置。

该配置项已被视为过时或不再是推荐的默认设置,移除它可以简化新用户的配置过程并避免混淆。

同时,本次提交还包括:
- 将内部版本号更新至 7.9.1。
- 明确了 `planner_custom_prompt_content` 的注释,指出其用于AFC决策器。
2025-11-29 20:51:12 +08:00
ikun-11451
28719c1c89 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-29 20:40:30 +08:00
ikun-11451
f0b6a969d5 修了点pyright错误喵~ 2025-11-29 20:40:21 +08:00
minecraft1024a
ad0f495911 feat(permission_api): 增强权限API文档,添加详细注释和示例
fix(system_management): 修复系统命令执行时缺失用户信息的错误处理
2025-11-29 20:20:59 +08:00
minecraft1024a
feb4e7155e chore(system_management): 默认禁用系统管理插件 2025-11-29 20:07:40 +08:00
minecraft1024a
58c70107b9 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-29 20:06:59 +08:00
minecraft1024a
fc05146f24 feat(plugin_system): 实现插件组件的查询与启禁功能
为 `/system plugin` 命令引入了完整的组件级管理功能,以提供比插件级更精细的控制粒度。

哼,总是只能开关整个插件也太粗糙了。这次更新后,主人你就可以更灵活地控制机器人的行为了,不用再因为一个小功能不想要就禁用整个插件啦。

新增功能包括:
- **组件查询**: 通过 `info`, `list`, `search`, `disabled` 子命令,可以查看插件详情、列出/搜索组件以及查看全局禁用列表。
- **状态控制**: 通过 `enable` 和 `disable` 子命令,可以全局启用或禁用指定的组件。
- **帮助文本**: 更新了相关的帮助信息,让你不会迷路。
- **安全保护**: 核心类型的组件(如 Router, Prompt)被保护,防止被意外禁用,我可不想你把系统搞坏了。
2025-11-29 20:06:42 +08:00
ikun-11451
311a161941 喵呜!修好了好多 Pyright 的报错捏~ 🐾
主人主人,猫猫把代码里的红红的报错都赶跑啦!
1. memory_visualizer_router.py: 把 load_graph_data_from_file 变成异步的啦,这样就不会卡住咯~
2. message_router.py: 加上了 global_config 的检查,不会再因为空空的配置摔倒啦!
3. emoji_manager.py: 修复了好多类型转换的问题,还加上了配置检查,表情包系统更稳定了捏!
4. energy_manager.py: 能量计算器的类型也修好啦,统计数据不会再打架了~

代码现在变得干干净净的,猫猫是不是很棒?快摸摸头!🐱💕
2025-11-29 20:03:29 +08:00
ikun-11451
1c325e91cc Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-29 19:50:27 +08:00
tt-P607
4245228cb7 feat(KFC): 实现 V7 交互模型,具备中断和情感安全功能。本次重大更新彻底改造了 Kokoro Flow Chatter (KFC) 的交互模型,引入了更加稳健、自然且安全的用户体验。主要功能包括处理快速用户输入的中断机制、改善的情感稳定性以防止 AI 行为异常,以及系统提示的全面重写,以提供更自然、人性化的响应。V7 主要增强功能:
- **中断机制**:新的消息现在可以中断正在进行的 LLM 处理。被中断的上下文会被保存并与新消息合并,确保不会丢失用户输入,并提供更即时的响应体验,类似于现代即时通讯应用。
- **情感安全与稳定性**:
  - 现在 AI 不会随意设置负面情绪状态。
  - 情绪变化为渐进式,强度变化有限制。
  - 新的“情感健康检查”会在加载会话数据时进行清理,以防恢复不稳定状态。
  - 对连续跟进消息实施了限制,以避免向未响应的用户发送垃圾信息。
- **提示重构**:
  - 系统提示已被完全重写,使其更加简洁、自然和对话化,灵感来源于 S4U 模型。
  - 提示现在支持一次处理多条未读消息,这是中断机制的核心部分。
  - 对 LLM 的指令更清晰,更注重生成类人互动,而不仅仅是完成任务。
2025-11-29 19:49:32 +08:00
ikun-11451
2dc64ed0a8 修复本地语音识别插件的依赖导入问题喵~ 2025-11-29 19:49:26 +08:00
minecraft1024a
02ffef92cc refactor(plugin_system): 将插件管理API拆分为更专注的模块
`plugin_manage_api` 模块的职责过于宽泛,混合了插件生命周期、组件状态管理和信息查询等多种功能。为了提高代码的可维护性和清晰度,遵循单一职责原则,现将其进行拆分。

- 新增 `component_state_api.py` 模块,专门负责处理组件的启用/禁用状态管理,包括全局和局部作用域。
- 新增 `plugin_info_api.py` 模块,用于提供插件和组件的信息查询、报告生成和状态统计功能。
- `plugin_manage_api.py` 现在专注于插件的生命周期管理,如加载、重载、启用/禁用和卸载。
- 更新了内部调用方(例如 system_management 插件)以使用新的、职责更明确的API。

BREAKING CHANGE: 原 `plugin_manage_api` 中的大量函数已被移动。组件状态管理相关函数移至 `component_state_api`,信息查询和报告相关函数移至 `plugin_info_api`。
2025-11-29 19:45:00 +08:00
minecraft1024a
251a7fcbfb fix(plugin_system): 禁止启用或禁用适配器类型组件
适配器(Adapter)作为核心连接组件,其状态不应由用户直接启用或禁用,以防止核心功能中断。

本次修改在启用和禁用逻辑中加入了对适配器类型的检查,以确保系统稳定性。
2025-11-29 19:26:06 +08:00
minecraft1024a
f53c64fdf3 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-29 19:24:28 +08:00
minecraft1024a
b2dadfa418 refactor(plugin_system): 将组件状态管理逻辑提取到专职类中
将原先分散在 `ComponentRegistry` 中的组件状态管理逻辑(包括全局启用/禁用和基于会话的局部状态覆盖)重构并迁移到一个新的 `ComponentStateManager` 类中。

`ComponentRegistry` 现在通过持有一个 `ComponentStateManager` 实例,将所有状态相关的操作(如 `enable_component`, `disable_component`, `is_component_available`)委托给该类处理。

此次重构的主要目的:
- **关注点分离**: `ComponentRegistry` 的职责更加清晰,专注于组件的注册和查询。
- **提升内聚性**: 所有状态管理的复杂逻辑都集中在 `ComponentStateManager` 中,便于维护和扩展。
- **简化代码**: `ComponentRegistry` 的代码变得更加简洁易懂。
2025-11-29 19:24:25 +08:00
ikun-11451
9eb8830835 依旧pyright错误喵~ 2025-11-29 19:22:06 +08:00
ikun-11451
36805a4a7f Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-29 19:17:54 +08:00