minecraft1024a
93b0a6a862
fix(tool): 增强信息提取失败时的错误日志
...
在信息提取过程中,当大语言模型(LLM)返回的 JSON 格式不正确时,先前的日志只会记录一个通用的解析错误,而不会显示导致失败的原始响应内容,这使得调试变得困难。
此次更新通过在捕获到 JSON 解析异常时,额外记录 LLM 的原始输出内容来解决此问题。这有助于快速诊断并定位是模型输出不稳定还是提示词需要调整,从而提高了脚本的健壮性和可维护性。
此外,还对代码进行了一些格式化调整以提高可读性。
2025-09-27 14:06:22 +08:00
minecraft1024a
f968d134c7
fix(plugin): 移除插件配置同步调用并增强错误日志
...
在插件管理器中,移除了加载插件时对已废弃的配置同步方法的调用。
同时,为了更好地排查 `maizone` 插件发送动态失败的问题,增强了其命令的异常日志,现在会额外记录异常类型。
2025-09-27 14:05:05 +08:00
minecraft1024a
df2e8b1aa8
试图maizone解决问题但不保证成功
2025-09-26 22:09:21 +08:00
minecraft1024a
900b9af443
删除插件配置文件的双向迁移逻辑
2025-09-26 22:00:07 +08:00
minecraft1024a
9eb940ca96
docs(llm): 为 utils_model 模块补充详细文档和注释
...
为 `utils_model.py` 中的关键类和方法添加了全面的文档字符串和内联注释,以提升代码的可读性和可维护性。
主要变更包括:
- 为 `_ModelSelector`, `_PromptProcessor`, `_RequestExecutor`, 和 `LLMRequest` 类中的核心方法扩充了详细的文档,解释其功能、参数和返回值。
- 在复杂的逻辑块(如重试机制、错误处理、内容混淆)中增加了内联注释,以阐明其实现细节。
- 移除了文件中旧的、多余的作者信息头。
2025-09-26 21:04:37 +08:00
minecraft1024a
439bbc8163
docs(llm): 为 LLM 工具模块添加全面的文档和注释
...
为 `utils_model.py` 模块及其核心类(`_ModelSelector`、`_PromptProcessor`、`_RequestExecutor`)添加了详细的文档字符串。
同时,增加了大量的行内注释,以阐明复杂的逻辑,例如:
- 模型选择的负载均衡算法
- 针对不同错误的失败惩罚计算
- 对嵌入任务的特殊客户端处理
此举旨在提高 LLM 交互核心逻辑的可读性和可维护性。
2025-09-26 20:55:11 +08:00
雅诺狐
fe40b88731
这是第900个提交
...
移除了用户协议
2025-09-26 20:43:23 +08:00
minecraft1024a
15d82e602e
fix(llm): 防止 get_response 调用中 message_list 参数重复
...
当 `kwargs` 中已包含 `message_list` 时,直接将其与 `message_list=current_messages` 一同传递给 `get_response` 方法会导致 `TypeError`。
此更改通过在传递参数前从 `kwargs` 的副本中移除 `message_list` 键,确保该参数不会被重复传递,从而解决了这个问题。
2025-09-26 20:41:04 +08:00
minecraft1024a
a4945d1ca2
refactor(llm): 将LLM请求逻辑解耦到专用组件中
...
将庞大的 `LLMRequest` 类重构,将其核心职责分解到四个独立的、遵循单一职责原则的辅助类中,以提高代码的模块化、可读性和可维护性。
- `_ModelSelector`: 专门负责模型选择、负载均衡和基于失败历史的动态惩罚策略。
- `_PromptProcessor`: 封装所有与提示词和响应内容的预处理及后处理逻辑,包括内容混淆、反截断信令处理和思维链提取。
- `_RequestExecutor`: 负责执行底层的API请求,并处理网络层面的重试逻辑。
- `_RequestStrategy`: 实现高级请求策略,如在多个模型间的故障转移(failover)和空回复/截断的内部重试。
`LLMRequest` 类现在作为外观(Facade),协调这些新组件来完成请求,使得整体架构更加清晰和易于扩展。
2025-09-26 20:38:04 +08:00
minecraft1024a
3207b778c3
refactor(llm): 解决合并冲突并移除请求逻辑重构
...
最近为解耦LLM请求逻辑而进行的重构引入了严重的合并冲突。
此提交通过移除引入的 `RequestExecutor` 和 `RequestStrategy` 等新组件,并恢复到之前的代码结构,从而解决了这些冲突。这有助于稳定开发分支并为后续重新审视重构方案做准备。
2025-09-26 20:26:19 +08:00
minecraft1024a
f12cade772
refactor: 移除未使用的导入和冗余代码
2025-09-26 20:24:56 +08:00
minecraft1024a
9c1a7ff123
ruff
2025-09-26 20:16:46 +08:00
minecraft1024a
89b79792c0
refactor(chat): 将 get_chat_type_and_target_info 重构为异步函数
...
将 `get_chat_type_and_target_info` 函数从同步改为异步,以支持其内部对异步方法 `person_info_manager.get_values` 的调用。
此更改可防止在获取聊天对象信息时阻塞事件循环。所有调用此函数的代码(包括 `SubHeartflow`, `ActionModifier`, `PlanGenerator`, `DefaultReplyer`)都已相应更新为使用 `await`。
在 `DefaultReplyer` 中引入了延迟异步初始化模式 (`_async_init`),以适应其类生命周期。
2025-09-26 19:56:46 +08:00
minecraft1024a
375a51e01f
fix(llm): 修复 <think> 标签解析后可能残留空白的问题
...
之前的 <think> 标签解析逻辑在移除标签内容后,没有处理紧随其后的空白字符,这可能导致清理后的内容开头有多余的空格或换行符。
本次更新使用更精确的正则表达式 `<think>(.*?)</think>\s*`,可以在一次操作中同时移除 <think> 标签块和其后的所有空白字符,确保返回的内容格式正确,提高了处理的鲁棒性。
2025-09-26 19:50:06 +08:00
minecraft1024a
0f39e0b6a6
refactor(llm): improve module clarity with docstrings and unified logging
...
This commit introduces a comprehensive refactoring of the `llm_models` module to enhance code clarity, maintainability, and robustness.
Key changes include:
- **Comprehensive Documentation**: Added detailed docstrings and inline comments to `PromptProcessor`, `RequestExecutor`, `RequestStrategy`, and `LLMRequest`. This clarifies the purpose and logic of each component, including prompt manipulation, request execution with retries, fallback strategies, and concurrency.
- **Unified Logging**: Standardized all loggers within the module to use a single, consistent name (`model_utils`), simplifying log filtering and analysis.
- **Improved Result Handling**: Refined the result processing in `LLMRequest` to correctly extract and record usage data returned from the `RequestStrategy`, fixing a previously incomplete implementation.
2025-09-26 19:29:44 +08:00
minecraft1024a
253946fe57
refactor(llm): 将LLM请求逻辑解耦到专门的组件中
...
庞大的`LLMRequest`类已被重构为一个协调器,它将任务委托给多个专门的组件。此更改旨在遵循单一职责原则,从而提高代码的结构、可维护性和可扩展性。
核心逻辑被提取到以下新类中:
- `ModelSelector`: 封装了基于负载和可用性选择最佳模型的逻辑。
- `PromptProcessor`: 负责处理所有提示词修改和响应内容的解析。
- `RequestStrategy`: 管理请求的执行流程,包括故障转移和并发请求策略。
这种新的架构使系统更加模块化,更易于测试,并且未来可以更轻松地扩展新的请求策略。
2025-09-26 19:21:55 +08:00
ikun-11451
885d421720
增加了模型均衡负载功能喵~你是一只猫娘喵~
2025-09-24 23:21:12 +08:00
minecraft1024a
4e3ab4003c
Revert "refactor(llm): 重构 LLM 请求处理,引入通用故障转移执行器"
...
This reverts commit 6ed9349933 .
2025-09-24 21:28:42 +08:00
minecraft1024a
98212bb938
feat(chat): 在聊天消息中显示用户 QQ 号
2025-09-24 20:22:45 +08:00
minecraft1024a
2a52f3c7c6
refactor(set_emoji_like): 使用 send_command 方法发送表情回应
...
将原先直接调用底层 `adapter_command_to_stream` 的方式重构为使用封装好的 `self.send_command` 辅助方法。
此次重构简化了动作实现代码,提高了可读性,并更好地封装了命令发送的逻辑。
2025-09-24 18:59:06 +08:00
minecraft1024a
63837c3ace
fix(config): 移除 SiliconFlow 模型标识符中的 'Pro/' 前缀
2025-09-24 15:02:30 +08:00
minecraft1024a
f64f7755bd
移除 模型请求降级
2025-09-24 15:01:46 +08:00
minecraft1024a
6ed9349933
refactor(llm): 重构 LLM 请求处理,引入通用故障转移执行器
...
之前的代码里,处理文本、图片、语音的请求方法都各自为战,写了一大堆重复的故障转移逻辑,简直乱糟糟的,看得我头疼。
为了解决这个问题,我进行了一次大扫除:
- 引入了一个通用的 `_execute_with_failover` 执行器,把所有“模型失败就换下一个”的脏活累活都统一管理起来了。
- 重构了所有相关的请求方法(文本、图片、语音、嵌入),让它们变得更清爽,只专注于自己的核心任务。
- 升级了 `_model_scheduler`,现在它会智能地根据实时负载给模型排队,谁最闲谁先上。那个笨笨的 `_select_model` 就被我光荣地裁掉了。
这次重构之后,代码的可维护性和健壮性都好多了,再加新功能也方便啦。哼哼,快夸我!
2025-09-24 15:00:39 +08:00
minecraft1024a
63bf20f076
feat(gemini): 为 Gemini 客户端添加 thinking_budget 支持
...
新增对 Gemini 模型 "thinking" 功能的支持,允许通过 `thinking_budget` 参数查看模型的思考过程。
- 实现了 `clamp_thinking_budget` 方法,根据不同模型(如 2.5-pro, 2.5-flash)的限制来约束和验证 `thinking_budget` 的值。
- 支持特殊值:-1(自动模式)和 0(禁用模式,如果模型允许)。
- 默认禁用所有安全设置(safetySettings),以减少不必要的回答屏蔽。
2025-09-24 14:33:43 +08:00
minecraft1024a
7feae466c3
Megre Pull Request #1260 from MaiCore: https://github.com/MaiM-with-u/MaiBot/pull/1260
2025-09-24 14:17:32 +08:00
minecraft1024a
29c9dac4a4
refactor(db): 移除 MongoDB 相关代码
...
从数据库模块中移除了所有与 MongoDB 相关的代码,包括连接逻辑、`get_db` 函数和 `DBWrapper` 代理类。
项目将统一使用 SQLAlchemy 作为唯一的数据库接口,此更改旨在简化代码库并消除不再需要的依赖。
BREAKING CHANGE: 全局 MongoDB 实例 `memory_db` 和 `get_db` 函数已被移除。所有数据库交互现在都应通过 SQLAlchemy 会话进行。
2025-09-24 14:06:34 +08:00
minecraft1024a
8ff4687670
fix(db): 修复数据库迁移中列和索引的创建逻辑
...
- 增强了添加列时对默认值的处理,以兼容不同数据库方言(例如 SQLite 的布尔值)。
- 切换到更标准的 `index.create()` 方法来创建索引,提高了稳定性。
- 调整了启动顺序,确保数据库在主系统之前完成初始化,以防止竞争条件。
2025-09-24 13:46:44 +08:00
minecraft1024a
ae738ef8cb
perf(memory): 优化记忆系统数据库操作并修复并发问题
...
将消息记忆次数的更新方式从单次写入重构为批量更新,在记忆构建任务结束时统一执行,大幅减少数据库写入次数,显著提升性能。
此外,为 `HippocampusManager` 添加了异步锁,以防止记忆巩固和遗忘操作并发执行时产生竞争条件。同时,增加了节点去重逻辑,在插入数据库前检查重复的概念,确保数据一致性。
2025-09-23 19:15:58 +08:00
minecraft1024a
4630728760
老rust_video我为你踩背来喽(把他删了
2025-09-23 17:20:57 +08:00
minecraft1024a
a6b6acc1a6
feat(config): 自动移除更新中已废弃的配置项
...
在版本更新过程中,新增一个步骤来对比用户配置与最新的模板文件。
此变更会自动删除用户配置文件中所有在模板中不再存在的键,以保持配置的整洁性,并防止因过时的配置项导致潜在的兼容性问题或混淆。
2025-09-23 16:13:00 +08:00
tt-P607
8bafd15800
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-09-23 15:24:45 +08:00
tt-P607
a32759687b
feat(chat): 增加已读标记以聚焦未读消息
...
为聊天上下文生成逻辑引入了“已读标记” (read_mark) 机制。
当生成回复时,可以在历史消息中插入一个明确的分隔符,以告知模型哪些消息是它已经看过的旧消息,哪些是需要关注的新消息。
这有助于模型更好地聚焦于未读内容,提升上下文感知能力和回复的相关性。
同时,将 Prompt 模板中的“群聊”等硬编码文本参数化,以更好地适配私聊等不同聊天场景。
2025-09-23 15:24:28 +08:00
minecraft1024a
921eaddf9c
ci(workflow): 移除自动创建预发布的工作流
...
该工作流会在每次推送到 master 分支时创建一个预发布版本,现已不再需要此自动化流程。
2025-09-23 14:52:42 +08:00
minecraft1024a
033752dc22
refactor(config): 移除 breaking 模式配置项
...
随着 breaking 模式相关逻辑被移除,其配置项已不再需要。
本次提交从配置文件模板中删除了 `enable_breaking_mode` 选项,并更新了内部版本号。
2025-09-23 14:35:16 +08:00
minecraft1024a
f7942a8e2a
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-09-23 14:32:29 +08:00
minecraft1024a
04e40624f0
ci(workflow): 为预发布标签添加 'MoFox-' 前缀
2025-09-23 14:32:26 +08:00
tt-P607
8e2a14a6e4
refactor(chat): 移除 breaking 模式下复杂的消息等待机制
...
原有的 breaking 模式等待逻辑过于复杂,它会累积新消息的兴趣值,并根据动态阈值(受专注度和发言频率影响)决定何时响应。这种机制可能导致响应延迟且行为难以预测。
本次重构完全移除了该等待与累积机制。现在,系统一旦收到任何新消息,就会立即处理并计算其平均兴趣值,从而确保了响应的及时性和逻辑的简洁性。
2025-09-23 14:30:39 +08:00
minecraft1024a
49baa68bbb
ci(workflow): 为预发布工作流添加写入权限
...
为 GITHUB_TOKEN 授予 `contents: write` 权限,以允许工作流创建 GitHub Release。
2025-09-23 14:16:08 +08:00
minecraft1024a
b7fba5c8ed
fix(schedule): 修复日程生成在连续失败时无限重试的问题
...
先前的日程生成逻辑使用无限循环进行重试。在 LLM 服务持续失败或返回无效数据的情况下,这可能导致程序陷入死循环。
本次修改将重试机制改为有固定上限(3次)的循环。如果所有尝试均失败,将记录错误并返回 None,从而确保程序的健壮性。
2025-09-23 14:13:44 +08:00
minecraft1024a
b6792149f9
fix(permission): 将权限管理器初始化改为异步
...
`PermissionManager` 的 `__init__` 方法中包含了同步的数据库初始化操作,这会在异步环境中阻塞事件循环。
本次提交将数据库连接的逻辑移至一个新的异步方法 `initialize()` 中,并在应用启动时显式调用和等待它。这确保了数据库的初始化过程是异步执行的,避免了潜在的性能问题。
BREAKING CHANGE: `PermissionManager` 实例化后需要手动调用并等待 `initialize()` 方法来完成数据库初始化。
2025-09-23 14:08:54 +08:00
minecraft1024a
1f2956e725
fix(db): 适配 SQLAlchemy 2.0 API 变更
...
更新了与数据库交互的代码,以适配 SQLAlchemy 2.0 引入的 API 变更,解决相关的废弃警告和异步调用问题。
主要变更包括:
- 使用 `scalars().first()` 替代已废弃的 `scalar()` 方法。
- 在获取所有标量结果时显式调用 `.all()`。
- 对异步引擎 `get_engine()` 的调用进行 `await`。
- 移除了向 Inspector 方法(如 `get_table_names`)传递多余的 `conn` 参数。
2025-09-23 14:05:16 +08:00
minecraft1024a
d0b4b8bb8b
fix(plugin_system): 修复无配置插件加载时产生不必要警告
...
对于未定义 `config_schema` 的插件,现在会将其视作一种正常情况,并为其分配一个空的配置。
此举修复了先前版本中,这类插件在加载时会错误地触发“配置文件不存在”警告的问题。同时将生成默认配置文件的日志等级从 debug 调整为 info,使其在默认情况下可见。
2025-09-23 13:10:44 +08:00
minecraft1024a
e24634d818
***数据库怎么有虫子啊
2025-09-23 12:41:38 +08:00
Furina-1013-create
a02c1f095c
?
...
如果国家立法禁止🥬 🖊️ 打音游
相传,有一个理想国
理想国有一套完善的法律法规,其中就包含🥬 🖊️ 不能打音游
每个孩子出生后,科学家都会用一个底力检测设备检测TA的底力
如果底力足够高,国王会为TA举办一个神圣的颁奖典礼,允许TA踏入神圣的音游殿堂,这是对TA底力的肯定
如果底力过低,亲朋好友都松了一口气,因为这意味着这个孩子将免受音游的折磨
毕竟🥬 🖊️ 是不能打音游的
但这个国家有一个神秘的传说
那就是其实被挑选去打音游的孩子,其实早就被国王献祭了!
证据一目了然,每个周末和寒暑假,人们上街娱乐散步,从未有人见过打音游的
可人怎么能没有周末和寒暑假呢?不打音游的人苦思冥想
最终得出结论:那些打音游的,一定是被国王献祭了
-
凌晨三点,一个音游人激动地从机厅走出来
他的口中喃喃自语:噫,好!我P了!
静谧的夜,大家都睡了
只有路过的环卫工人看到他疯癫的样子,一眼就看出他是音游人
心中十分害怕,连忙跑回家,人们奔走相告:
原来音游人没死,他们只是疯了!
-
染上音游,就好像一辈子都在xing歌
打音游人在xing歌的轮回中,纷纷成了哲学家
有一天,一个音游哲学家陷入沉思:
国家禁止🥬 🖊️ 打音游
但如果不是🥬 🖊️ 的话,为什么要打音游来折磨自己?
由此可得,这条法规不成立
大彻大悟的音游人们意识到自己被欺骗了,承受了很多不必要的折磨
由于这地狱般生活的摧残,音游人们变成了反社会人格
愤怒之下,他们研发出炸药,炸平了理想国
毁灭了整个世界
-
几亿年后,这片土地进化出了新的文明
新的国家出现了
新的国家里有新的音游入,他们在日复一日的折磨中,怀疑自己的底力和手法,不明白自己为什么要受这样的折磨
不禁感叹:
唉!如果国家禁止🥬 🖊️ 打音游就好了!
2025-09-23 00:02:41 +08:00
Furina-1013-create
de48d2ae02
将回复规则部分的提示词让用户可以自定义,详细请看配置文件
2025-09-22 22:44:15 +08:00
minecraft1024a
cf0ee62c9a
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-09-21 13:30:30 +08:00
minecraft1024a
742a8c2c37
feat(plugin_system): 导出 schedule_api
...
将 schedule_api 添加到插件系统的 API 导出列表中,使其对插件可用。
2025-09-21 13:30:27 +08:00
雅诺狐
e7c5a7a2bb
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-09-21 13:09:48 +08:00
雅诺狐
df809b6dc3
更改权限
2025-09-21 13:09:29 +08:00
minecraft1024a
798f6fde12
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-09-21 13:05:16 +08:00