Commit Graph

7750 Commits

Author SHA1 Message Date
ikun-11451
2dc64ed0a8 修复本地语音识别插件的依赖导入问题喵~ 2025-11-29 19:49:26 +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
ikun-11451
c13bac894b 修了一点pyright错误喵~ 2025-11-29 19:17:40 +08:00
minecraft1024a
7638dde6f3 refactor(plugin_system): 整合插件状态管理至主管理API
将 `plugin_state_api.py` 模块的功能完全合并到 `plugin_manage_api.py` 中,并删除了前者。

此更改旨在简化插件系统的API结构,减少不必要的模块拆分。通过将所有插件生命周期、状态管理和信息查询的逻辑集中在单一的 `plugin_manage_api.py` 模块中,提高了代码的内聚性和可维护性。

主要变更:
- 删除了 `src/plugin_system/apis/plugin_state_api.py` 文件。
- 将其所有功能(如插件和组件的启用/禁用、状态查询等)直接实现在 `plugin_manage_api.py` 中,移除了原有的包装层。
- 对 `plugin_manage_api.py` 的内部结构进行了重新组织,按功能划分为更清晰的区域。
2025-11-29 19:09:36 +08:00
minecraft1024a
06637891b4 fix(gemini): 调整 safetySettings 参数至 API 请求的正确层级
根据 Gemini API 的官方文档,`safetySettings` 参数应位于请求体的顶层,而非 `generationConfig` 内部。

本次提交将该参数移动到了正确的位置,以确保安全策略能够正确生效。
2025-11-29 18:12:10 +08:00
Eric-Terminal
aaedd77797 fix: 修复 aiosqlite 日志导致 CPU 占用过高的问题
- 将 aiosqlite 和 message_bus 添加到 suppress_libraries 列表
- 屏蔽数据库操作的 DEBUG 日志,防止日志刷屏导致 CPU 100%
2025-11-29 11:44:47 +08:00
minecraft1024a
36dd6ead1a fix(report): 修复报告图表懒加载时的函数调用问题
`showTab` 函数可能会在 `DOMContentLoaded` 事件完全执行完毕之前被调用,此时 `initializeStaticChartsForPeriod` 函数尚未定义,会导致引用错误。

本次修改通过将函数声明提升到外部作用域,并确保在调用前检查其是否存在,解决了这个问题,从而保证了图表懒加载的稳定性。
2025-11-29 11:03:55 +08:00
minecraft1024a
95a221a41d feat(report): 丰富统计报告,增加多种高级可视化图表
新增了五种高级数据可视化图表,以提供更深入的模型性能和使用情况分析:

- **Token使用对比图**: 直观展示各模型的输入与输出Token数量。
- **供应商请求占比图**: 显示不同服务供应商的请求分布。
- **平均响应时间图**: 对比各模型的平均响应速度。
- **模型效率雷达图**: 从多个维度(请求量、TPS、速度、成本、容量)综合评估模型性能。
- **响应时间分布散点图**: 展示每次请求的具体响应时间,分析性能稳定性。

此外,对报告的UI/UX进行了全面优化,包括采用卡片式布局、实现可交互的图例以筛选数据、以及改进图表样式和提示信息,提升了报告的可读性和易用性。
2025-11-29 10:51:34 +08:00
minecraft1024a
9dff133146 feat(report): 增强统计报告,增加模块花费图表并优化UI
本次更新对统计报告进行了多项功能增强和界面优化,旨在提供更丰富的分析维度和更佳的用户体验。

主要变更包括:
- **新功能**:
  - 新增“按模块花费”饼图,以提供新的成本分析维度。
  - 在供应商统计表格中加入“平均耗时”指标,用于性能评估。
  - 在报告顶部添加“名词解释”卡片,帮助用户理解关键指标。

- **UI/UX 优化**:
  - 重构页面布局为主内容区与图表侧边栏,提升信息密度和可读性,并实现响应式设计。
  - 全面优化图表视觉效果,包括更新调色板、增加加载动画、改进提示框,使其更具表现力和交互性。
