Commit Graph

1339 Commits

Author SHA1 Message Date
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
minecraft1024a
419d1a483a feat(context): 增强s4u跨上下文模式并重构API
在跨上下文功能中为s4u模式引入`s4u_ignore_whitelist`配置项。当启用时,除了白名单中配置的聊天记录外,还会自动获取目标用户与Bot的私聊记录,以构建更全面的用户画像。

主要变更:
- 在 `ContextGroup` 配置中添加 `s4u_ignore_whitelist` 字段。
- 重构 `cross_context_api`,将 `get_context_groups` 更改为 `get_context_group`,使其返回完整的 `ContextGroup` 对象而非仅ID列表,以便于访问新配置。
- 调整 `build_cross_context_s4u` 函数以处理新逻辑,包括获取私聊记录和避免重复处理。
- 更新了配置文件模板以包含新选项的说明和示例。
2025-10-11 19:19:52 +08:00
minecraft1024a
67ab97edef docs(config): 更新跨上下文配置的注释和示例
将 `cross_context` 配置中 `limit` 参数的格式说明从整数更新为字符串,以匹配实际代码实现。同时,相应地更新了示例代码,确保用户能够正确配置。
2025-10-11 19:07:19 +08:00
minecraft1024a
a4d06480a0 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-10-11 19:05:48 +08:00
minecraft1024a
25aa15eb19 chore: 更新模板配置文件版本至 7.2.8 2025-10-11 19:05:45 +08:00
tt-P607
3fcc53226f Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-10-11 19:04:36 +08:00
tt-P607
51abc9dbd9 蒽,小改一下llm分割提示词 2025-10-11 19:04:31 +08:00
minecraft1024a
b3956c2fa6 feat(cross_context): 支持为跨上下文聊天指定消息数量
允许用户在配置文件中为每个聊天流(群聊或私聊)单独设置要检索的历史消息数量(limit)。如果未指定,则默认为5条。

- 更新了 `build_cross_context_normal` 和 `build_cross_context_s4u` 方法以解析和使用这个新的 `limit` 参数。
- 在S4U(Search for User)模式下,获取的消息数量调整为 `limit` 的4倍,以确保有足够的消息可供筛选。
- 更新了配置文件模板 `bot_config_template.toml` 以反映此项新功能,并提供了示例。
2025-10-11 19:02:09 +08:00
minecraft1024a
604b5bc4ac Revert "feat(cross_context): 新增以用户为中心的跨上下文检索功能"
This reverts commit e9c0b8bf9a.
2025-10-11 18:54:49 +08:00
minecraft1024a
3172f36fa5 Revert "feat(cross_context): 优化跨上下文检索,区分群聊与私聊记录"
This reverts commit f09af9fe56.
2025-10-11 18:54:42 +08:00
minecraft1024a
4db6a532fd refactor(schedule): 优化日程生成日志输出
将月度计划的日志记录逻辑从 `plan_manager` 迁移到 `schedule_manager` 中,使其仅在生成日程并实际使用到月度计划时才打印相关信息,避免了不必要的日志输出。

- 从 `plan_manager` 中移除了获取月度计划后的日志打印。
- 在 `schedule_manager` 的日志函数中增加了对参考月度计划的展示,使日志内容更具上下文。
2025-10-11 18:52:15 +08:00
tt-P607
244b95e0af revert: 回退 commit 94e34c9370 2025-10-11 15:40:55 +08:00
tt-P607
0383a999fb 总之就是知识库 2025-10-11 14:18:54 +08:00
tt-P607
94e34c9370 fix(chat): 修复消息打断会取消正在进行的回复任务的问题
之前的消息打断逻辑会无差别地取消处理流中的所有任务。这会导致一个问题:当用户在机器人生成回复期间快速发送新消息时,回复任务会被意外中断,导致机器人无法正常完成回复。

本次修改通过引入 `is_replying` 状态来解决此问题:
1.  在 `StreamContext` 中新增 `is_replying` 状态标志,用于追踪回复生成过程。
2.  当开始生成回复时,设置该标志为 `True`,并在回复完成或取消后通过 `finally` 块确保其恢复为 `False`。
3.  `MessageManager` 的打断检查逻辑现在会首先检查此标志,如果为 `True` 则跳过打断,从而保护正在进行的回复。
4.  `cancel_all_stream_tasks` 也增加了 `exclude_reply` 选项,确保即使触发打断,也不会取消回复任务。
2025-10-11 02:11:32 +08:00
tt-P607
a3d62a265d 蒽,你别管我就爱改提示词() 2025-10-11 01:37:56 +08:00
tt-P607
e7e1d71994 refactor(chat): 简化打断计数重置逻辑 2025-10-11 00:46:26 +08:00
tt-P607
dbe9d616d2 refactor(maizone): 升级上下文检索为用户中心模式
此前的跨群聊上下文依赖于一个固定的互通组 (`maizone_context_group`),这种方式不够灵活且上下文相关性较弱。

