tt-P607
|
9152a06f5b
|
fix(chat): 增强回复内容清理逻辑以处理嵌套回复头
先前的回复头清理逻辑无法有效处理模型生成的复杂或嵌套的回复结构,例如 `[回复<A>:[回复<B>:内容]],说:`,导致清理不彻底。
本次更新通过以下方式提升了清理的健壮性:
- 使用循环和更健壮的正则表达式,以递归方式剥离多层嵌套的回复头。
- 增加了一个基于 `],说:` 的 rsplit 作为最终防线,处理日志中观察到的其他特殊格式。
- 移除了可能存在的 `[SPLIT]` 标记,避免意外的消息分割。
此外,本次提交还更新了 QQ 表情列表,增加了新的表情并修正了一个格式错误。
|
2025-10-30 18:28:00 +08:00 |
|
Windpicker-owo
|
2c3895ef97
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-30 17:35:29 +08:00 |
|
Windpicker-owo
|
cf83d801ab
|
fix(relationship): 修复关系信息提取中的类型检查和数据库查询问题
- 添加对 points 和 forgotten_points 的类型检查,确保始终为列表类型
- 修复数据库查询中缺失的 await 调用
- 统一数据库查询结果的字典访问方式,替代之前的对象属性访问
- 改进错误日志记录,添加完整的异常堆栈信息
- 优化默认关系信息的返回逻辑,仅在完全无数据时返回初次交流提示
fix(plugins): 修复插件工具类初始化参数传递问题
- 在 ChatStreamImpressionTool 和 UserProfileTool 中添加 chat_stream 参数传递
- 确保插件工具类正确调用父类初始化方法
|
2025-10-30 17:35:21 +08:00 |
|
Windpicker-owo
|
ea7c1f22f9
|
feat(relationship): 重构关系信息提取系统并集成聊天流印象
- 在 RelationshipFetcher 中添加 build_chat_stream_impression 方法,支持聊天流印象信息构建
- 扩展数据库模型,为 ChatStreams 表添加聊天流印象相关字段(stream_impression_text、stream_chat_style、stream_topic_keywords、stream_interest_score)
- 为 UserRelationships 表添加用户别名和偏好关键词字段(user_aliases、preference_keywords)
- 在 DefaultReplyer、Prompt 和 S4U PromptBuilder 中集成用户关系信息和聊天流印象的组合输出
- 重构工具系统,为 BaseTool 添加 chat_stream 参数支持上下文感知
- 移除旧的 ChatterRelationshipTracker 及相关关系追踪逻辑,统一使用评分API
- 在 AffinityChatterPlugin 中添加 UserProfileTool 和 ChatStreamImpressionTool 支持
- 优化计划执行器,移除关系追踪相关代码并改进错误处理
BREAKING CHANGE: 移除了 ChatterRelationshipTracker 类及相关的关系追踪功能,现在统一使用 scoring_api 进行关系管理。BaseTool 构造函数现在需要 chat_stream 参数。
|
2025-10-30 16:58:26 +08:00 |
|
Windpicker-owo
|
f6349f278d
|
feat(expression): 添加表达方式选择模式支持与DatabaseMessages兼容性改进
- 新增统一的表达方式选择入口,支持classic和exp_model两种模式
- 添加StyleLearner模型预测模式,可基于机器学习模型选择表达风格
- 改进多个模块对DatabaseMessages数据模型的兼容性处理
- 优化消息处理逻辑,统一处理字典和DatabaseMessages对象
- 在配置中添加expression.mode字段控制表达选择模式
|
2025-10-29 22:52:32 +08:00 |
|
tt-P607
|
57794480b8
|
feat(chatter): 引入决策历史以增强上下文连续性
为提升语言模型在连续对话中的表现,本次更新引入了决策历史功能。该功能旨在为模型提供一个短期记忆,记录其最近的思考过程与采取的行动。
主要变更包括:
- 新增 `DecisionRecord` 数据模型,用于存储“思考-动作”对。
- 在 `StreamContext` 中添加 `decision_history` 字段,以维护每个聊天流的决策历史。
- 在 `plan_filter` 中实现决策记录的逻辑,并在构建提示词时将其注入,供模型参考。
- 添加 `enable_decision_history` 和 `decision_history_length` 配置项,允许用户启用此功能并调整历史记录的长度。
通过回顾近期的决策,模型可以更好地避免重复行为,并生成更具连贯性和创造性的响应。
|
2025-10-29 18:58:28 +08:00 |
|
tt-P607
|
21b5e378ea
|
feat(chat): 增强回复功能,支持通过字符串指定并显示用户ID
为了让插件能更灵活地构造回复消息,而无需依赖完整的原始消息对象,本次提交引入了新的回复机制。
- `send_api` 新增 `reply_to` 参数,允许使用 `昵称(ID)` 格式的字符串直接指定回复目标。
- 统一更新了回复消息的显示格式,在回复引文中一并展示用户昵称和ID,避免因昵称重复造成混淆。
|
2025-10-29 16:58:50 +08:00 |
|
tt-P607
|
f2d7af6d87
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-29 10:51:44 +08:00 |
|
tt-P607
|
54d1071432
|
feat(affinity_flow): 添加 Normal 模式开关以控制自动切换
新增了 `affinity_flow.enable_normal_mode` 配置项,允许用户自由启用或禁用 Normal 聊天模式。
当禁用 Normal 模式时:
- 规划器将强制把处于 Normal 模式的会话切换回 Focus 模式。
- 在 Focus 模式下完成回复后,将不再自动切换到 Normal 模式。
这为希望始终保持完整规划流程的用户提供了更大的灵活性。
|
2025-10-29 10:46:31 +08:00 |
|
Windpicker-owo
|
919bcd4e2e
|
feat(chat): 优化消息处理提示词与兴趣度显示逻辑
- 在默认回复器中移除未读消息的兴趣度显示,简化回复逻辑
- 在亲和流聊天器的计划过滤器中保留兴趣度显示,供planner决策使用
- 更新planner提示词,明确兴趣度优先原则但禁止在思考流中使用技术术语
- 统一历史消息区块的标题描述,提高可读性
|
2025-10-29 10:05:15 +08:00 |
|
Windpicker-owo
|
8179c25941
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-29 07:40:32 +08:00 |
|
Windpicker-owo
|
e26940dd4e
|
feat(chat): 添加消息重复处理防护机制
在StreamContext中添加processing_message_id字段,用于跟踪当前正在处理的目标消息ID。在AffinityFlowChatter规划器中实现重复消息检测逻辑,防止对同一消息进行重复回复处理。
- 在增强版规划流程和Normal模式流程中添加目标消息ID检查
- 当检测到正在处理相同消息时返回no_action避免重复
- 在处理完成后清理processing_message_id标记
- 添加详细的日志记录用于调试和监控
|
2025-10-29 07:40:26 +08:00 |
|
tt-P607
|
44fe53268d
|
fix(affinity_chatter): 修复max_no_reply_count为0时的除零错误
|
2025-10-28 20:25:39 +08:00 |
|
Windpicker-owo
|
4e024656ff
|
feat(chat): 优化流处理逻辑与Normal模式性能
- 在StreamLoopManager中添加流能量更新机制,在处理消息前更新能量值用于间隔计算
- 为消息打断系统添加allow_reply_interruption配置选项,控制是否允许在回复时打断
- 重构AffinityFlowChatter规划器,为Normal模式添加简化流程,显著降低延迟
- 实现Normal模式与Focus模式间的智能切换机制,基于focus_energy概率退出Normal模式
- 移除冗余的兴趣度批量更新逻辑,优化数据库写入性能
- 更新配置模板版本至7.5.0
BREAKING CHANGE: 配置文件中新增allow_reply_interruption选项,需要更新配置
|
2025-10-28 19:13:18 +08:00 |
|
tt-P607
|
d9c83c2cab
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-27 00:39:35 +08:00 |
|
tt-P607
|
73983c7198
|
fix(file): 修复机器人对自身文件上传的响应并移除硬编码路径转换
- 在群文件上传通知中,增加对`self_id`的判断,使机器人忽略自身上传文件的事件,防止不必要的响应。
- 移除 `send_api` 与 `send_handler` 中硬编码的WSL路径转换逻辑,以实现更通用的路径处理。
- 增强文件发送逻辑,使其能处理路径数据为字典的情况并检查空路径。
|
2025-10-27 00:38:53 +08:00 |
|
tt-P607
|
c98fa30358
|
feat(file): 新增文件消息的接收与发送功能
本次更新为框架引入了完整的文件消息处理能力,涵盖了发送和接收两个方面,使机器人能够处理文件传输。
主要变更包括:
- **发送功能**:
- 在 `plugin_system.apis.send_api` 中新增了 `file_to_stream` 公共 API,允许插件向指定聊天流(私聊或群聊)发送本地文件。
- 为文件上传设置了更长的超时时间,并增加了临时的 WSL 路径转换逻辑。
- **接收功能**:
- `chat.message_receive` 模块现在能够正确处理 `file` 类型的消息段,并生成可读的文本描述。
- NapCat 适配器增加了对文件消息 (`file`) 和群文件上传通知 (`group_upload`) 的解析能力。
- 通过智能识别和解析,能够将机器人自己发送文件后收到的 JSON 卡片回声消息,正确地转换回标准的文件消息段。
- **重构**:
- 将接收消息的 `content_format` 属性改为根据消息段动态生成,提高了对复合消息类型的适应性。
- 将未知消息段的日志级别从 `info` 调整为 `warning`,以便更好地监控未处理的消息类型。
|
2025-10-26 22:57:11 +08:00 |
|
明天好像没什么
|
99d55c0b49
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-26 13:10:38 +08:00 |
|
明天好像没什么
|
7b80d7c0b3
|
feat(plugin): 集成 MCP 协议支持并优化代码风格
- 新增 fastmcp 依赖,支持通过 Streamable HTTP 连接外部工具服务器
- 在 component_registry 与 tool_api 中实现 MCP 工具加载、注册及调用链路
- 补充 README 中的 MCP 特性说明
- 统一修复多处 import 顺序、空行、引号及类型注解,提升代码整洁度
- 在 pyproject.toml 中忽略 PERF203 规则,允许循环内异常处理
- 优化语音缓存与本地 ASR 调用逻辑,减少冗余代码
|
2025-10-26 13:10:31 +08:00 |
|
Windpicker-owo
|
0d3e46fc97
|
feat(message): 在消息处理中嵌入 format_info 到 additional_config
在 bot.py 和 chat_stream.py 中新增逻辑,将消息的 format_info 嵌入到 additional_config 字段中,确保 Action 能够正确检查适配器支持的消息类型。同时删除已废弃的 optimized_chat_stream.py 文件,并修复 notice_handler.py 中的类型注解问题。
- 在 bot.py 和 chat_stream.py 中添加 _prepare_additional_config 方法
- 将 format_info 序列化后嵌入 additional_config JSON 中
- 增强 StreamContext.check_types 方法的日志输出以便调试
- 删除不再使用的 optimized_chat_stream.py 文件
- 修复 notice_handler.py 中的类型注解问题
|
2025-10-26 10:46:04 +08:00 |
|
tt-P607
|
5e6857c8f7
|
feat(chatter): 引入性别判断并细化表情包处理规则
- 关系追踪器(Relationship Tracker)的提示词现在要求在生成用户印象时,根据已知信息自然地融入用户性别判断,使描述更加个性化和生动。
- 规划器(Planner)的提示词被调整,将原先处理“纯表情/符号”的规则,细化为专门处理“无上下文的纯表情包”,避免AI忽略对话中有意义的简单表情符号,从而提升交互的自然度。
|
2025-10-26 04:15:33 +08:00 |
|
tt-P607
|
c61cc19eb6
|
feat(voice): 实现自身语音缓存以跳过ASR识别
当机器人通过TTS插件发送语音时,会自动将语音数据和对应的原始文本进行缓存。
当机器人接收到自己发送的语音消息时,会优先从缓存中直接读取文本,从而跳过调用ASR(自动语音识别)服务的步骤。
此项优化可以:
- 节省不必要的ASR资源开销和费用。
- 保证对机器人自身语音100%的识别准确性。
- 提升对自身消息的响应处理速度。
|
2025-10-26 01:14:23 +08:00 |
|
tt-P607
|
3ea56c55f1
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-26 00:19:45 +08:00 |
|
tt-P607
|
ee7ec5a100
|
feat(voice): 新增本地语音识别(ASR)提供商选项
新增 `voice.asr_provider` 配置项,允许用户在 "api" 和 "local" 之间选择语音识别服务。
当设置为 "local" 时,系统将通过 `local_asr` 工具(由 `stt_whisper_plugin` 插件提供)调用本地 Whisper 模型进行语音转文字。这为用户提供了一个不依赖外部 API、注重隐私的备选方案。
- 默认值仍为 "api",保持现有行为不变。
- 添加 `openai-whisper` 作为新的依赖项以支持此功能。
|
2025-10-26 00:19:35 +08:00 |
|
minecraft1024a
|
fe9d99e7fa
|
refactor(plugin_system): 将依赖检查逻辑从插件基类移至插件管理器
将插件的Python包依赖和插件间依赖的检查逻辑,从各个插件实例的初始化阶段 (`PluginBase`),统一前置到插件模块加载阶段 (`PluginManager`)。
这一重构有以下好处:
- **提前失败 (Fail-fast)**:在加载插件模块时立即检查依赖,如果依赖不满足,则直接跳过该插件的加载和实例化,避免了不必要的资源消耗和后续的运行时错误。
- **职责单一**: `PluginManager` 负责插件的发现、加载和依赖管理,而 `PluginBase` 更专注于插件自身的业务逻辑和生命周期,使得代码结构更清晰。
- **配置中心化**: 依赖关系现在统一在 `__plugin_meta__` 中声明,而不是分散在插件类的属性中,提高了可维护性。
- **简化插件实现**: 插件开发者不再需要在插件类中定义 `dependencies` 和 `python_dependencies` 属性,只需在 `__init__.py` 中声明元数据即可。
|
2025-10-25 21:56:27 +08:00 |
|
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 |
|
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
|
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
|
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
|
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 |
|
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
|
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 |
|
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
|
10f56a8bc1
|
chore(log): 调整LLM相关日志级别为DEBUG
将LLM原始提示词和响应的日志级别从`INFO`调整为`DEBUG`。
此举旨在减少非调试模式下的日志输出,避免过长的模型交互内容刷屏,从而保持日志的整洁性,仅在需要时提供详细的调试信息。
|
2025-10-23 20:07:51 +08:00 |
|
tt-P607
|
f95fe72693
|
fix(chat): 防止回复媒体内容处理失败的消息
机器人此前会将 "[图片(描述生成失败)]" 等系统提示误解为用户消息并进行回复,导致异常的对话行为。
本次修复通过两个层面解决此问题:
1. 在 `ChatBot` 中添加硬编码过滤器,作为第一道防线,直接静默处理包含失败关键词的消息。
2. 更新 Planner Prompt,明确禁止 AI 回复此类消息,作为第二道保险,确保系统行为的健壮性。
|
2025-10-23 01:29:12 +08:00 |
|
tt-P607
|
9f28d1943c
|
feat(chat): 新增群组静默列表以忽略非@消息
引入了 `mute_group_list` 配置项。对于被添加到此列表的群组,机器人将只在被明确@或回复时才处理消息,从而避免在活跃群组中造成不必要的打扰。
- 在 `MessageReceiveConfig` 中添加 `mute_group_list` 选项。
- 在消息接收逻辑中实现检查,如果消息来自静默群组且不是@或回复,则跳过消息管理器处理。
- 调整了 `is_mentioned` 的计算时机,移至消息内容处理之后,以确保静默判断的准确性。
- 附带修复了处理适配器响应时因数据非字典类型导致的潜在错误。
|
2025-10-23 00:24:16 +08:00 |
|
tt-P607
|
48d99defc7
|
feat(tts): 为 TTS 插件引入混合激活机制
重构了 TTSVoiceAction 的激活逻辑,以提升语音交互的自然度和趣味性。
此前的纯关键词触发方式较为僵硬,新的机制结合了多种判断方式,使语音回复更加智能和生动。
新的混合激活机制包含三种并行的判断方式:
1. **随机激活**: 以 55% 的概率随机触发,为对话增添惊喜感和自发性。
2. **关键词激活**: 响应用户的明确语音请求,如“发语音”、“用语音说”等。
3. **LLM 判断**: 利用大模型分析上下文,在讲故事、情感表达等适宜场景下智能激活。
任意一种方式满足条件即可触发语音回复,使机器人的回应更加人性化。
|
2025-10-22 01:39:13 +08:00 |
|
tt-P607
|
b8e49343c1
|
feat(emoji): 重构表情包识别、描述与缓存系统
本次更新全面重构了表情包处理逻辑,引入了包含“精炼描述”、“关键词”和“详细分析”的三层描述系统,以提升识别的深度与广度。同时,统一并修复了缓存机制,解决了旧缓存数据格式不兼容及新内容无法被缓存的问题,并通过增加校验逻辑增强了系统的健壮性。
注意:更新后,用户必须手动清空 emojis、images、image_descriptions 三个数据库表,并将 data/emoji_registed/ 目录下的所有文件移至 data/emoji/ 目录,然后重启程序,以确保所有表情包能被新系统正确地重新识别
|
2025-10-21 15:57:52 +08:00 |
|
Windpicker-owo
|
73cddf1121
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-19 22:49:14 +08:00 |
|
Windpicker-owo
|
2ec3be7c84
|
feat(notice): 实现全局notice消息管理系统
添加全局notice管理器,将notice消息与普通消息分离处理。主要功能包括:
- 创建 GlobalNoticeManager 单例类,支持公共和特定聊天流作用域
- 在 message_manager 中集成notice检测和处理逻辑
- 扩展数据库模型和消息类,添加notice相关字段
- 在提示词生成器中添加notice信息块展示
- 配置系统支持notice相关参数设置
- 适配器插件增强notice类型识别和配置
notice消息特点:
- 默认不触发聊天流程,只记录到全局管理器
- 可在提示词中展示最近的系统通知
- 支持按类型设置不同的生存时间
- 支持公共notice(所有聊天可见)和流特定notice
BREAKING CHANGE: 数据库消息表结构变更,需要添加 is_public_notice 和 notice_type 字段
|
2025-10-19 22:45:19 +08:00 |
|