2025-11-29 10:12:33 +08:00
minecraft1024a
7efbf58dda feat(report): 重构统计报告,增加效率分析并采用MD3设计
本次更新对统计报告进行了全面的重构和视觉升级,旨在提供更深入的数据洞察和更现代化的用户体验。

主要变更包括:
- **新增效率分析模块**: 引入了一系列关键的大模型效率指标,如单条消息成本、Token效率(输出/输入比)、每小时成本/请求数等,并通过新的表格进行详细展示。
- **全新UI设计**: 整体界面采用Material Design 3 (MD3) 风格重新设计,优化了色彩、字体、间距和卡片样式,提升了报告的专业性和可读性。
- **图表功能增强**: 动态图表和静态图表均进行了美化,更新了配色方案,增加了平滑的加载动画和交互效果。饼图升级为更易读的甜甜圈图,并优化了工具提示信息。
- **内容和布局优化**: 增加了更多的摘要卡片以快速概览核心数据。为各个板块标题添加了 Emoji 图标,使信息层次更清晰,并优化了整体布局。
2025-11-29 09:51:46 +08:00
minecraft1024a
3030578131 fix(llm_models): 修复模型工具中的类型问题并增加断言
在 `_ModelSelector` 和 `_RequestStrategy` 中添加了对 `model_config` 的非空断言,以防止潜在的 `None` 值错误。

将工具参数验证的断言拆分为两条,以便在验证失败时提供更精确的错误信息。

为嵌入响应处理函数添加了 `type: ignore` 注释,以修复静态类型检查器的警告。
2025-11-29 09:25:19 +08:00
minecraft1024a
d4d6922a4c refactor(plugin_system): 重构插件API,分离状态管理逻辑
将插件和组件的状态管理逻辑从 `plugin_manage_api.py` 迁移至一个新的专用模块 `plugin_state_api.py`。

`plugin_manage_api.py` 现在作为面向下层开发者的主要API入口,其实现转为对 `plugin_state_api` 的包装调用。

此次重构旨在实现关注点分离,使API层与核心状态管理逻辑解耦,提高了代码的可维护性,并为未来在API层添加权限检查等功能提供了便利。
2025-11-29 09:16:28 +08:00
minecraft1024a
ec17f6fc0e Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-29 08:55:33 +08:00
minecraft1024a
ff98187c54 refactor(plugin_system): overhaul ComponentRegistry for clarity and add local state management
The `ComponentRegistry` class has been extensively refactored to improve its structure, maintainability, and functionality. This overhaul simplifies core logic and introduces a new capability for session-level component control.

Key improvements include:
- **Structural Reorganization**: The class is now divided into logical sections (Initialization, Registration, State Management, etc.) for better readability.
- **Simplified Registration**: The main `register_component` method now uses a dictionary-based handler dispatch, replacing a large `match-case` block and improving extensibility.
- **Local State Management**: Introduced a new feature for session-level (stream-specific) component state. This allows temporary enabling/disabling of components within a single conversation via `set_local_component_state` and `is_component_available`.
- **Consistent Methods**: Internal registration, removal, and state-change methods have been streamlined for consistency and robustness.
- **Enhanced Querying**: Component query methods now correctly factor in both global and local (session) availability states.
- **Code Quality**: Improved docstrings, type hints, and general code simplification throughout the module.
2025-11-29 08:55:31 +08:00
ikun-11451
8bdbadd7d5 更新了仓库地址喵 2025-11-29 00:05:43 +08:00
minecraft1024a
c2bc81be8b feat(maizone): 为说说生成增加跨上下文聊天记录参考
现在,maizone插件可以利用指定用户的近期聊天记录作为上下文,来生成更加贴合近期对话内容和情绪的说说。

