minecraft1024a
02a54fd3c9
feat(chat): 引入睡眠系统,在睡眠状态下拦截消息
...
在消息处理的最前端 (`MessageManager`) 增加了对睡眠状态的检查。当系统处于 `SLEEPING` 状态时,将直接拦截所有新消息,不再进行后续处理。
同时,为了配合睡眠系统的正常运作:
- 将睡眠系统的定时任务初始化移至 `main.py`,确保其在应用启动时正确加载。
- 在主动思维插件 (`proactive_thinker`) 的定时任务(冷启动和日常唤醒)中增加了睡眠状态检查,避免在睡眠期间触发主动行为。
2025-10-17 19:55:11 +08:00
minecraft1024a
1eade97633
refactor(config): 简化睡眠系统配置项
...
移除旧的、基于睡眠压力模型的多个配置项,包括睡眠压力阈值、失眠概率(区分不同压力)、压力增减值等。
这些配置项在新系统中已不再使用,将其移除可以简化配置文件,避免引起混淆。现在的睡眠逻辑更加直接,不再依赖复杂的压力计算。
2025-10-17 19:04:52 +08:00
minecraft1024a
559ad03fe0
refactor(chat): 从 MessageManager 中移除睡眠和唤醒管理器的残留代码
...
在之前的提交 (cb51446 ) 中,睡眠管理器模块已被移除。本次提交清除了 `MessageManager` 中与之相关的残留代码,包括导入语句、实例初始化以及启动/停止逻辑,完成了整个重构过程。
2025-10-17 19:02:49 +08:00
minecraft1024a
cb514465a2
refactor(chat): 移除旧的睡眠管理器模块
...
删除了位于 `src/chat/message_manager/sleep_manager/` 目录下的整个旧版睡眠管理器。该模块包含了 `sleep_manager`, `wakeup_manager`, `sleep_state` 等多个文件,其功能将被新的实现所取代。
同时,对 `context_manager.py` 中的群聊判断逻辑进行了微调,以适应新的消息结构。
2025-10-17 18:57:59 +08:00
minecraft1024a
ff3b35a5d3
Revert "实现了新的睡眠系统喵~",我看了不如我回去自己写一个()
...
This reverts commit e1dde64fc6 .
2025-10-17 18:44:38 +08:00
tt-P607
ce3fe95b37
refactor(core): make chat utils async and decouple plugin dependencies
...
- Convert `get_recent_group_speaker` and `count_messages_between` in `chat/utils` to async functions to align with underlying asynchronous database calls, preventing potential blocking issues.
- Implement optional import for `sleep_system` within the `affinity_flow_chatter` plugin using a try-except block. This decouples the hard dependency between the two plugins, enhancing modularity and ensuring the chatter plugin remains operational even if the sleep system is unavailable.
2025-10-17 14:44:33 +08:00
tt-P607
d3b38f49b4
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-17 14:21:42 +08:00
tt-P607
c51d72b945
feat(chat): add protection for quoted content in response processing
...
In the LLM response post-processing flow, a new protection layer for quoted content has been added. This prevents the sentence splitter from incorrectly breaking up complete sentences enclosed in quotation marks, thus ensuring the integrity of the quoted text.
- Adds `protect_quoted_content` and `recover_quoted_content` functions.
- Upgrades the response processing to a three-layer protection system (kaomoji, quotes, special blocks).
- Also adjusts the default values for typing simulation time to improve user experience.
2025-10-17 14:21:32 +08:00
ikun-11451
e68b805cfb
修复了导入错误喵......
2025-10-17 12:05:28 +08:00
tt-P607
aa35581cbc
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-17 02:34:51 +08:00
tt-P607
1f26238368
refactor(chat): overhaul response processing for robustness and integrity
...
This commit redesigns the LLM response handling pipeline to gracefully manage complex, long, and structured outputs, shifting from a restrictive filtering model to a more resilient and content-aware approach.
The previous implementation suffered from brittleness, often discarding valid responses or corrupting formatted content. This refactor introduces two core changes to ensure response integrity:
1. **Adaptive Message Merging:** Replaces the rigid message count and length limits, which caused the silent dropping of valid long-form answers. The new logic dynamically merges the shortest adjacent sentences if a response is overly fragmented, ensuring the full thought is preserved while adhering to display limits.
2. **Content-Aware Pre-processing:** Implements a protection mechanism for special text formats. It now identifies and isolates Markdown code blocks, LaTeX-style math equations, and other code-like segments using placeholders before splitting or typo generation. This prevents formatting corruption and ensures technical content is rendered correctly.
Additionally, the LLM prompt for splitting has been refined to emphasize logical coherence over simple fragmentation.
Finally, this commit also hardens the `LLMRequest` class against race conditions by adding an `asyncio.Lock` to serialize generation requests, improving the system's stability under concurrent workloads.
2025-10-17 02:34:39 +08:00
ikun-11451
f57d0f3213
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-17 01:48:06 +08:00
ikun-11451
e1dde64fc6
实现了新的睡眠系统喵~
2025-10-17 01:47:43 +08:00
tt-P607
514da0b56f
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-17 01:09:36 +08:00
tt-P607
59e94ea7aa
嗯,llm分割提示词优化一下
2025-10-17 01:09:08 +08:00
LuiKlee
bfbba6879c
修复格式问题
...
修改613行的标点
如果功能异常,请提交报告
2025-10-16 20:28:15 +08:00
LuiKlee
bd864b43ab
Update README.md
2025-10-15 23:39:59 +08:00
LuiKlee
7601f881fc
Update README.md
2025-10-15 23:34:29 +08:00
LuiKlee
f587565502
调整
2025-10-15 23:33:06 +08:00
LuiKlee
ea95d56177
调整排版
2025-10-15 23:28:45 +08:00
ikun两年半
21e4f7f659
更正依赖名字喵~
2025-10-13 17:43:40 +08:00
tt-P607
109aef4623
feat(chat): 实现延迟重处理并修复并发问题
...
本次提交为聊天处理逻辑带来了两项关键改进:
1. **中断后的延迟重处理:**
当机器人被新消息打断时,系统现在会等待一个短暂的延迟(例如0.5秒)再重新处理。这允许多条快速连续发送的消息被合并到同一次处理中,避免了因消息轰炸导致的多次、零碎的处理流程,提高了效率和响应的连贯性。
2. **为聊天器添加并发锁:**
在 `AffinityChatter` 中引入了 `asyncio.Lock`,以确保每个实例一次只处理一个流上下文。这可以防止在并发场景下可能出现的竞争条件,保证了数据处理的原子性和状态的一致性。
2025-10-13 09:22:57 +08:00
ikun-11451
95959b2c16
将获取方式改成get喵~
2025-10-12 22:12:20 +08:00
LuiKlee
dc1a919eda
减少 .env 文件的重复读取
...
只在开始时加载一次.env,后续从 os.environ 读取
2025-10-12 20:53:15 +08:00
minecraft1024a
dcd7e27cdc
Merge branches 'dev' and 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-12 14:28:58 +08:00
LuiKlee
cae9026ea1
添加重试机制
...
如果 ui_logger 服务 长期不可用,该版本会多尝试几次,可能增加少量 CPU 开销
3次重试 + 0.1s 间隔
2025-10-12 14:28:58 +08:00
minecraft1024a
4ded724f49
chore(chatter): 添加关于迁移逻辑的 TODO 注释
2025-10-12 14:28:22 +08:00
minecraft1024a
adfe15a10f
**我撞到dict了
2025-10-12 14:25:02 +08:00
minecraft1024a
54c75a1930
Revert "refactor(chatter): 简化 action_message 的数据类型处理"
...
This reverts commit 540b162c04 .
2025-10-12 14:20:07 +08:00
minecraft1024a
540b162c04
refactor(chatter): 简化 action_message 的数据类型处理
...
在 `ActionPlannerInfo` 中,将 `action_message` 的类型直接设为 `target_message_obj` (dict),移除了之前将其转换为 `DatabaseMessages` 对象的逻辑。
这一改动简化了代码,并与最近 `reply_message` 模型重构的目的一致,即在流程中优先使用更通用的字典类型,仅在需要时进行模型转换。
2025-10-12 14:19:26 +08:00
minecraft1024a
9fdae38b6a
refactor(replyer): 迁移 reply_message 到 DatabaseMessages 数据模型
...
将 `default_generator` 中使用的 `reply_message` 参数及其相关逻辑从旧的 SQLAlchemy `Messages` 模型迁移到新的 Pydantic `DatabaseMessages` 数据模型。
此更改统一了内部数据处理模型,提高了类型安全性和代码清晰度。同时,更新了所有对 `reply_message` 属性的访问方式,以适应新的嵌套数据结构(例如 `chat_info.platform` 和 `user_info.user_id`)。
2025-10-12 14:10:27 +08:00
minecraft1024a
e851dfbc62
refactor(replyer): 将 reply_message 类型从 dict 更改为 Messages 模型
...
将 `DefaultReplyer` 中多个方法的 `reply_message` 参数类型从通用的 `dict` 更改为更具体的 SQLAlchemy 模型 `Messages`。
这一更改提高了代码的类型安全性和可读性,使得数据结构更加明确。同时,更新了相关代码以直接访问模型属性,而不是使用字典的 `get()` 方法。
2025-10-12 14:03:20 +08:00
minecraft1024a
4df61eba1c
fix(chatter): 修复私聊场景下目标信息类型不匹配问题
...
在 affinity_flow_chatter 插件中,处理私聊上下文时,`plan.target_info` 可能是一个字典(dict)类型,而不是预期的对象类型。这会导致在访问 `plan.target_info.person_name` 等属性时引发 `AttributeError`。
本次提交通过增加类型检查来处理这种情况,确保无论是对象还是字典类型的 `target_info` 都能被正确解析,从而增强了代码的健壮性并修复了潜在的运行时错误。
2025-10-12 13:48:05 +08:00
minecraft1024a
2f9dc64d1e
refactor(maizone): 移除生成文案时对跨群聊上下文的依赖
...
此更改删除了在生成内容时获取和注入跨群聊上下文(`maizone_context_group`)的逻辑。
该功能已被新的、更通用的 S4U 上下文检索机制所取代,因此旧的硬编码实现不再需要,移除它可以简化代码并消除冗余。
2025-10-12 13:08:41 +08:00
minecraft1024a
86ab01996d
feat(schedule): 优化日程提示并增加时间感知能力
...
日程系统现在可以更详细地描述当前活动,包括计划的起止时间、已进行时间和剩余时间,为AI角色提供更强的时间感知和情境感。
主要变更:
- `schedule_manager`的`get_current_activity`现在返回包含活动和时间范围的字典,而不仅仅是活动名称。
- 在`default_generator`中,重构了日程提示的生成逻辑,使其能够计算并展示活动的详细时间信息。
- 修复了多处可能因变量为空(如`msg_content`、`user_nickname`)或事件处理结果为`None`而引发的潜在错误。
- 统一了各处对日程信息的调用方式。
2025-10-12 12:57:48 +08:00
minecraft1024a
146a142b47
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-12 12:41:14 +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
tt-P607
2d2571a9ed
refactor(napcat): 将 MoFox-Bot 重命名为 MaiBot
...
在 NapCat 适配器插件中,将 `mofox_bot` 相关的变量和函数名重命名为 `maibot`,以保持项目内部命名的一致性。这是在之前从 MaiBot 重命名为 MoFox-Bot 后的修正操作。
2025-10-11 23:35:55 +08:00
tt-P607
96bff37827
Revert "fix(napcat): 修复消息处理和事件注册逻辑"
...
This reverts commit 3737c6d458 .
2025-10-11 23:24:16 +08:00
tt-P607
3737c6d458
fix(napcat): 修复消息处理和事件注册逻辑
...
- 增加对字节类型消息的解码处理,增强了与不同 WebSocket 实现的兼容性。
- 修复了在 `register_events` 中使用 `Enum` 成员而非其 `value` 进行注册的错误。
- 将 `_start_maibot_connection` 重命名为 `_start_mofox_bot_connection` 以匹配项目重命名。
- 使用 `setattr` 动态设置 `mofox_bot_router`,提高代码的灵活性。
2025-10-11 23:13:10 +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
6774d2a6c2
refactor(napcat): 重命名 MaiBot 为 MoFox-Bot
...
将日志和注释中的 "MaiBot" 实例更新为新的项目名称 "MoFox-Bot",以保持品牌一致性。
2025-10-11 20:32:17 +08:00
minecraft1024a
fb922ede39
feat(server): 增加端口占用自动检测和递增功能
...
当服务器启动时指定的端口被占用时,会自动检测并尝试使用下一个可用端口,避免因端口冲突导致启动失败。
同时,更新了 NapCat 适配器插件,使其能够从全局服务器实例中获取正确的地址和端口,确保与核心服务器的通信。
2025-10-11 20:31:16 +08:00
minecraft1024a
e91efad9aa
build(deps): 更新项目元数据和依赖项
...
- 将项目名称从 `MaiBot` 更改为 `MoFox-Bot`
- 将 Python 版本要求提升至 `>=3.11`
- 调整 `rjieba` 依赖版本
2025-10-11 20:14:52 +08:00
minecraft1024a
4623e4b3e1
Revert "refactor(maizone): 升级上下文检索为用户中心模式"
...
This reverts commit dbe9d616d2 .
2025-10-11 20:13:15 +08:00
minecraft1024a
f7ed5211a3
feat(context): 增加跨上下文黑名单模式
...
为跨上下文共享功能引入了黑名单模式,并增加了相应的配置选项。
- 在 `ContextGroup` 配置中增加了 `mode` 字段,支持 "whitelist"(白名单)和 "blacklist"(黑名单)模式。
- 增加了 `default_limit` 配置项,用于黑名单模式下的默认消息获取数量。
- 重构了 `cross_context_api` 以支持新的黑名单逻辑,现在可以共享除了黑名单中指定聊天外的所有聊天上下文。
- 更新了配置文件模板以包含新模式的说明和示例。
2025-10-11 19:45:32 +08:00
minecraft1024a
989956ed57
feat(gemini): 为 aiohttp 客户端请求增加重试逻辑
...
在 `AiohttpGeminiClient` 的 `_request` 方法中引入了重试机制,以增强网络请求的健壮性。
- 对 `aiohttp.ClientError` 类型的网络连接错误,实现最多3次的重试逻辑。
- 对于 HTTP 状态码错误(如 4xx, 5xx),则立即失败,不进行重试。
- 更新了 `User-Agent` 以模拟浏览器,减少被屏蔽的风险。
- 相应地更新了文档字符串,以反映新的重试行为和异常处理。
2025-10-11 19:37:38 +08:00
minecraft1024a
9c4bce8d8f
docs(gemini): 为 aiohttp_gemini_client 添加详细的文档字符串
...
为 `AiohttpGeminiClient` 类及其辅助函数、方法和解析器类全面添加了中文文档字符串(docstrings)。
这提高了代码的可读性和可维护性,详细解释了每个组件的功能、参数和返回值,使其他开发者更容易理解和使用该模块。
2025-10-11 19:27:35 +08:00