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
minecraft1024a
016979b6c8
feat(db): 增强数据库自动迁移功能以支持索引创建
...
重构并增强了数据库自动迁移逻辑,以提供更健壮和全面的模式管理。
主要更新包括:
- **支持索引创建**: 迁移脚本现在会自动检测并创建模型中定义但数据库中缺失的索引。
- **重构迁移流程**:
1. 首先一次性创建所有缺失的表,提高初始设置效率。
2. 然后,逐表检查并添加缺失的列和索引,使逻辑更清晰。
- **改进 SQLAlchemy 用法**:
- 使用 `AddColumn` 和 `CreateIndex` DDL 结构代替原始 SQL 字符串,提高了代码的可读性和数据库方言的兼容性。
- 优化了 `inspector` 的使用方式,减少了重复调用。
- **增强日志记录**: 提供了更详细的日志输出,清晰地展示了正在执行的操作(如创建表、添加列、创建索引),并改进了错误报告。
2025-09-21 13:05:13 +08:00
雅诺狐
bd94ce1ce5
Update utils_video.py
2025-09-21 10:32:15 +08:00
雅诺狐
d529822191
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-09-21 09:59:43 +08:00
雅诺狐
0efbc6dbfe
更新视频识别
2025-09-21 09:59:39 +08:00
minecraft1024a
50f8273053
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-09-20 22:21:43 +08:00
minecraft1024a
a9a9f380d6
refactor(person_info): 引入同步方法 get_value 并替换旧的 get_value_sync(因为根本就没有这个方法)
...
为了解决在不同异步上下文中同步调用数据库可能引发的运行时错误,实现了一个新的、更健壮的同步方法 `PersonInfoManager.get_value`。
- 新方法能够正确处理已在运行的 asyncio 事件循环,提高了在混合代码环境中调用的稳定性。
- 全面替换了原有的 `get_value_sync` 方法调用,统一了同步获取用户信息的接口。
2025-09-20 22:21:35 +08:00
tt-P607
0286d75228
fix(emoji): 修正对同步函数的 await 调用
...
`get_recent_emojis` 和 `add_emoji_to_history` 函数已被重构为同步方法。本次提交移除了对这两个函数不必要的 `await` 调用,以修复由此引发的 `TypeError`。
2025-09-20 22:12:07 +08:00
tt-P607
ca780919a8
fix(core): 修正因异步改造遗漏的 await 调用
...
在最近的数据库异步化重构后,部分函数的调用处忘记添加 `await` 关键字,导致协程未被正确执行。
本次提交修复了以下模块中的问题:
- `ExpressionLearner`
- `ChatMessageBuilder`
- `EmojiAction
2025-09-20 22:04:43 +08:00
minecraft1024a
b42608c49a
也许是修好了表达学习吧
2025-09-20 20:45:56 +08:00
雅诺狐
4fcaa8e7fb
移出Rust组件
2025-09-20 18:36:02 +08:00