- 新增 `cross_context.user_id` 配置项,用于指定获取上下文的目标用户。
- 在生成说说前,通过 `cross_context_api` 获取并整合聊天记录到LLM的提示词中。
- 这使得生成的说说内容能够反映最近的讨论,更具个性化和时效性。
2025-11-28 21:29:01 +08:00
minecraft1024a
722c8bc5a9 feat(context): 新增面向单一用户的跨上下文构建API
新增 `build_cross_context_for_user` 函数,提供一个简化的接口来构建指定用户的跨聊天上下文。

该函数会优先获取用户与机器人的私聊记录,然后聚合用户在其他群聊中的近期发言。通过整合这些信息,可以为需要了解用户近期跨聊天活动的插件提供一个便捷的数据来源。
2025-11-28 21:15:28 +08:00
minecraft1024a
a8f899a22f refactor(context): 简化跨上下文功能,移除通用共享组模式
移除了基于白名单/黑名单的通用上下文共享组(ContextGroup)功能。此模式实现复杂且与S4U模式功能重叠,移除后可大幅简化配置项和内部逻辑。

主要变更:
- 从配置中删除了 `ContextGroup` 模型和 `cross_context.groups` 列表。
- 删除了 `build_cross_context_normal` 和 `get_context_group` 函数。
- 保留并增强了S4U(Search for User)模式,为其增加了更详细的日志和健壮性检查。
- `get_intercom_group_context` 函数被调整为专门服务于 `maizone_context_group`。

BREAKING CHANGE: 移除了 `cross_context.groups` 配置项及相关的通用上下文共享组功能。请迁移至S4U模式以实现跨上下文需求。
2025-11-28 20:39:16 +08:00
yishan
78a91c3c42 Merge pull request #11 from mcn1630/dev
feat:修改空间生图接口为正确调用,使用LLM基于说说内容生成图片提示词
2025-11-28 19:22:41 +08:00
mcn1630
c9dbf8e299 feat:将tts组件恢复,独立分支 2025-11-28 19:19:36 +08:00
mcn1630
e3fba29764 feat:修改空间生图接口为正确调用,使用LLM基于说说内容生成图片提示词 2025-11-28 17:51:01 +08:00
mcn1630
4b0af154a6 Merge branch 'dev' of https://github.com/mcn1630/MoFox-Core into patch 2025-11-28 17:26:12 +08:00
喵吃鸟
25de6d5664 Merge branch 'MoFox-Studio:dev' into dev 2025-11-28 17:24:36 +08:00
mcn1630
2a4f73859d feat:为tts增加Qwen-Omni接口 2025-11-28 17:24:05 +08:00
tt-P607
d2d0cfc4db feat(image): 为 VLM 处理添加自动 GIF 转 JPG 转换功能
此提交引入了在将 GIF 图像发送到视觉语言模型 (VLM) 进行描述之前,自动检测并转换为 JPG 格式的功能。这确保了与不支持动画格式的 VLM 的兼容性,防止处理失败。

此外,还添加了若干空值检查断言,以提高代码的健壮性,并防止配置对象未正确初始化时可能出现的运行时错误。还实现了对 `global_config.emoji` 的防御性检查。
2025-11-28 16:00:55 +08:00
tt-P607
da4f40ebb1 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-28 15:24:16 +08:00
tt-P607
103a6edaf3 feat(emoji): 增强消息上下文下的表情选择并修复存储用户信息的问题
该提交对表情操作及相关消息发送 API 进行了重大改进。

现在,表情选择逻辑更加具备上下文感知能力。LLM 提示现在包括机器人的待发送回复内容,使其能够根据对话历史和自身回复选择更合适的表情。用于上下文的近期聊天记录也有所增加。

此外,修复了插件发送 API (`send_api`) 中的一个错误。之前,当机器人发送消息时,消息在数据库中存储的是接收者的用户信息,而非机器人的信息。本次提交通过显式传递并使用机器人的用户信息进行存储,确保消息历史准确反映发送者。

