minecraft1024a
|
0146eb7e9f
|
fix(llm): 增强并发执行和异常处理的健壮性
- 为 `execute_concurrently` 添加协程函数检查,防止传入非异步函数导致运行时错误。
- 统一将日志中的异常对象显式转换为字符串,以获得更清晰的错误输出。
- 移除了针对特定模型供应商的 403 错误降级处理逻辑,该逻辑已过时。
|
2025-09-24 21:11:48 +08:00 |
|
minecraft1024a
|
7dfc005a3e
|
refactor(llm): 精简故障转移执行器的调用逻辑
`_execute_with_failover` 方法在 `raise_on_failure=True` 时,保证了要么返回有效结果,要么抛出异常。
因此,先前在调用该方法后的 `if result:` 判断和 `raise RuntimeError` 语句是冗余且不可达的。本次重构移除了这些不必要的代码,直接返回该方法的调用结果,使代码更加简洁和清晰。
|
2025-09-24 21:06:20 +08:00 |
|
minecraft1024a
|
0ea8d16ff4
|
feat(chat): 在亲和流对话中触发表达学习
每次亲和流对话器处理消息时,都会异步触发一次表达学习任务。这有助于模型根据最近的对话内容,持续优化其表达方式。
|
2025-09-24 20:57:12 +08:00 |
|
minecraft1024a
|
a6f2fb78e1
|
refactor(llm): 重构 LLM 请求处理,引入通用故障转移执行器
之前的代码里,处理文本、图片、语音的请求方法都各自为战,写了一大堆重复的故障转移逻辑,简直乱糟糟的,看得我头疼。
为了解决这个问题,我进行了一次大扫除:
- 引入了一个通用的 `_execute_with_failover` 执行器,把所有“模型失败就换下一个”的脏活累活都统一管理起来了。
- 重构了所有相关的请求方法(文本、图片、语音、嵌入),让它们变得更清爽,只专注于自己的核心任务。
- 升级了 `_model_scheduler`,现在它会智能地根据实时负载给模型排队,谁最闲谁先上。那个笨笨的 `_select_model` 就被我光荣地裁掉了。
这次重构之后,代码的可维护性和健壮性都好多了,再加新功能也方便啦。哼哼,快夸我!
|
2025-09-24 20:33:10 +08:00 |
|
minecraft1024a
|
98212bb938
|
feat(chat): 在聊天消息中显示用户 QQ 号
|
2025-09-24 20:22:45 +08:00 |
|
minecraft1024a
|
064784d6b8
|
feat(chat): 在聊天消息中显示用户 QQ 号
|
2025-09-24 20:21:59 +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
|
bcf3d6c4af
|
Merge branch 'afc' of https://github.com/MoFox-Studio/MoFox_Bot into afc
|
2025-09-24 18:58:49 +08:00 |
|
minecraft1024a
|
e3b08b2982
|
refactor(set_emoji_like): 使用 send_command 方法发送表情回应
将原先直接调用底层 `adapter_command_to_stream` 的方式重构为使用封装好的 `self.send_command` 辅助方法。
此次重构简化了动作实现代码,提高了可读性,并更好地封装了命令发送的逻辑。
|
2025-09-24 18:58:46 +08:00 |
|
Windpicker-owo
|
96d072336b
|
Merge branch 'afc' of https://github.com/MoFox-Studio/MoFox_Bot into afc
|
2025-09-24 18:15:15 +08:00 |
|
Windpicker-owo
|
cd2f4f0531
|
删除无用日志
|
2025-09-24 18:14:34 +08:00 |
|
minecraft1024a
|
7607b08cc2
|
杀掉一部分日志
|
2025-09-24 18:13:46 +08:00 |
|
minecraft1024a
|
159a7f7e9d
|
fix(napcat_adapter): 确保回复消息的目标 ID 始终为字符串
|
2025-09-24 18:06:13 +08:00 |
|
minecraft1024a
|
693392add9
|
chore(napcat_adapter): 增加回复消息段数据日志
|
2025-09-24 18:01:14 +08:00 |
|
minecraft1024a
|
efd8414985
|
chore(napcat_adapter): 增加待处理消息段的日志
|
2025-09-24 17:34:16 +08:00 |
|
minecraft1024a
|
e7dd4f2c31
|
chore(napcat_adapter): 增加回复消息的目标 ID 日志
|
2025-09-24 17:32:46 +08:00 |
|
minecraft1024a
|
51a6094072
|
删除几个日志
|
2025-09-24 17:14:48 +08:00 |
|
minecraft1024a
|
62817a1a51
|
fix(plugin_system): 兼容从 'id' 字段获取消息 ID
|
2025-09-24 17:05:30 +08:00 |
|
minecraft1024a
|
62ba8c3bfb
|
我是打日志先人
|
2025-09-24 16:53:44 +08:00 |
|
minecraft1024a
|
c7f8760b2d
|
chore(napcat_adapter): 增加消息发送与回复处理的详细日志
为了方便排查消息发送失败或引用回复行为不符合预期的问题,在消息发送和回复处理的关键路径上增加了详细的日志输出。
- 在调用 NapCat 发送接口前,记录准备发送的完整消息体。
- 在 `handle_reply_message` 方法中,记录获取被引用消息详情、判断是否 @ 用户以及最终返回的消息段等步骤。
|
2025-09-24 16:24:16 +08:00 |
|
minecraft1024a
|
5b8cc51dad
|
revert 1a24233b86deb0c4d8446ff31c072ea4b18572aa中的plugin.py
|
2025-09-24 15:51:28 +08:00 |
|
tt-P607
|
ac9347ebae
|
perf(core): 将异步任务日志降级为 debug 级别
将消息处理的异步任务创建和完成日志级别从 INFO 调整为 DEBUG。
这些日志在高并发场景下会产生大量输出,影响关键信息的查看,并且会带来不必要的 I/O 开销。将其降级到 DEBUG 级别可以使默认日志更清晰,同时保留在需要时进行详细调试的能力。
|
2025-09-24 15:45:51 +08:00 |
|
tt-P607
|
1a24233b86
|
feat(core): 实现消息异步处理并引入LLM驱动的智能表情回应
本次更新对系统核心处理流程和插件功能进行了重要升级,主要包含以下两方面:
1. **消息处理异步化**:
- 在 `main.py` 中引入了 `asyncio.create_task` 机制,将每条消息的处理过程包装成一个独立的后台任务。
- 这解决了长时间运行的AI或插件操作可能阻塞主事件循环的问题,显著提升了机器人的响应速度和系统稳定性。
- 为后台任务添加了完成回调,现在可以详细地记录每个消息处理任务的成功、失败或取消状态及其耗时,便于监控和调试。
2. **`set_emoji_like` 插件智能化**:
- 为 `set_emoji_like` 插件增加了LLM驱动的表情选择功能。当动作指令未指定具体表情时,插件会自动构建包含聊天上下文、情绪和人设的提示,请求LLM选择一个最合适的表情进行回应。
- 为支持此功能,对AFC规划器的提示词进行了优化,为LLM提供了更清晰的参数示例和规则,提高了动作生成的准确性。
此外,为了统一日志规范,将 `[所见]` 消息接收日志集中到 `bot.py` 中,确保在任何过滤逻辑执行前记录所有收到的消息,并移除了插件中重复的日志。
|
2025-09-24 15:43:12 +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 |
|
Windpicker-owo
|
37f9b46bcf
|
feat(affinity_flow_chatter): 增强动作思考过程在回复生成中的集成
添加了将动作思考过程集成到回复生成流程的功能:
- 在 generator_api 中新增逻辑,将 action_data 中的 thinking 字段内容添加到 extra_info
- 优化 plan_filter 中对 thinking 字段的处理逻辑,避免添加无意义的默认值
- 更新默认生成器提示词,移除冗余的关系信息块重复
- 在 planner 提示词中添加不对表情包消息回应的限制
|
2025-09-24 13:53:54 +08:00 |
|
minecraft1024a
|
8ff4687670
|
fix(db): 修复数据库迁移中列和索引的创建逻辑
- 增强了添加列时对默认值的处理,以兼容不同数据库方言(例如 SQLite 的布尔值)。
- 切换到更标准的 `index.create()` 方法来创建索引,提高了稳定性。
- 调整了启动顺序,确保数据库在主系统之前完成初始化,以防止竞争条件。
|
2025-09-24 13:46:44 +08:00 |
|
Windpicker-owo
|
9ca8d5d1c0
|
perf(logging): 将信息级别日志降级为调试级别以优化性能
减少日志输出量,将两个模块中的非关键信息日志从INFO级别调整为DEBUG级别,提升运行效率并减少日志噪音。
|
2025-09-24 12:48:37 +08:00 |
|
minecraft1024a
|
f7131e65dd
|
refactor(sleep_manager): 引入上下文对象重构睡眠与唤醒状态管理
创建了 `SleepContext` 与 `WakeUpContext` 类,用于统一封装和管理各自模块的状态数据及其持久化逻辑。
- `SleepManager` 和 `WakeUpManager` 不再直接管理零散的状态属性(如 `_current_state`, `wakeup_value`),而是通过持有一个 Context 实例来进行状态的读写和保存。
- 移除了原有的 `SleepStateSerializer` 静态类和管理器中的 `_save_state` / `_load_state` 方法,将逻辑集中到新的 Context 类中。
此次重构旨在提升代码的内聚性,实现状态管理与业务逻辑的分离,使代码结构更清晰,更易于维护和扩展。
|
2025-09-24 11:39:13 +08:00 |
|
tt-P607
|
d666773f1f
|
feat(affinity_flow_chatter): 优化动作提示词,为 LLM 提供完整 JSON 范例
为了提升语言模型在选择和执行动作时的稳定性和格式准确性,对动作提示词的生成方式进行了重构。
旧的实现仅提供动作和参数的文本描述,这使得模型在生成动作 JSON 时容易出错。
新的实现为每个可用动作动态构建一个完整的 JSON 使用范例,包含 `action_type`、附带示例值的参数和 `reason` 字段。这种更明确的格式指导旨在显著降低模型输出格式错误的风险。
|
2025-09-24 03:17:11 +08:00 |
|
tt-P607
|
ce7d0dead4
|
feat(affinity_flow_chatter): 优化戳一戳动作以更精准地回应原始消息
当LLM在执行 poke_user 动作时未指定 target_message_id,系统现在会主动在消息历史中寻找触发该动作的“戳一戳”通知,以实现更具上下文的回应。如果未找到对应的通知消息,则会回退到使用最新的消息作为目标。
此外,本次更新包含以下修复:
- 修复了在计划过滤器中错误地引用 `self.available_actions` 的问题,现已更正为 `plan.available_actions`。
- 修复了 `ActionModifier` 中动作列表在多阶段过滤时未及时更新的问题,确保了动作筛选的准确性。
|
2025-09-24 01:59:28 +08:00 |
|
tt-P607
|
1b8876c4bb
|
feat(affinity_flow_chatter): 重构计划器以支持多动作并优化思考逻辑
本次提交对亲和流聊天器(AFC)的计划与决策核心进行了重大重构和功能增强,旨在提升其响应的灵活性、鲁棒性和可观测性。
主要变更包括:
1. **多动作支持与解析重构**:
- `PlanFilter` 现在能够正确解析并处理 LLM 返回的动作列表(`"actions": [...]`),而不仅限于单个动作,这使得机器人能够执行更复杂的组合行为。
- 增强了动作解析的鲁棒性,当找不到 `target_message_id` 时会优雅降级(如 `reply` 变为 `no_action`),并会根据当前实际可用的动作列表对 LLM 的选择进行验证。
2. **提示词工程与思考模式优化**:
- 重新设计了核心 Planner 提示词,将 `thinking` 字段定义为“思绪流”,引导 LLM 生成更自然、更符合角色的内心独白,而非简单的决策理由,从而提升决策质量和角色扮演的沉浸感。
- 强制要求 LLM 为需要目标消息的动作提供 `target_message_id`,提高了动作执行的准确性。
3. **上下文构建与鲁棒性增强**:
- 在 `PlanFilter` 中增加了上下文回退机制,当内存中缺少历史消息时(如冷启动),会自动从数据库加载最近的消息记录,确保决策所需上下文的完整性。
- 简化了提供给 LLM 的未读消息格式,移除了兴趣度分数等内部信息,并加入了用户昵称,使其更易于理解和处理。
4. **可观测性与日志改进**:
- 在 AFC 的多个关键节点(消息接收、决策、动作执行)增加了彩色的详细日志,使其决策流程像 HFC 一样清晰可见,极大地方便了调试。
- 将系统中多个模块(视频分析、兴趣度匹配、情绪管理)的常规日志级别从 `INFO` 调整为 `DEBUG`,以减少在生产环境中的日志噪音。
5. **动作描述优化**:
- 优化了 `set_emoji_like` 和 `emoji` 等动作的描述,使其意图更清晰,帮助 LLM 做出更准确的动作选择。
|
2025-09-24 01:41:04 +08:00 |
|
tt-P607
|
9135bd72e4
|
Merge branch 'afc' of https://github.com/MoFox-Studio/MoFox_Bot into afc
|
2025-09-23 23:20:31 +08:00 |
|
tt-P607
|
7a05312672
|
fix(affinity_flow_chatter): 修复私聊上下文构建时对目标信息的访问方式
在近期的重构中,`plan.target_info` 的数据结构已从对象变更为字典。此提交将对应的属性访问方式(`.`)更新为字典键访问(`.get()`),以防止在构建私聊上下文描述时出现 `AttributeError`。
|
2025-09-23 23:20:18 +08:00 |
|
Windpicker-owo
|
0e4ba5f852
|
refactor(mood): 支持 DatabaseMessages 类型并改进时间处理逻辑
扩展 update_mood_by_message 方法参数类型,使其支持 MessageRecv 和 DatabaseMessages 两种消息类型。重构时间获取逻辑,通过类型检查分别处理不同消息对象的时间字段,提高代码健壮性和可复用性。
|
2025-09-23 23:19:55 +08:00 |
|
Windpicker-owo
|
d2abd92a44
|
feat(affinity_flow_chatter): 添加情绪状态获取接口
为 AffinityChatter 和 ChatterActionPlanner 添加情绪状态相关方法:
- get_current_mood_state() 获取当前情绪状态描述
- get_mood_stats() 获取情绪状态统计信息
- 在规划器中集成情绪管理器更新逻辑
这些接口允许外部模块获取聊天过程中的情绪状态数据,增强了情感交互能力。
|
2025-09-23 23:14:11 +08:00 |
|
Windpicker-owo
|
5e6cc6ad96
|
refactor(notification_sender): 移除对 HfcContext 的依赖并简化方法签名
|
2025-09-23 22:52:32 +08:00 |
|
Windpicker-owo
|
05dcf5acc1
|
Merge branch 'afc' of https://github.com/MoFox-Studio/MoFox_Bot into afc
|
2025-09-23 22:20:40 +08:00 |
|
Windpicker-owo
|
ebc4feebd9
|
refactor(affinity_flow): 重构规划器架构并简化日志输出
- 移除ChatterManager中不必要的ActionPlanner实例化
- 在MessageManager中设置默认聊天模式为FOCUS
- 重构BaseChatter构造函数,移除planner依赖
- 统一ChatMode枚举定义,移除GROUP/PRIVATE模式
- 重构AffinityChatter内部planner初始化逻辑
- 大幅简化兴趣评分系统的日志输出
- 修复plan_filter中的动作解析逻辑,支持新格式
- 更新planner_prompts提示词模板,移除私聊限制
- 优化关系追踪器的错误处理和日志输出
|
2025-09-23 22:18:03 +08:00 |
|
minecraft1024a
|
2414912c06
|
feat(chat): 为消息管理器添加睡眠与唤醒机制
将 `SleepManager` 和 `WakeUpManager` 集成到 `MessageManager` 中,以实现机器人的睡眠和唤醒功能。
在睡眠状态下,机器人将忽略常规消息,不进行处理。只有当接收到特定唤醒触发器(如私聊消息或在群聊中被@)时,机器人才能被唤醒并恢复正常的消息处理流程。
此机制旨在模拟更自然的用户行为,并在机器人非活跃时段减少不必要的打扰。
|
2025-09-23 21:53:00 +08:00 |
|
minecraft1024a
|
ff72181649
|
refactor(chat): 更新判断群聊消息的属性以适配新结构
|
2025-09-23 21:28:30 +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 |
|