本次重构将上下文获取逻辑全面切换至新引入的 `get_user_centric_context` API,以提升上下文的精准度和相关性。

- **内容生成 (`content_service`)**: 现在会检索机器人自身在所有聊天中的近期发言作为参考,使新生成的内容更贴近其当前活动与话题。
- **评论回复 (`qzone_service`)**: 在回复用户评论时,会检索该用户与机器人在其他聊天中的对话记录,从而生成更具个性化和情境感知能力的回复。
2025-10-10 23:35:16 +08:00
tt-P607
f09af9fe56 feat(cross_context): 优化跨上下文检索,区分群聊与私聊记录
先前的实现中,在获取以用户为中心的上下文时,对所有聊天类型都只提取该用户的发言记录。

这在私聊场景下会导致上下文不完整,因为缺少了另一方(机器人)的消息。

本次更新通过判断聊天类型,实现了差异化的上下文获取:
- **群聊**: 保持原有逻辑,只获取目标用户的近期发言。
- **私聊**: 获取完整的近期双向聊天记录,以提供更全面的对话背景。
2025-10-10 19:17:07 +08:00
tt-P607
e9c0b8bf9a feat(cross_context): 新增以用户为中心的跨上下文检索功能
引入了一种全新的“用户中心”跨上下文检索模式,以替代并废弃了原有的固定共享组模式。

当回复特定用户时,系统现在可以自动从该用户参与的其他聊天(包括私聊和群聊)中检索其最近的发言记录,从而为大语言模型提供更丰富、更具个性化的上下文,以生成更相关的回复。

此功能可通过配置进行精细化控制,支持“全局启用”、“白名单”和“禁用”三种模式,并可设置检索的消息数量和聊天流数量上限。

此外,本次更新还包含一些健壮性修复:
- 修正了事件管理器返回结果可能为None时导致属性错误的潜在问题。
- 增强了对消息内容和用户昵称等可能为空值的处理。

BREAKING CHANGE: `cross_context` 的配置结构已完全重构。原有的 `groups` 配置项已被废弃。请用户根据新的 `bot_config_template.toml` 文件更新配置,迁移到新的 `user_centric_retrieval_mode`、`whitelist_chats` 和 `blacklist_chats` 格式。
2025-10-10 19:08:30 +08:00
tt-P607
434f225037 蒽,没错我我又改提出词了 2025-10-10 17:45:42 +08:00
tt-P607
0e7086765f refactor(chat): 优化聊天日志与分段回复提示词
本次提交主要包含两项优化:

1.  **聊天日志增强**: 在接收消息的日志中增加了聊天来源(群聊名称或“私聊”),方便在后台快速定位消息上下文。
2.  **分段回复优化**: 简化并明确了分段回复的 LLM 提示词,引导模型生成更自然、简短的回复分段,以改善对话的节奏感。
2025-10-10 16:26:11 +08:00
tt-P607
9f0a7caa94 refactor(replyer): 优化分段回复的提示词以改善聊天节奏
调整了默认回复生成器中关于分段的提示词,旨在让回复的节奏更自然、更像真人聊天。

主要变更包括:
- 强调了“积极分段”的倾向,鼓励模型在大多数情况下寻找自然的断点。
- 新增了标点符号处理规则,在插入 `[SPLIT]` 标记时自动移除前面的逗号或句号,避免不自然的停顿。
- 移除了原有的字数限制建议,让模型更专注于逻辑和情感的自然分割,而非死板的长度。
2025-10-10 15:42:26 +08:00
tt-P607
6654f0caf8 fix(tts): 修正配置文件加载逻辑
先前通过 `__file__` 相对路径定位配置文件的方案不够健壮,在不同运行环境下可能导致路径解析失败。

本次修改通过从插件文件向上追溯,动态计算项目根目录,从而构建了更可靠的配置文件绝对路径。

