Commit Graph

7771 Commits

Author SHA1 Message Date
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
Windpicker-owo
a06510b9b6 feat: 添加通知消息处理功能,支持戳一戳、禁言等事件,并更新相关逻辑 2025-11-27 22:54:58 +08:00
喵吃鸟
60057b5283 Merge branch 'MoFox-Studio:dev' into dev 2025-11-27 22:48:31 +08:00
Windpicker-owo
3538716515 fix: 更新版本号至 0.13.0,增强数据库迁移功能,注册通知事件处理 2025-11-27 22:37:50 +08:00
Windpicker-owo
73aaedaca6 fix: 更新硬编码的版本号至 0.13.0-alpha.4 2025-11-27 22:09:29 +08:00
Windpicker-owo
92c4c43d39 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-27 22:08:27 +08:00
Windpicker-owo
25571bf0ec fix: 修复返回的 embedding 为空时的处理逻辑 2025-11-27 22:08:22 +08:00
Windpicker-owo
26520c123a feat: 添加通知处理功能,支持戳一戳、表情回复、群禁言等事件 2025-11-27 22:08:08 +08:00
tt-P607
fd628bbee0 fix(chat):为 reply_to 提供回退以防止崩溃
在处理 `reply_to` 目标时,为 `platform` 和 `user_id` 提供回退值。这解决了当 `user_id` 未明确存在时(例如在涉及 QQ 空间插件的场景中)出现的 `UnboundLocalError`。
2025-11-27 21:55:05 +08:00
tt-P607
a0d0a71b63 feat(napcat): 支持直接和反向 WebSocket 模式
Napcat 适配器现在支持“直接”(客户端)和“反向”(服务器)两种 WebSocket 连接模式。可以通过插件配置中的 `napcat_server.mode` 设置进行配置。

此外,此次提交修复了群组和私信消息过滤中的一个错误,即配置中的数字 ID 未能正确与消息中的字符串 ID 进行比较。现在所有列表 ID 都会被转换为字符串,以确保过滤可靠。
2025-11-27 21:34:11 +08:00
喵吃鸟
c2ebe54e42 Merge branch 'MoFox-Studio:dev' into dev 2025-11-27 21:26:56 +08:00
LuiKlee
bea0d033cf 修复退出机制
修复wait_for_user_input()中使用了shutdown_event.wait(),但没有触发set()
2025-11-27 19:21:27 +08:00
Windpicker-owo
ee39ba0fd2 feat: 添加黑白名单过滤系统以控制消息处理 2025-11-27 18:55:16 +08:00
喵吃鸟
11161b5f06 Merge branch 'MoFox-Studio:dev' into dev 2025-11-27 18:46:41 +08:00
Windpicker-owo
43483b934e feat: 更新机器人配置并添加数据库迁移脚本
- 将bot_config_template.toml中的版本升级至7.9.0
- 增强数据库配置选项以支持PostgreSQL
- 引入一个新脚本,用于在SQLite、MySQL和PostgreSQL之间迁移数据
- 实现一个方言适配器,用于处理特定于数据库的行为和配置
2025-11-27 18:45:01 +08:00
mcn1630
f718149845 update 2025-11-27 17:16:09 +08:00
mcn1630
166f1f9ef5 update 2025-11-27 16:42:31 +08:00
喵吃鸟
ad60627826 Merge branch 'MoFox-Studio:dev' into dev 2025-11-27 16:33:50 +08:00
mcn1630
abfc808859 update 2025-11-27 16:30:22 +08:00
Windpicker-owo
369639a8f1 feat: 添加守护线程版本的队列监听器以避免阻塞退出,优化配置初始化逻辑,改进消息构建中的用户信息处理 2025-11-27 14:06:17 +08:00
Windpicker-owo
4af6a5ec0c fix: 修复组件移除时的错误处理逻辑,确保日志记录和返回值一致 2025-11-26 23:17:27 +08:00
拾风
ec7a2c5e50 Merge pull request #8 from MoFox-Studio/mofox-bus
正式使用Mofox Wire代替maim message
2025-11-26 22:52:38 +08:00
拾风
94b889f34e Merge branch 'dev' into mofox-bus 2025-11-26 22:52:06 +08:00
拾风
545a5656f7 Merge pull request #9 from MoFox-Studio/copilot/sub-pr-8
fix: 代码质量修复 - 未使用导入、asyncio任务引用、类型注解
2025-11-26 22:48:57 +08:00
copilot-swe-agent[bot]
1ca3aa6a07 fix: 修复代码质量和隐形问题 - 移除未使用导入、修复asyncio任务引用、修复类型注解
Co-authored-by: Windpicker-owo <221029311+Windpicker-owo@users.noreply.github.com>
2025-11-26 14:43:44 +00:00
copilot-swe-agent[bot]
1c5028e719 Initial plan 2025-11-26 14:35:08 +00:00
tt-P607
6200108391 feat(chatter):引入可配置的单回复和多回复模式
此提交引入了一个新的配置选项 `chat.enable_multiple_replies`,允许对聊天机器人的对话行为进行更大的控制。

之前,规划器的回复策略是硬编码以支持多回复的。此更改将提示生成重构为根据新的配置设置动态生成。

- 当 `enable_multiple_replies` 为 `true`(默认行为)时,机器人可以在单轮对话中生成多个 `reply` 动作,同时处理多条消息或多个用户。
- 设置为 `false` 时,提示会指示机器人遵循“单目标原则”,强制其仅选择最重要的一条消息进行回复。

这是通过将回复策略和输出格式说明从静态的 `planner_prompts.py` 移动到 `plan_filter.py` 实现的,在那里它们会在被注入主提示模板之前根据条件生成。
2025-11-26 22:30:32 +08:00
Windpicker-owo
9f82671972 Merge branch 'dev' into mofox-bus 2025-11-26 22:25:39 +08:00
Windpicker-owo
cb7b9bba9f feat(requirements): 添加 mofox-wire 依赖 2025-11-26 22:11:02 +08:00
Windpicker-owo
3f02804d9d chore(config): 更新版本号至0.13.0-alpha.3 2025-11-26 22:05:13 +08:00