minecraft1024a
|
ee7a37ce70
|
feat(plugin_system): 引入高级Prompt注入规则系统以取代旧注入点机制
引入了一套全新的、基于规则的Prompt注入系统,以取代原有的 `injection_point` 机制。这套新系统提供了更强大、更灵活的Prompt内容注入能力。
主要变更包括:
- **引入 `InjectionRule` 和 `InjectionType`**:定义了注入规则的数据结构和注入类型(如 `PREPEND`, `APPEND`, `REPLACE`, `REMOVE`, `INSERT_AFTER`),允许插件开发者精确控制注入行为。
- **重构 `PromptComponentManager`**:核心逻辑从简单地拼接字符串 (`execute_components_for`) 重构为按优先级应用注入规则 (`apply_injections`),支持正则表达式匹配和更复杂的注入操作。
- **向后兼容**:`PromptInfo` 中增加了兼容逻辑,能自动将旧的 `injection_point` 定义转换为新的 `injection_rules`,确保现有插件无需立即修改即可正常工作。
- **更新 `BasePrompt`**:废弃了 `injection_point` 属性,并推荐使用新的 `injection_rules` 属性。
- **更新示例插件**:`hello_world_plugin` 已更新,展示了新注入规则的使用方法。
BREAKING CHANGE: `BasePrompt` 中的 `injection_point` 属性已被废弃。虽然目前存在向后兼容逻辑,但未来版本将移除该属性。所有Prompt组件都应迁移至使用 `injection_rules` 以获得更强的控制力和未来的兼容性。
|
2025-10-25 21:24:51 +08:00 |
|
minecraft1024a
|
0737f84fd4
|
refactor(plugin): 优化插件加载与应用关闭逻辑
在插件加载流程中,增加了对兴趣计算器类型的检查,确保只有 `BaseInterestCalculator` 的有效子类才会被实例化,增强了系统的健壮性。
同时,简化了应用关闭逻辑,移除了对已废弃 `shutdown` 方法的调用,统一使用 `stop` 方法来停止应用。
|
2025-10-25 20:25:51 +08:00 |
|
minecraft1024a
|
bb9c31e63a
|
refactor(memory): 简化记忆系统架构,移除 MemoryManager
将 `get_message_collection_context` 方法从 `MemoryManager` 移动到 `MessageCollectionStorage`,并直接在 `MemorySystem` 中调用它。这一变更简化了依赖关系,并消除了 `MemoryManager` 类,使其职责更加清晰。
主要变更:
- 从 `MemoryManager` 中移除 `get_message_collection_context` 并将其功能迁移。
- 更新 `MemorySystem` 以直接使用 `MessageCollectionStorage` 来检索上下文。
- 移除 `MemoryManager` 的初始化和依赖,因为它不再需要。
- 将 `MemorySystem` 的初始化改为单例模式,以确保全局唯一实例。
|
2025-10-25 20:20:07 +08:00 |
|
minecraft1024a
|
5a99442064
|
refactor(memory): 引入 MemoryManager 统一管理瞬时记忆
引入 `MemoryManager` 类来封装和统一处理瞬时记忆(消息集合)的检索和管理逻辑。此举将瞬时记忆的相关操作从 `MemorySystem` 中解耦,提高了代码的模块化和可维护性。
主要变更:
- 创建 `MemoryManager` 类,负责消息集合的初始化、上下文检索等。
- `MemorySystem` 现在通过 `MemoryManager` 实例来获取瞬时记忆,简化了其内部实现。
- 移除了 `MemorySystem` 中原有的、分散的瞬时记忆检索代码,使其职责更单一。
|
2025-10-25 20:13:32 +08:00 |
|
minecraft1024a
|
917754b4e0
|
feat(memory): 引入基于向量的瞬时记忆系统
引入了一个新的瞬时记忆系统,该系统将短期对话片段(消息集合)存储在专门的向量数据库中,以提供更即时、更相关的上下文。
该系统通过以下组件实现:
- **MessageCollection**: 用于封装一组相关消息的数据结构。
- **MessageCollectionStorage**: 负责将消息集合向量化并存入专用的ChromaDB集合,同时管理集合的生命周期(基于数量和时间清理)。
- **MessageCollectionProcessor**: 缓冲每个聊天的消息,当达到阈值时,将它们组合成一个`MessageCollection`并交由Storage处理。
- **集成**: `MemoryManager`和`MemorySystem`已更新,将瞬时记忆无缝融合到现有的记忆检索流程中,优先展示来自当前聊天的上下文。
此外,还进行了以下调整:
- 移除`orjson.dumps`中的`ensure_ascii=False`参数,以遵循`orjson`的默认行为,该行为始终返回UTF-8字节串,从而简化了编码处理。
- 在配置文件中增加了瞬时记忆最大集合数和保留时间的选项。
|
2025-10-25 20:07:58 +08:00 |
|
minecraft1024a
|
3877772c7c
|
refactor(memory): 移除硬编码的向量数据库集合名称
将向量数据库的集合名称配置移出代码和配置文件,改为在ChromaDB客户端初始化时动态创建和管理。这提高了灵活性,并为未来支持多集合或动态集合名称奠定了基础。
- 从 `VectorStorageConfig` 中移除了 `memory_collection` 和 `metadata_collection` 字段。
- 从 `MemoryConfig` 中移除了 `vector_db_memory_collection` 和 `vector_db_metadata_collection` 配置项。
- 更新了 `bot_config_template.toml` 模板,删除了相关的集合名称和静态集合定义。
|
2025-10-25 18:36:35 +08:00 |
|
minecraft1024a
|
df4e638e76
|
~谁在写代码不加注释我就把它炒了😡😡😡😡😡~
feat(prompt): 补全了prompt类的函数注释和内联注释
|
2025-10-25 17:48:21 +08:00 |
|
minecraft1024a
|
a2eb7521d5
|
fix(chat): 修复当用户ID为空时主人认证失败的问题
在某些情况下(例如,某些平台或匿名使用场景),用户信息中可能不包含`user_id`。之前的代码没有处理这种情况,导致在调用`permission_api.is_master`时会因`user_id`为空而引发异常。
本次修改增加了对`user_id`的空值检查。如果`user_id`不存在,将直接返回空字符串,避免不必要的权限验证和潜在的错误,从而增强了代码的健壮性。
|
2025-10-25 17:15:20 +08:00 |
|
明天好像没什么
|
0381320859
|
revert(mcp): 移除MCP SSE客户端及工具集成支持
|
2025-10-25 16:16:23 +08:00 |
|
明天好像没什么
|
91021275c7
|
revert(mcp): 移除MCP SSE客户端支持
|
2025-10-25 16:11:22 +08:00 |
|
Eric-Terminal
|
e15573e9d6
|
feat(prompt): 添加主人认证提示词功能 (#47)
|
2025-10-25 15:55:12 +08:00 |
|
minecraft1024a
|
f87c9e25ef
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-25 14:57:12 +08:00 |
|
minecraft1024a
|
b4210f614a
|
refactor(api): 重构 LLM 统计数据收集逻辑
将原有的方式重构为直接从数据库中查询和聚合 LLM 使用记录。这提高了数据的持久性和准确性,并消除了对后台统计任务的依赖。
主要变更:
- 移除旧的 `StatisticOutputTask` 和基于 Redis 的统计变量。
- 新增 `_collect_stats_in_period` 函数,用于在指定时间段内从 `LLMUsage` 表中动态收集和计算统计数据。
- 统计时,将数据库中存储的实际模型标识符(model_identifier)映射回配置文件中的模型名称,确保成本计算和数据显示的一致性。
- 扩展了 `period_type` 查询参数,增加了如 "last_hour", "last_24_hours", "last_7_days" 等多个预设时间范围,提升了 API 的易用性。
|
2025-10-25 14:57:09 +08:00 |
|
Windpicker-owo
|
c2314dcff2
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-25 14:33:51 +08:00 |
|
Windpicker-owo
|
a8308ed38b
|
fix(chat): 在私聊场景禁用引用回复功能
修改 ChatterActionManager 中的回复逻辑,在私聊场景下不设置引用回复标志,因为私聊只有两个人对话,引用回复是多余的。群聊场景仍然保持引用回复功能以帮助定位回复的目标消息。
- 私聊场景:禁用引用回复(set_reply_flag = false)
- 群聊场景:启用引用回复(set_reply_flag = true)
- 更新了相关日志输出以包含私聊状态信息
|
2025-10-25 14:33:45 +08:00 |
|
minecraft1024a
|
d0610ed500
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-25 14:29:09 +08:00 |
|
minecraft1024a
|
fa58b0e999
|
feat(api): 增加 LLM 统计路由
将 LLM 使用情况统计的 API 路由注册到主应用程序中,以便通过 `/api/statistic` 路径访问相关统计数据。
|
2025-10-25 14:27:08 +08:00 |
|
Windpicker-owo
|
29ece1c7d0
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-25 14:02:28 +08:00 |
|
Windpicker-owo
|
c91ff46028
|
refactor(affinity): 统一提及分计算逻辑
简化提及分计算逻辑,不再区分@提及、文本提及和私聊消息,统一使用配置的提及分值。移除对is_at属性的依赖,统一通过is_mentioned、文本匹配和私聊状态来判断是否提及机器人。
|
2025-10-25 14:01:52 +08:00 |
|
minecraft1024a
|
3c4a3b0428
|
chore: 统一代码风格并进行现代化改造
本次提交主要包含以下内容:
- **代码风格统一**:对多个文件进行了格式化,包括移除多余的空行、调整导入顺序、统一字符串引号等,以提高代码一致性和可读性。
- **类型提示现代化**:在多个文件中将旧的 `typing` 模块类型提示(如 `Optional[T]`、`List[T]`、`Union[T, U]`)更新为现代 Python 语法(`T | None`、`list[T]`、`T | U`)。
- **f-string 格式化**:在 `scripts/convert_manifest.py` 中,将 `.format()` 调用更新为更现代和易读的 f-string `!r` 表示法。
- **文件末尾换行符**:为多个文件添加或修正了文件末尾的换行符,遵循 POSIX 标准。
|
2025-10-25 13:31:22 +08:00 |
|
minecraft1024a
|
5fc9d1b9da
|
refactor(schedule_api): 重构日程与计划API为只读数据库查询
将日程API从依赖`schedule_manager`的内存状态改为直接从数据库异步查询。这提高了数据一致性,并解除了模块间的紧密耦合。
主要变更:
- **解耦**: 移除对`schedule_manager`的依赖,所有数据直接来自数据库。
- **只读设计**: 移除了`regenerate_schedule`, `ensure_monthly_plans`, `archive_monthly_plans`等写操作API,使API职责更清晰,专注于查询。
- **功能增强**:
- `get_schedule` (原`get_today_schedule`) 现在支持查询任意日期的日程。
- `get_monthly_plans` 新增随机抽样功能。
- 新增`get_activities_between`用于查询特定时间范围的活动。
- 新增`count_monthly_plans`用于统计月度计划数量。
- **格式化输出**: 所有查询函数均增加了`formatted`参数,方便插件直接获取格式化后的字符串。
- **文档更新**: 全面更新了模块和函数的文档字符串,以反映新的API设计和用法。
|
2025-10-25 13:29:49 +08:00 |
|
minecraft1024a
|
577c76b4a4
|
refactor(plugin): 统一插件日志记录器为 get_logger
将 hello_world_plugin 中直接使用 `logging` 模块的方式,改为从 `src.common.logger` 导入并使用 `get_logger`。
这确保了插件日志与核心应用日志格式和配置的一致性,便于集中管理和问题排查。同时,此举也修正了 Pylance 关于导入顺序的警告。
|
2025-10-25 11:37:14 +08:00 |
|
minecraft1024a
|
07cf6e4074
|
feat(plugin): 为插件系统提供本地存储API
新增了一个集成的本地存储API,允许插件以键值对的形式持久化数据到本地JSON文件。该API通过 `get_local_storage(name)` 函数为每个插件提供一个独立的、线程安全的存储实例。
主要功能包括:
- 动态创建和管理插件的JSON数据文件。
- 提供 `get`, `set`, `add`, `update`, `delete` 等标准数据操作方法。
- 确保文件读写操作的线程安全。
- 实现了数据缓存以提高性能。
|
2025-10-25 11:27:21 +08:00 |
|
minecraft1024a
|
110dc9f27b
|
refactor(plugin): 适配 message 对象的 plain_text 字段重命名
将 `PlusCommand` 基类中对 `message.plain_text` 的引用更新为 `message.processed_plain_text`,以适配 `Message` 数据结构的变更。同时,优化了群聊判断逻辑,直接使用 `group_id` 进行判断。
|
2025-10-25 10:23:00 +08:00 |
|
minecraft1024a
|
54993aa546
|
refactor(chat): 简化并硬编码prompt模板为s4u模式
移除了动态选择prompt模板的逻辑,直接使用`s4u_style_prompt`。这与最近移除`normal`模式并强制使用`s4u`模式的更改保持一致,简化了代码逻辑。
|
2025-10-25 10:03:28 +08:00 |
|
minecraft1024a
|
83602b181b
|
refactor(core): 移除睡眠系统
由于睡眠系统存在设计缺陷、实现复杂且维护成本高,并且实际使用效果不佳,常常导致非预期的行为(如错过重要消息或在不应睡眠时睡眠),现决定将其从核心代码中完全移除。
移除内容包括:
- 删除了整个 `sleep_system` 模块及其所有相关逻辑、状态管理和定时任务。
- 清理了配置文件 `config.py` 和 `official_configs.py` 中的 `SleepSystemConfig`。
- 移除了 `main.py` 中关于睡眠系统的初始化调用。
- 清理了 `message_manager` 和 `proactive_thinker` 中对睡眠状态的检查。
- 更新了 `bot_config_template.toml` 模板文件,移除了所有睡眠系统相关的配置项。
此举旨在简化项目架构,提高系统的稳定性和可预测性。未来的相关功能可能会以更健壮、更模块化的插件形式重新实现。
|
2025-10-25 10:00:56 +08:00 |
|
minecraft1024a
|
079a9a3fa0
|
refactor(prompt): 移除 normal 模式并强制使用 s4u 模式
删除了旧的 "normal" prompt 模式及其相关逻辑,包括 prompt 模板、上下文构建函数和配置选项。现在系统将统一并强制使用 "s4u" 模式进行回复生成。
主要变更:
- 从 `default_generator.py` 中移除了 `normal_style_prompt` 模板和模式选择逻辑。
- 从 `prompt.py` 中删除了 `_build_normal_chat_context` 和 `_prepare_normal_params` 等相关函数。
- 从 `official_configs.py` 中移除了 `prompt_mode` 配置项。
- 更新了 `bot_config_template.toml` 配置文件,移除了 `prompt_mode` 选项和相关的 normal 模式上下文共享组示例。
此重构简化了 prompt 生成流程,统一了上下文处理方式,减少了代码的复杂性和维护成本。
|
2025-10-25 09:56:14 +08:00 |
|
minecraft1024a
|
4dfb4f6bc9
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-25 09:30:23 +08:00 |
|
minecraft1024a
|
cbad858026
|
refactor(proactive_thinker): 将提示词构建逻辑迁移至独立的prompt模块
将 `ProactiveThinkerExecutor` 中用于构建决策(decision)和计划(plan)的提示词字符串的逻辑,提取并重构到新的 `prompts.py` 模块中。
这一重构旨在:
- **提升可维护性**:将复杂的提示词模板与核心业务逻辑分离,使代码结构更清晰。
- **简化代码**:`proactive_thinker_executor.py` 的代码量大幅减少,职责更加单一,专注于执行流程。
- **便于管理**:集中管理所有相关的提示词模板,方便未来进行统一的调整和优化。
|
2025-10-25 09:30:20 +08:00 |
|
tt-P607
|
b72090f024
|
fix(chat): 修复动作执行异常时 is_replying 状态未重置的问题
在 `execute_action` 方法中引入 `try...finally` 结构,以确保无论动作执行成功与否,`is_replying` 状态最终都能被可靠地重置为 `False`。
此更改解决了在动作执行期间发生意外错误时,聊天流可能被永久锁定在“正在回复”状态的问题,从而提高了系统的健壮性。
|
2025-10-25 03:29:14 +08:00 |
|
tt-P607
|
718d787a04
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-25 03:03:04 +08:00 |
|
tt-P607
|
b9e6caadc6
|
feat(tts): 重构TTS Action,实现LLM对语音风格和语言的精确控制
本次更新对TTS插件进行了重大重构,旨在赋予规划模型(LLM)对语音合成过程更直接、更精确的控制能力,从而显著提升语音输出的质量、灵活性和响应速度。
主要变更包括:
1. **LLM直控模式**:
- 移除了原有的“主模型重写文本”步骤,TTS Action现在直接使用规划器在 `text` 参数中提供的最终文本进行合成。
- **原因**: 减少了不必要的API调用和处理延迟,同时确保LLM的意图能够被无损地传达到语音生成环节。
2. **增强的参数化**:
- Action新增了 `voice_style` 和 `text_language` 参数,允许LLM根据对话上下文动态选择最合适的语音风格和语言模式。
- **原因**: 使语音能够更好地匹配情感和场景,并解决了以往自动语言检测在多语言混合场景下(如中日、中粤)可能出错的问题。
3. **动态风格加载**:
- 可用的语音风格列表不再硬编码,而是从插件的 `config.toml` 配置文件中动态读取。
- **原因**: 极大地增强了插件的可配置性和可维护性,用户可以轻松地通过修改配置文件来添加或调整语音风格。
4. **优化的语言决策**:
- 在 `TTSService` 中实现了更智能的语言选择逻辑,其优先级为:LLM直接指定 > 风格配置默认 > 内容自动检测。
- **原因**: 提供了多层次的控制,确保在各种情况下都能选择最优的语言模式进行合成。
5. **提示词强化**:
- 更新了Action的描述和规则,特别是增加了对标点符号使用的“铁则”,以引导LLM生成更规范、更适合语音合成的文本。
- **原因**: 从源头上提升输入文本的质量,以确保语音停顿自然,避免合成失败。
|
2025-10-25 03:00:48 +08:00 |
|
Windpicker-owo
|
c423a621d8
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-24 23:22:18 +08:00 |
|
Windpicker-owo
|
0c6ae244ad
|
feat(chat): 统一消息格式信息处理逻辑
在多个消息处理模块中统一了 format_info 的处理方式,确保适配器支持的消息类型能够正确传递给 action_modifier:
- 在 bot.py、chat_stream.py、optimized_chat_stream.py 中新增 _prepare_additional_config 方法
- 将 format_info 嵌入到 additional_config 中,确保数据库存储一致性
- 增强 action_modifier 中的适配器类型检查逻辑,添加更详细的错误日志
- 修复 storage.py 中的 additional_config 处理逻辑,避免覆盖原始配置
这些改进确保了 Action 能够正确检查适配器支持的消息类型,避免因缺少 format_info 导致的类型检查失败。
|
2025-10-24 23:22:04 +08:00 |
|
minecraft1024a
|
f90205feaa
|
refactor(core): 移除睡眠系统
由于睡眠系统存在设计缺陷、实现复杂且维护成本高,并且实际使用效果不佳,常常导致非预期的行为(如错过重要消息或在不应睡眠时睡眠),现决定将其从核心代码中完全移除。
移除内容包括:
- 删除了整个 `sleep_system` 模块及其所有相关逻辑、状态管理和定时任务。
- 清理了配置文件 `config.py` 和 `official_configs.py` 中的 `SleepSystemConfig`。
- 移除了 `main.py` 中关于睡眠系统的初始化调用。
- 清理了 `message_manager` 和 `proactive_thinker` 中对睡眠状态的检查。
- 更新了 `bot_config_template.toml` 模板文件,移除了所有睡眠系统相关的配置项。
此举旨在简化项目架构,提高系统的稳定性和可预测性。未来的相关功能可能会以更健壮、更模块化的插件形式重新实现。
|
2025-10-24 21:48:51 +08:00 |
|
minecraft1024a
|
dd5770b3f0
|
refactor(sleep_system): 重构睡眠系统为单例模式并优化启动逻辑
将睡眠系统的核心组件 `SleepStateManager` 从全局变量实例化改为通过 `get_sleep_state_manager()` 函数获取的单例模式。这一改变解决了模块间的循环导入问题,并提升了代码的组织性和可维护性。
主要变更:
- 引入 `get_sleep_state_manager` 函数以惰性加载方式创建和返回 `SleepStateManager` 单例。
- 将 `sleep_logic.py` 中重复的作息时间计算逻辑提取到新的 `utils.py` 模块中,以实现代码复用。
- 在 `SleepStateManager` 初始化时增加 `_refresh_sleep_state` 方法,用于在程序启动时校准睡眠状态,确保状态与当前时间一致,防止因程序重启导致的状态错乱。
- 更新所有调用点,使用新的 `get_sleep_state_manager()` 函数来访问状态管理器。
|
2025-10-24 21:26:24 +08:00 |
|
minecraft1024a
|
663e9e0a23
|
refactor(napcat_adapter): 移除消息处理中多余的日志记录
|
2025-10-24 20:00:51 +08:00 |
|
minecraft1024a
|
375949643c
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-24 19:51:39 +08:00 |
|
minecraft1024a
|
84be38e08b
|
feat(plugin_system): 引入高级Prompt注入规则系统以取代旧注入点机制
引入了一套全新的、基于规则的Prompt注入系统,以取代原有的 `injection_point` 机制。这套新系统提供了更强大、更灵活的Prompt内容注入能力。
主要变更包括:
- **引入 `InjectionRule` 和 `InjectionType`**:定义了注入规则的数据结构和注入类型(如 `PREPEND`, `APPEND`, `REPLACE`, `REMOVE`, `INSERT_AFTER`),允许插件开发者精确控制注入行为。
- **重构 `PromptComponentManager`**:核心逻辑从简单地拼接字符串 (`execute_components_for`) 重构为按优先级应用注入规则 (`apply_injections`),支持正则表达式匹配和更复杂的注入操作。
- **向后兼容**:`PromptInfo` 中增加了兼容逻辑,能自动将旧的 `injection_point` 定义转换为新的 `injection_rules`,确保现有插件无需立即修改即可正常工作。
- **更新 `BasePrompt`**:废弃了 `injection_point` 属性,并推荐使用新的 `injection_rules` 属性。
- **更新示例插件**:`hello_world_plugin` 已更新,展示了新注入规则的使用方法。
BREAKING CHANGE: `BasePrompt` 中的 `injection_point` 属性已被废弃。虽然目前存在向后兼容逻辑,但未来版本将移除该属性。所有Prompt组件都应迁移至使用 `injection_rules` 以获得更强的控制力和未来的兼容性。
|
2025-10-24 19:51:35 +08:00 |
|
Windpicker-owo
|
88dbebdf7f
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-24 19:49:45 +08:00 |
|
Windpicker-owo
|
493d446b8e
|
feat(chat): 增强消息存储和动作类型检查功能
- 在消息存储中增加additional_config字段支持,用于存储格式信息和其他配置
- 改进动作修改器的类型检查逻辑,新增_get_adapter_supported_output_types方法
- 通过解析additional_config中的format_info动态获取适配器支持的输出类型
- 添加对字符串和字典格式additional_config的兼容处理
- 默认支持NapCat适配器的常见消息类型(text、image、voice等)
|
2025-10-24 19:49:28 +08:00 |
|
minecraft1024a
|
5df8a03b97
|
chore(log): 调整日志级别以减少不必要的输出
将部分用于调试回复消息功能的 `info` 级别日志调整为 `debug` 级别,避免在生产环境中输出过多冗余信息,让日志更清爽一些。
|
2025-10-24 19:23:23 +08:00 |
|
minecraft1024a
|
bae520b293
|
chore: 代码格式化与类型注解优化
对项目中的多个文件进行了代码风格调整和类型注解更新。
- 使用 ruff 工具对代码进行自动格式化,主要包括:
- 统一 import 语句的顺序和风格。
- 移除未使用的 import。
- 调整代码间距和空行。
- 将部分 `Optional[str]` 和 `List[T]` 等旧式类型注解更新为现代的 `str | None` 和 `list[T]` 语法。
- 修复了一些小的代码风格问题,例如将 `f'...'` 更改为 `f"..."`。
|
2025-10-24 19:08:32 +08:00 |
|
minecraft1024a
|
1700bdbb42
|
refactor(plugin_system): 将依赖检查逻辑从插件基类移至插件管理器
将插件的Python包依赖和插件间依赖的检查逻辑,从各个插件实例的初始化阶段 (`PluginBase`),统一前置到插件模块加载阶段 (`PluginManager`)。
这一重构有以下好处:
- **提前失败 (Fail-fast)**:在加载插件模块时立即检查依赖,如果依赖不满足,则直接跳过该插件的加载和实例化,避免了不必要的资源消耗和后续的运行时错误。
- **职责单一**: `PluginManager` 负责插件的发现、加载和依赖管理,而 `PluginBase` 更专注于插件自身的业务逻辑和生命周期,使得代码结构更清晰。
- **配置中心化**: 依赖关系现在统一在 `__plugin_meta__` 中声明,而不是分散在插件类的属性中,提高了可维护性。
- **简化插件实现**: 插件开发者不再需要在插件类中定义 `dependencies` 和 `python_dependencies` 属性,只需在 `__init__.py` 中声明元数据即可。
|
2025-10-24 19:08:07 +08:00 |
|
tt-P607
|
c656690a1e
|
fix(chat): 修复戳一戳等notice事件无法触发聊天流程的问题
该修复解决了机器人对“戳一戳”等 notice 事件没有响应的 bug。
问题根源在于 MessageManager 在处理 notice 消息时,仅将其添加到全局通知管理器后便直接返回,导致消息无法进入后续的聊天处理流程,即使相关配置已开启。
主要变更:
修改 Elysia/Bot/src/chat/message_manager/message_manager.py,在处理 notice 消息时,增加对 bot_config.toml 中 enable_notice_trigger_chat 配置的判断。只有在该配置为 false 时才中断流程,否则将消息继续送入聊天上下文。
修复了 _get_notice_ttl 函数中因 notice_type 可能为 None 而引发的潜在 TypeError。
将 Bot/src/config/official_configs.py 中 enable_notice_trigger_chat 的默认值从 False 修改为 True,以提供更合理的开箱即用体验。
|
2025-10-24 14:33:24 +08:00 |
|
tt-P607
|
3bc7666526
|
feat(emoji): 优化表情识别提示词以提升描述质量
重构了表情包识别和描述生成的提示词,以获得更详尽、准确且符合网络文化的描述。同时调整了TTS插件的错误处理机制。
主要变更:
- **表情识别提示词(Prompt)优化**:
- 为静态和动态表情包设计了更结构化的描述要求,引导模型识别主题、核心元素、角色出处、网络梗以及图片内文字。
- 强调了对特殊网络文化符号(如“滑稽”表情)的准确识别,避免泛化描述。
- 优化了“点睛之笔”精炼描述的提示词,使其能更好地结合上下文信息,生成更自然的描述。
- **TTS插件错误处理重构**:
- 移除了`TTSVoiceAction`中合成失败时向用户发送动态错误消息的逻辑。
- 改为静默失败,仅在后台记录详细的错误日志,避免在语音服务暂时不可用时对用户造成干扰。
|
2025-10-23 22:38:51 +08:00 |
|
tt-P607
|
50050dd985
|
feat(plan): 为月度计划添加软删除并优化状态提示词
为 `MonthlyPlan` 数据库模型增加 `is_deleted` 字段,以支持软删除功能,避免数据直接丢失。
同时,统一并优化了注入到AI上下文中的当前日程活动提示词,指导模型仅在被直接询问时才提及自身状态,使对话更加自然流畅。
|
2025-10-23 21:48:29 +08:00 |
|
tt-P607
|
e5effe6a59
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-23 20:25:33 +08:00 |
|
tt-P607
|
6a7118d331
|
chore(chat): 移除提示词注入中的冗余日志
|
2025-10-23 20:25:21 +08:00 |
|
tt-P607
|
10f56a8bc1
|
chore(log): 调整LLM相关日志级别为DEBUG
将LLM原始提示词和响应的日志级别从`INFO`调整为`DEBUG`。
此举旨在减少非调试模式下的日志输出,避免过长的模型交互内容刷屏,从而保持日志的整洁性,仅在需要时提供详细的调试信息。
|
2025-10-23 20:07:51 +08:00 |
|