此外,移除了实例级别的配置缓存,确保每次都能读取到最新的配置,避免了因缓存导致的问题。同时,恢复了对 `spatial_effects` 配置节的加载支持。
2025-10-10 11:15:07 +08:00
tt-P607
7b5fa563c5 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-10-10 10:53:28 +08:00
tt-P607
291034dd0c build(deps): 为 tts 插件添加 soundfile 和 pedalboard 依赖 2025-10-10 10:53:22 +08:00
LuiKlee
9f8a5c9612 修复tts_voice_plugin/plugin.py117行的(( 2025-10-10 10:38:04 +08:00
LuiKlee
4b960dba18 修复response_set 为空时的逻辑缺陷
感觉不改也没问题
应该不至于炸(
2025-10-09 23:53:31 +08:00
LuiKlee
f1b600fd97 修复逻辑错误+重构
spatial_effects 配置	未在描述中定义但尝试加载
现已移除
炸了叫lui()
2025-10-09 23:47:44 +08:00
tt-P607
efc283fe21 fix(plugins): 修复 tts 插件中错误的机器人根目录路径
之前的路径 `plugin_file.parent.parent.parent` 错误地指向了 `src` 目录,而不是项目根目录。

此更改通过将路径调整为 `...parent.parent.parent.parent.parent`,修正了根目录的计算逻辑,确保能够正确找到并加载配置文件。
2025-10-09 16:31:36 +08:00
tt-P607
825df92bec Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-10-09 16:14:45 +08:00
tt-P607
38156360e3 语音插件,需要自行准备好gsv 2025-10-09 16:14:34 +08:00
Windpicker-owo
32f365e20c refactor(chat): 简化记忆构建和回复生成逻辑
移除记忆构建过程中的系统标识符和时间戳,简化提示词模板,使对话更加自然流畅。减少冗余的回复规则和约束,专注于生成简洁、口语化的回复内容。
2025-10-09 15:35:27 +08:00
Windpicker-owo
207512c084 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-10-08 22:33:14 +08:00
Windpicker-owo
dd1444cc41 refactor(chat): 重构关系系统并优化消息打断处理机制
- 移除独立的RelationshipConfig,将关系追踪参数整合到AffinityFlowConfig
- 实现消息打断后立即重新处理流程,提升交互响应性
- 优化关系追踪系统,添加概率筛选和超时保护机制
- 改进机器人自引用处理,确保消息内容正确显示
- 增强用户信息提取逻辑,兼容多种消息格式
- 添加异步后台任务处理,避免阻塞主回复流程
- 调整兴趣评分阈值和权重参数,优化消息匹配精度
2025-10-08 22:33:10 +08:00
tt-P607
4c46bb6b4b feat(chat): 为提示词模板添加机器人名称和昵称变量
将机器人的名称(bot_name)和昵称(bot_nickname)添加到提示词格式化上下文中,以便在提示词中动态使用,增强个性化。
2025-10-08 22:04:56 +08:00
LuiKlee
b3ae8e4f1a 重构database_data_model.py
没用力测试,炸了叫lui修
2025-10-08 18:39:43 +08:00
LuiKlee
d0d1a35fd4 修复handle_message_storage 中模式与结果的逻辑不一致 2025-10-08 17:57:53 +08:00
雅诺狐
0f39067ffd Update README.md 2025-10-08 09:58:44 +08:00
雅诺狐
d052dbe5a9 更新版本号至0.11.1阿尔法第一版本 2025-10-07 21:30:15 +08:00
雅诺狐
ff46e74a28 Potential fix for code scanning alert no. 5: Use of a broken or weak cryptographic hashing algorithm on sensitive data
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-10-07 20:39:49 +08:00
雅诺狐
49e75e7f00 为合并修改版本号
移除Dev分支后缀
2025-10-07 20:34:14 +08:00
minecraft1024a
f9c02520d0 feat(llm): 在负载均衡中引入延迟作为考量因素
为了更智能地选择模型,负载均衡算法现在会考虑模型的平均响应延迟。延迟较高的模型将受到惩罚,从而优先选择响应更快的模型。

- 使用 `namedtuple` (`ModelUsageStats`) 替代了原有的元组来存储模型使用统计信息,提高了代码的可读性和可维护性。
- 在模型选择的评分公式中增加了 `avg_latency` 权重,使算法能够动态适应模型的性能变化。
- 更新了 `LLMRequest` 类,以在每次成功请求后计算并更新模型的平均延迟。
2025-10-07 20:29:09 +08:00
minecraft1024a
4f9b31d188 refactor(core): 统一代码风格并移除未使用的导入
本次提交主要进行代码风格的统一和现代化改造,具体包括:
- 使用 `|` 联合类型替代 `typing.Optional`,以符合 PEP 604 的现代语法。
- 移除多个文件中未被使用的导入语句,清理代码。
- 调整了部分日志输出的级别,使其更符合调试场景。
- 统一了部分文件的导入顺序和格式。
2025-10-07 20:16:47 +08:00
Windpicker-owo
b3d1c93b87 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-10-07 17:50:25 +08:00
Windpicker-owo
8142a12acb feat(chat): 添加机器人身份信息到提示词模板
在多个提示词模板中添加机器人名称和昵称信息,让AI能够正确识别自己的身份。同时更新PromptParameters类以支持这些新参数。
2025-10-07 17:50:18 +08:00