其他更改包括:
- 重构表情操作的激活逻辑以提高清晰度。
- 改进 LLM 选择的表情描述匹配算法。- 为配置访问添加必要的类型安全检查。
2025-11-28 15:24:08 +08:00
Windpicker-owo
bfc45cb4f0 fix(message_handler): 修改 ON_NOTICE_RECEIVED 事件的权限组为 SYSTEM 2025-11-28 14:12:35 +08:00
Windpicker-owo
6c808d1052 feat(event_manager): 添加 ON_NOTICE_RECEIVED 事件到默认事件列表 2025-11-28 13:54:57 +08:00
Windpicker-owo
302d48ff85 fix(emoji_manager): 优化表情包注册时描述生成的异步处理逻辑 2025-11-28 13:43:28 +08:00
Windpicker-owo
454b143db2 refactor(message_handler): 移除消息处理器中的冗余消息类型定义 2025-11-28 13:40:35 +08:00
Windpicker-owo
430d45e645 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-28 13:26:01 +08:00
Windpicker-owo
2bd7e93af7 fix: 更新数据库会话管理,确保事务在正常退出时自动提交,并在异常时安全回滚 2025-11-28 13:24:41 +08:00
喵吃鸟
e65beb2767 Merge branch 'MoFox-Studio:dev' into dev 2025-11-28 12:41:48 +08:00
tt-P607
876f20e847 feat(llm): 为不支持的模型添加自动将 GIF 转换为 PNG 帧的功能
当语言模型不支持用于图像输入的 GIF 格式时,此功能会自动将 GIF 转换为一系列 PNG 帧。它智能地从 GIF 中采样最多 4 帧,确保即使是动画图像也可以被仅支持静态格式(如 PNG)的模型处理。

这增强了模型的多功能性,让用户无需担心原生格式支持问题即可提交 GIF,从而提供更顺畅和强大的用户体验。
2025-11-28 12:00:40 +08:00
tt-P607
588830c819 feat(tts): 在初始化时自动生成默认配置文件
当 TTS 插件首次初始化时,现在会检查其配置文件是否存在。如果未找到文件,将自动创建一个默认的 `config.toml`,其中包含预填充的、已注释的设置。

这一改进显著提升了用户体验,通过提供一个可立即使用的模板,引导用户如何配置 TTS 服务,而无需查阅文档。它可以防止因缺少配置文件而导致的启动错误,并简化初始设置过程。
2025-11-28 11:17:23 +08:00
tt-P607
82fe115268 refactor(core): 提高配置访问安全性并优化记忆判断提示
此提交引入了若干关键改进,以增强应用程序的稳定性和智能性。

首先,通过在 `main.py` 和 `memory_graph/manager_singleton.py` 的关键初始化路径中为 `global_config` 及其嵌套属性添加全面的空值检查,增强了系统的稳健性。这可以防止在配置加载失败或不完整时出现潜在的 `AttributeError` 异常,使应用程序的启动过程更加可靠。

其次,在 `UnifiedMemoryManager` 中的“记忆判断”模型提示已大幅优化。新的提示提供了更严格的指导,避免在简单交互(如问候或闲聊)中进行不必要的长期记忆查询。这一优化通过使记忆检索过程更加高效和具上下文意识,提高了响应速度并降低了计算开销。

最后,新配置已在 Napcat 适配器中添加了选项,以更精细地控制消息处理,包括启用/禁用视频处理和配置自动@回复。
2025-11-28 10:57:01 +08:00
tt-P607
c040cf08e8 Revert "refactor(core): 提升类型安全性并添加配置空值检查"
This reverts commit abfcf56941.
2025-11-28 10:33:49 +08:00
tt-P607
abfcf56941 refactor(core): 提升类型安全性并添加配置空值检查
此提交在核心模块中引入了多项改进,以增强类型安全性和健壮性,主要通过为类型提示添加 `cast` 并在访问 `global_config` 属性前进行空值检查实现。

