Windpicker-owo
|
edce9ff496
|
refactor(replyer): 优化用户ID获取逻辑,简化自我回复判断
|
2025-11-12 17:36:12 +08:00 |
|
Windpicker-owo
|
09db6c0c88
|
refactor: 移除对机器人自身用户ID的特殊处理,统一使用QQ号进行比较
|
2025-11-12 17:33:51 +08:00 |
|
Windpicker-owo
|
62c3732200
|
refactor(action_manager): 简化回复处理逻辑,移除多余的参与者信息获取
|
2025-11-12 16:23:39 +08:00 |
|
Windpicker-owo
|
80736a0deb
|
refactor(distribution_manager): 优化流循环管理逻辑,减少重复代码并改进异常处理
refactor(action_manager): 将异步存储操作改为非阻塞任务,提升性能
refactor(default_generator): 简化回复生成器中的消息处理逻辑
refactor(generator_api): 更新类型提示,增强代码可读性
refactor(affinity_chatter): 清理异常处理中的冗余代码,确保处理标记的正确清理
refactor(affinity_interest_calculator): 重命名阈值调整方法,提升代码一致性
refactor(plan_executor): 移除冗余的已读消息处理逻辑
refactor(planner): 优化规划器中的异常处理,确保正常模式的退出检查
|
2025-11-12 16:08:52 +08:00 |
|
Windpicker-owo
|
d3ffe1c47a
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-11-12 13:38:12 +08:00 |
|
Windpicker-owo
|
c9ee50aed8
|
feat(user_profile_tool): 更新好感分数描述,增加评分注意事项以提升用户理解
|
2025-11-12 13:38:03 +08:00 |
|
minecraft1024a
|
a6c2820dd9
|
fix(prompt): 通过延迟导入解决循环依赖问题
将 `global_prompt_manager` 的导入操作从模块顶部移动到具体使用它的方法内部。
此举旨在解决 `prompt_component_manager` 和 `prompt` 模块之间潜在的循环导入问题,确保在应用初始化时模块加载顺序的稳定性,避免可能因此引发的 `ImportError`。
|
2025-11-12 13:24:13 +08:00 |
|
minecraft1024a
|
0e1e9935b2
|
style: 统一代码风格并采用现代化类型注解
对整个代码库进行了一次全面的代码风格清理和现代化改造,主要包括:
- 移除了所有文件中多余的行尾空格。
- 将类型提示更新为 PEP 585 和 PEP 604 引入的现代语法(例如,使用 `list` 代替 `List`,使用 `|` 代替 `Optional`)。
- 清理了多个模块中未被使用的导入语句。
- 移除了不含插值变量的冗余 f-string。
- 调整了部分 `__init__.py` 文件中的 `__all__` 导出顺序,以保持一致性。
这些改动旨在提升代码的可读性和可维护性,使其与现代 Python 最佳实践保持一致,但未修改任何核心逻辑。
|
2025-11-12 12:49:40 +08:00 |
|
minecraft1024a
|
daf8ea7e6a
|
refactor: 清理冗余代码并现代化导入语句
- 将 `typing.Awaitable` 和 `typing.Callable` 的导入更新为 `collections.abc`,以遵循 Python 3.9+ 的最佳实践。
- 移除了 `sorted()` 函数中不必要的 `set` 到 `list` 的转换。
- 清理了 `plugin_system/__init__.py` 中不再需要公开的 `__all__` 条目。
|
2025-11-12 12:47:55 +08:00 |
|
minecraft1024a
|
623cebf728
|
docs(prompt): 为 PromptComponentManager 植入详尽的代码文档与注释
为了让提示词注入系统的核心 `PromptComponentManager` 变得更加透明和易于理解,本次提交对代码进行了全面的文档化。此举旨在降低新接手者的认知门槛,并为未来的维护工作铺平道路。
具体而言,我们为类和所有公开方法添加了详细的文档字符串,阐明了其设计哲学、职责边界和参数约定。同时,在关键代码块(如规则数据结构、内容提供者闭包、并发锁的使用)旁增加了内联注释,揭示了其背后的实现考量和工作机制。
|
2025-11-12 12:46:07 +08:00 |
|
minecraft1024a
|
c76e1ff0e6
|
fix(prompt): 修复 PromptComponentManager 的方法定义在类外部的问题
将多个本应属于 `PromptComponentManager` 的实例方法(如 `get_injections_for_prompt`, `get_rules_for_target` 等)移回正确的类定义内。
这些方法之前因缩进错误被意外地定义在了类外部,导致它们无法作为实例方法被正确调用。本次提交修正了这个问题,确保了类的封装性和方法的正确作用域。
|
2025-11-12 12:39:51 +08:00 |
|
minecraft1024a
|
ebc74f2fe7
|
feat(prompt): 新增按目标和组件查询注入规则的功能
为了提供更灵活的注入规则审查和调试能力,本次提交重构了规则查询接口。
新增了两个功能更强大的查询方法:
- `get_rules_for_target`: 允许查询所有注入到特定核心提示词的规则。
- `get_rules_by_component`: 允许查询由特定注入组件定义的所有规则,无论其目标为何。
BREAKING CHANGE: 移除了原有的 `get_dynamic_rule` 方法,该方法只能通过组件和目标联合查询单个规则,使用场景有限。请根据查询需求,改用新增的 `get_rules_for_target` 或 `get_rules_by_component` 方法。
|
2025-11-12 12:35:14 +08:00 |
|
minecraft1024a
|
6438539412
|
feat(prompt): 为提示词注入系统添加预览和详情查询功能
新增了对提示词注入过程进行预览和详细查询的能力,极大地增强了开发和调试的便利性。
- 新增 `preview_prompt_injections` 方法,允许在不修改任何状态的情况下,模拟并预览应用所有注入规则后的最终提示词模板。
- 增强 `get_injections_for_prompt` 方法,使其返回更丰富的注入信息,包括注入来源、类型和具体内容,提高了系统的可观测性。
- 新增 `get_dynamic_rule` 辅助方法,用于查询单条动态注入规则。
BREAKING CHANGE: `get_injections_for_prompt` 方法的返回结构已更改,现包含更详细的注入信息。移除了 `get_full_injection_map` 方法,并重命名 `get_registered_prompt_components` 为 `get_registered_prompt_component_info`。
|
2025-11-12 12:33:44 +08:00 |
|
minecraft1024a
|
626114c593
|
feat(prompt): 重构提示词管理器为动态可观测的注入中心
本次提交对 `PromptComponentManager` 进行了彻底的重构,将其从一个无状态的、按需计算的工具转变为一个有状态的、支持动态配置和实时观测的统一管理中心。
核心改进包括:
- **统一规则存储**: 引入 `_dynamic_rules` 作为唯一的真实来源。系统启动时会加载所有组件的静态 `injection_rules` 作为默认配置,后续可动态修改。
- **动态API**: 新增 `add_injection_rule` 和 `remove_injection_rule` 方法,允许在运行时动态地添加、更新和移除注入规则,极大地提升了灵活性。
- **可观测性**: 提供了一套完整的状态查询API(如 `get_full_injection_map`, `get_injections_for_prompt`),使系统当前的注入状态完全透明,便于调试和监控。
- **性能优化**: `apply_injections` 流程被极大简化,它现在直接从预加载的规则集中获取内容并应用注入,避免了每次调用都重新扫描和实例化组件的开销。
|
2025-11-12 12:23:20 +08:00 |
|
Windpicker-owo
|
1fc8d5091c
|
feat: 添加路径评分扩展算法和内存去重工具
- 基于图路径传播,实现了一种路径评分扩展算法,以优化内存检索。
引入了内存去重工具,以识别和合并相似的内存,从而提高结果质量。
- 更新了路径扩展的配置选项,包括最大跳数、阻尼因子和剪枝阈值。
- 在路径扩展中增加了对首选节点类型的支持,以提高内存检索的相关性。
- 增强的日志记录功能,以便更好地跟踪路径扩展和去重过程。
|
2025-11-12 00:33:05 +08:00 |
|
Windpicker-owo
|
9b68d7d995
|
feat(heart_fc_sender): 修复Send API消息不入流上下文的问题,确保消息可引用并添加转换为数据库消息的功能
|
2025-11-11 21:42:17 +08:00 |
|
Windpicker-owo
|
13fb86394b
|
feat(replyer): 使用全局配置替换默认记忆检索参数,提升灵活性和可配置性
feat(memory_tools): 优化记忆过滤逻辑,增强日志记录和过滤统计
feat(plan_filter): 调整AFC场景的记忆检索数量,减少干扰
|
2025-11-11 21:34:11 +08:00 |
|
Windpicker-owo
|
4b71cb4a88
|
feat(main): 移除数据库连接初始化方法,简化异步初始化流程
|
2025-11-10 22:04:24 +08:00 |
|
Windpicker-owo
|
6203fca5f2
|
feat(main): 移除知识库初始化,简化主系统启动流程
|
2025-11-10 21:57:35 +08:00 |
|
Windpicker-owo
|
1b93cc3d63
|
feat(context_manager): 移除消息添加和标记已读的日志记录,简化代码
|
2025-11-10 21:55:16 +08:00 |
|
Windpicker-owo
|
f3af3caf71
|
feat(distribution_manager): 在处理成功后添加短暂等待,确保清理操作完成
feat(message_manager): 简化清除未读消息逻辑,移除冗余注释
feat(action_manager): 移除自动清空未读消息的逻辑,改为手动处理
feat(plan_executor): 扩展回复类动作的分类,包含 respond 动作
|
2025-11-10 21:38:55 +08:00 |
|
Windpicker-owo
|
c46df81bca
|
feat(stream_loop_manager): 优化流循环管理,增强日志记录和错误处理,添加并发保护机制
|
2025-11-10 20:03:01 +08:00 |
|
Windpicker-owo
|
80819ad150
|
feat(message_manager): 增强清除未读消息逻辑,添加兜底保护以确保所有未读消息被标记为已读
|
2025-11-10 19:31:08 +08:00 |
|
Windpicker-owo
|
69ee2d30de
|
feat(context_manager): 添加消息处理日志,优化消息标记为已读的逻辑
|
2025-11-10 19:18:30 +08:00 |
|
Windpicker-owo
|
aab3f19f10
|
feat(chatter_manager): 清理 processing_message_id 以防止重复回复检测失效
feat(distribution_manager): 添加子任务跟踪和取消逻辑,优化流处理
feat(default_generator): 优化 respond 和 reply 模式下的消息处理逻辑
feat(affinity_chatter): 处理取消异常时清理 processing_message_id
feat(planner): 确保在规划流程取消时清理 processing_message_id
|
2025-11-10 17:12:20 +08:00 |
|
Windpicker-owo
|
861cc18e7d
|
feat(reply): 优化respond动作逻辑,移除不必要的目标消息参数
|
2025-11-10 16:07:23 +08:00 |
|
Windpicker-owo
|
dea45b083d
|
feat(stream): 优化未读消息处理逻辑,避免无效的 chatter 调用
|
2025-11-10 15:18:40 +08:00 |
|
Windpicker-owo
|
e5c5e5c036
|
feat(stream): 添加流循环启动锁以防止并发启动同一流的多个循环任务
|
2025-11-10 14:23:10 +08:00 |
|
Windpicker-owo
|
b427960441
|
feat(reply): 引入统一格式过滤器,优化回复内容清理逻辑
|
2025-11-10 14:12:11 +08:00 |
|
Windpicker-owo
|
259a744a3b
|
feat(action): 将回复处理逻辑封装为异步函数,优化代码结构和可读性
|
2025-11-10 13:44:52 +08:00 |
|
Windpicker-owo
|
882f93c886
|
feat(reply): 引入增强的格式过滤器,优化回复内容清理逻辑
|
2025-11-10 13:36:17 +08:00 |
|
Windpicker-owo
|
8c4a54c75d
|
feat(reply): 引入 reply 和 respond 动作,优化消息回复机制
- 增加 reply 动作,针对单条消息进行深度回复,使用 s4u 模板。
- 增加 respond 动作,统一回应未读消息,使用 normal 模板。
- 更新核心动作插件以支持新动作,确保配置选项可用。
- 优化动作执行逻辑,提升对话流畅性和响应准确性。
|
2025-11-10 13:24:45 +08:00 |
|
Windpicker-owo
|
2422e4d186
|
fix(emoji): 修正表情包分析提示中的描述和格式,增强分析准确性
|
2025-11-10 09:52:51 +08:00 |
|
Windpicker-owo
|
6d727eeda9
|
feat(embedding): 提升并发能力,优化嵌入生成和索引重建流程
|
2025-11-09 22:30:21 +08:00 |
|
tt-P607
|
24f1faf468
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-11-09 12:47:31 +08:00 |
|
tt-P607
|
43ac8afe60
|
fix(replyer): 彻底重构回复过滤器以处理深度嵌套格式
问题描述:
此前,模型在生成回复时,会偶发性地模仿并输出Prompt中用于示例的 [回复<...>] 格式。尽管经过多次迭代,原有的正则表达式过滤器仍无法有效处理包含多层嵌套括号的复杂情况,导致清理不彻底,最终发送的消息中仍残留部分不规范文本。
解决方案:
本次提交对 default_generator.py 中的 llm_generate_content 方法进行了彻底的重构,用一套更健壮、更简单的逻辑替换了原有的正则表达式方案:
采用“整体清除”策略: 放弃了复杂的模式匹配,转而实现了一个更直接的清除逻辑。现在,如果一条生成的消息以 [回复 开头,程序会寻找到该消息中 最后一个 ] 字符的位置。
精准切片: 将从消息开头到最后一个 ] 字符(包含该字符)之间的所有内容全部切除,只保留之后的部分作为最终回复。
日志记录: 保留了清晰的 logger.warning,在过滤器生效时,会详细记录原始内容与清理后的内容,便于持续监控模型行为。
优势:
鲁棒性: 这种新方法与括号的嵌套层数完全无关,无论模型生成多么复杂的嵌套结构,都能一举将其完全清除,从根本上解决了问题。
简洁性: 代码逻辑比复杂的正则表达式更清晰、更易于理解和维护。
验证:
创建了专门的测试脚本 Elysia/Bot/scripts/test/test_ultimate_filter.py。
脚本覆盖了多种复杂的、包含深度嵌套的失败案例以及正常的边界情况。
测试结果表明,新的过滤逻辑完美通过了所有测试,达到了预期的效果。
|
2025-11-09 12:47:19 +08:00 |
|
明天好像没什么
|
d4335a20a1
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-11-09 12:31:46 +08:00 |
|
明天好像没什么
|
6a5648ba07
|
创建了新的反注入
|
2025-11-09 12:31:38 +08:00 |
|
Windpicker-owo
|
ac09046427
|
fix(distribution-manager): 使用全局配置中的超时设置增强消息处理
refactor(affinity-chatter): 移除不必要的全局配置导入
|
2025-11-09 11:28:28 +08:00 |
|
tt-P607
|
402644900f
|
feat(chat): 优化回复内容过滤器,杜绝格式模仿
核心问题:
修复了模型在生成回复时,偶尔会模仿并输出Prompt中用于示例的 [回复<...>] 格式的问题。此问题会导致最终发送的消息包含不应出现的多余文本。
实现方案:
精准定位过滤时机:
将过滤逻辑从原先的 send_api 前置到 default_generator 的 llm_generate_content 方法中。这确保了在LLM生成内容后、任何后续处理(如回复分割)前,第一时间对不规范内容进行清理,从根源上解决了问题。
强化正则表达式:
采用了一个更严格的正则表达式 r'\[\s*回复\s*<.+?>.*?\]',并设置了 re.DOTALL 标志。此举旨在“宁可错杀,不可放过”,能够更有效地匹配并清除各种复杂的、甚至包含换行的模仿格式。
处理嵌套残留:
在正则替换后,增加了一步额外的检查。如果清理后的字符串以 ] 开头(通常由嵌套括号引起),则会移除这个残留的字符,确保最终内容的绝对纯净。
增加日志监控:
为过滤器增加了 logger.warning 日志。当过滤器成功触发并清理内容时,会详细记录原始内容与清理后的内容,便于后续追踪和分析模型行为。
代码结构优化:
移除了 llm_generate_content 方法中原有的、效果较差的旧清理逻辑,避免了代码冗余。
修正了 build_memory_block 方法中一处错误的属性访问,将 stream.chat_history_manager 更正为 stream.context_manager,解决了潜在的 AttributeError。
最终效果:
通过以上修改,我们构建了一套健壮、精准且可观测的回复内容过滤机制,彻底解决了模型模仿系统消息格式的问题,显著提升了回复内容的质量与规范性
|
2025-11-09 01:07:27 +08:00 |
|
tt-P607
|
130a0fdb31
|
refactor(core): 简化回复清理并加强 API 调用此次提交彻底重构了回复清理逻辑,以提升可维护性,并在发送 API 中引入了多项防御性检查,以防止常见的运行时错误。通过将复杂的迭代清理算法替换为单一且更高效的正则表达式,回复生成过程得到了简化。这不仅提高了去除模型生成的头信息的可靠性,还显著降低了代码复杂性。在发送 API 中,实现了多个安全措施:- 修正了异步处理错误,通过移除同步字典操作上无效的 await,防止出现 TypeError。- 添加了预检验证,以确保文件上传有定义的目标,并且临时流指定了平台。- 现在一致将机器人用户 ID 转换为字符串,以消除潜在的类型相关不一致。最后,为了清晰起见,机器人的行为原则术语也进行了调整。
|
2025-11-09 00:50:23 +08:00 |
|
minecraft1024a
|
e418b83419
|
refactor(typo-generator): 调整词典文件路径获取方式以提高通用性
将 `dict.txt` 的路径获取方式从依赖 `rjieba` 包的相对路径改为基于项目根目录的相对路径。这避免了因 `rjieba` 包内部结构变化而导致路径失效的问题,增强了代码的健壮性和可移植性。
|
2025-11-08 20:11:39 +08:00 |
|
Windpicker-owo
|
6e97aab8a7
|
fix(distribution-manager): 优化消息处理逻辑,直接刷新未读消息缓存
|
2025-11-08 16:55:58 +08:00 |
|
Windpicker-owo
|
d4824e35ad
|
feat(message-manager): 用流循环管理器替换调度器/分派器
- 移除 scheduler_dispatcher 模块,并用 distribution_manager 替换
- 实现StreamLoopManager,以改进消息分发和中断处理
- 将消息缓存系统直接添加到StreamContext中,并配置缓存设置
- 使用具有缓存感知的消息处理来增强SingleStreamContextManager
- 更新`message_manager`,使用`stream_loop_manager`替代`scheduler_dispatcher`
- 在StreamContext数据模型中添加缓存统计和刷新方法
- 通过适当的任务取消和重新处理来改进中断处理
- 为ChatManager添加get_all_stream方法,以实现更优的流管理
- 更新亲和聊天规划器,以更可靠地处理专注/正常模式切换
|
2025-11-08 10:46:44 +08:00 |
|
Windpicker-owo
|
78a3a192bf
|
refactor: 更新调度器以使用任务名称替代调度ID,增强任务管理和清理无效记录功能
|
2025-11-08 09:12:46 +08:00 |
|
Windpicker-owo
|
0cf7f87b66
|
refactor: 优化兴趣值管理器和统一调度器,增强任务执行的并发控制
|
2025-11-07 22:13:00 +08:00 |
|
Windpicker-owo
|
ff5d14042c
|
修复: 更新消息分发管理器以提高性能和稳定性
|
2025-11-07 21:16:58 +08:00 |
|
Windpicker-owo
|
b8f1a5ba22
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-11-07 21:16:45 +08:00 |
|
Windpicker-owo
|
3e6b6458bb
|
refactor(scheduler): 移除不必要的 schedule 锁管理代码
|
2025-11-07 21:15:13 +08:00 |
|
明天好像没什么
|
c8d7c09625
|
ruff
|
2025-11-07 21:01:45 +08:00 |
|