主要改动包括:
- **类型安全**:在 `message_handler.py`、`unified_manager.py` 和 `napcat_adapter` 的消息处理器中使用 `typing.cast` 来解决类型不一致问题并提高静态分析的准确性。
- **配置空值检查**:在 `message_handler.py` 和 `message_processor.py` 中添加对 `global_config` 及其嵌套属性的检查,以防止在应用启动或配置加载过程中出现 `NoneType` 错误。
- **内存管理提示**:优化了 `unified_manager.py` 中内存判断器的提示,使其在获取长期记忆时更加保守,从而提升简单交互的性能。
- **Napcat 适配器**:新增了视频处理的配置选项以及回复行为。同时改进了消息解析逻辑的鲁棒性。- **消息处理器**:重构了 `_process_message_segments` 及相关函数,移除了未使用的 `message_info` 参数,从而简化了函数签名。
2025-11-28 10:15:53 +08:00
tt-P607
883e391010 refactor(napcat): 在语音消息处理程序中移除未使用的 TTS 检查
`handle_voice_message` 方法中对 `voice.use_tts` 配置的检查已被移除,因为它是多余的。将消息编码为语音的决定在上游处理,因此在此阶段无需此检查。此外,添加了日志警告以处理接收到空语音消息的情况。
2025-11-28 08:24:02 +08:00
tt-P607
655e535d96 Revert "feat(chat): 通过动作参数实现专用的 @用户 功能"
This reverts commit e5117720c6.
2025-11-28 08:21:06 +08:00
tt-P607
e5117720c6 feat(chat): 通过动作参数实现专用的 @用户 功能
此提交引入了一种在回复中提及(@)用户的稳健机制。此功能不再由 LLM 直接生成“@”文本,而是通过 `reply` 和 `respond` 动作中新增加的 `at_user_id` 参数来处理。

主要变化包括:
- **核心动作:** 在 `ReplyAction` 和 `RespondAction` 中添加可选的 `at_user_id` 参数,用于指定要提及的用户。
- **提示工程:** 更新了 `default_generator` 提示,以指导 LLM 如何使用新的 `at_user_id` 参数,而不是生成“@”文本。
- **动作管理器:** `ChatterActionManager` 现在会检查动作数据中的 `at_user_id`。如果存在,它会使用新的 `SEND_AT_MESSAGE` 命令,确保提及格式正确并发送。
- **发送 API:** 在 `send_api` 中引入新的 `at_user_to_stream` 函数,用于处理发送独立的 `@` 段落。
- **类型安全与重构:** 改进了类型提示跨多个文件(`mofox_wire` 类型、`cast` 等)进行了修改,并增加了对 `global_config` 是否存在的检查,以防止运行时可能出现的 `NoneType` 错误,从而提高了整体代码的稳定性。
2025-11-28 02:54:47 +08:00
tt-P607
e7cd20e3f9 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-28 00:47:13 +08:00
tt-P607
252379db52 refactor(prompt): 通过移除新话题生成简化主动聊天逻辑
从群聊和私聊的主动互动决策提示中移除了“开启新话题”选项。此更改使机器人行为更加简化,专注于继续现有对话和表达关心,避免引入可能不相关或突兀的话题。

“新话题头脑风暴”步骤已被移除,`throw_topic` 的适用场景现在仅限于继续对话或表达关心。此外,推荐的消息长度已缩短至15-25个字符,以鼓励更简洁自然的互动。
2025-11-28 00:47:03 +08:00
Windpicker-owo
ac017986fd feat: 添加重置 PostgreSQL 序列值的脚本,自动检测并重置所有序列以避免主键冲突 2025-11-28 00:29:44 +08:00
Windpicker-owo
c9c6a11593 fix: 修复数据迁移中的事务处理,确保每张表的迁移在独立事务中进行 2025-11-28 00:08:51 +08:00
Windpicker-owo
86e04638a2 fix: 移除迁移数据中的 NUL 字符并记录警告 2025-11-27 23:18:05 +08:00
喵吃鸟
79a85e74b6 Merge branch 'MoFox-Studio:dev' into dev 2025-11-27 23:14:13 +08:00
Windpicker-owo
8287d11c49 fix: 移除不必要的后置钩子注册,简化消息处理逻辑 2025-11-27 23:08:54 +08:00