雅诺狐
413973979c
refactor(deps): 将jieba分词库替换为rjieba
2025-10-05 12:08:18 +08:00
Windpicker-owo
1a68365752
perf(interest): 增加兴趣值计算超时时间并优化日志记录
...
将兴趣值计算的默认超时时间从0.5秒增加到2.0秒,以减少因计算时间较长导致的超时情况。同时优化了超时日志记录,使用warning级别并显示具体的超时时间,使问题排查更加清晰。
2025-10-05 03:24:28 +08:00
Windpicker-owo
8d90514816
refactor(interest): 为兴趣值计算添加超时机制并清理重复代码
...
为兴趣值计算方法添加超时参数,防止计算过程阻塞系统。
当计算超时时返回默认值,同时让计算在后台继续执行。
删除了重复的 MessageInterestManager 类,统一使用 InterestManager。
2025-10-05 03:08:13 +08:00
Windpicker-owo
8e0d1e791b
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-05 01:29:48 +08:00
Windpicker-owo
624298e1b8
refactor(chat): 异步化聊天系统并重构兴趣值计算机制
...
将同步调用改为异步调用以提升性能,重构兴趣值计算流程以支持更灵活的组件化架构。主要改进包括:
- 异步化ChatManager相关方法,避免阻塞主线程
- 重构兴趣值计算系统,从插件内部计算改为通过兴趣管理器统一处理
- 新增should_act字段支持更细粒度的动作决策
- 优化初始化逻辑,避免构造函数中的异步操作
- 扩展插件系统支持兴趣计算器组件注册
- 更新数据库模型以支持新的兴趣值相关字段
这些改进提升了系统的响应性能和可扩展性,同时保持了API的向后兼容性。
2025-10-05 01:25:52 +08:00
minecraft1024a
0495f0448f
chore(memory): 移除记忆系统初始化过程中的冗余日志记录
2025-10-04 21:11:33 +08:00
minecraft1024a
f06fac2dc9
fix(api): 修复机器人消息统计计数器逻辑
...
chore(logging): 移除 message_manager 各模块多余的启动日志
- 修复了 `get_bot_message_stats_by_chat` 接口中错误地将计数器重置为1而不是递增的问题。
- 清理了 `message_manager` 及其子模块中重复或不必要的启动日志,以减少日志冗余。
2025-10-04 21:04:49 +08:00
minecraft1024a
baf22a45dc
feat(memory): 增强记忆类型解析,支持中英文映射
...
新增了一个 `_resolve_memory_type` 方法,以更健壮地处理从 LLM 返回的记忆类型字符串。此方法现在可以正确解析中文、英文(大小写不敏感)以及下划线格式的记忆类型。
- 增加了从中文到 `MemoryType` 枚举的直接映射。
- 实现了对多种英文格式(如 "personal_fact", "PERSONAL_FACT", "Personal Fact")的兼容解析。
- 当无法识别任何有效类型时,会记录警告并安全地回退到默认的 `CONTEXTUAL` 类型,提高了系统的容错性。
2025-10-04 20:45:58 +08:00
minecraft1024a
da1b1a4999
refactor(core): 统一和改进程序优雅关闭逻辑
...
将分散的关闭逻辑集中到`MainSystem`中,并由`bot.py`中的顶层异常处理块统一调用。这简化了关闭流程,提高了系统的健壮性和可维护性。
- 将信号处理逻辑从`MainSystem`移除,改由`bot.py`中的`try...finally`块处理,以捕获更广泛的退出场景(如`KeyboardInterrupt`)。
- `graceful_shutdown`函数现在接收`main_system`实例,直接调用其`shutdown`方法,实现了责任的单一化。
- 为`EmojiManager`和`VectorMemoryStorage`添加了`shutdown`/`cleanup`方法,确保其后台任务和资源能被正确清理。
- 调整了`MemorySystem`中对`unified_storage.cleanup()`的调用,使其与接口保持一致。
2025-10-04 16:47:55 +08:00
Windpicker-owo
43724a4d6d
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-04 12:39:37 +08:00
Windpicker-owo
675caca04b
fix(memory): 修复定时清理任务的异步执行问题
2025-10-04 12:39:26 +08:00
minecraft1024a
a1afbbb4dc
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-04 12:10:11 +08:00
minecraft1024a
2a7c2772d0
fix(express): 修复异步会话中错误的删除操作
...
在 `ExpressionLearner` 的 `decay` 方法中,`session.delete(expr)` 操作是同步的,但在异步会话(`AsyncSession`)上下文中应该使用 `await`。此更改修复了该问题,确保表达式能被正确地异步删除。
2025-10-04 12:07:39 +08:00
Windpicker-owo
b1eb831d68
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-04 01:38:47 +08:00
Windpicker-owo
04e7776a45
refactor(memory): 移除废弃的记忆系统备份文件,优化消息管理器架构
...
移除了deprecated_backup目录下的所有废弃记忆系统文件,包括增强记忆适配器、钩子、集成层、重排序器、元数据索引、多阶段检索和向量存储等模块。同时优化了消息管理器,集成了批量数据库写入器、流缓存管理器和自适应流管理器,提升了系统性能和可维护性。
2025-10-04 01:38:41 +08:00
Windpicker-owo
1eb41f8372
refactor(memory): 重构记忆系统架构,引入可配置的采样策略
...
将记忆系统从单一构建模式重构为多策略可配置架构,支持灵活的采样行为控制:
核心架构改进:
- 重构记忆构建流程,分离采样策略与核心逻辑
- 引入MemorySamplingMode枚举,标准化采样模式定义
- 设计插件化采样器接口,支持海马体后台定时采样
- 优化记忆处理管道,添加bypass_interval机制支持后台采样
配置系统增强:
- 新增memory_sampling_mode配置项,支持hippocampus/immediate/all三种模式
- 添加海马体双峰采样参数配置,支持自定义采样间隔和分布
- 引入自适应采样阈值控制,动态调整记忆构建频率
- 完善精准记忆配置,支持基于价值评分的触发机制
兼容性与性能优化:
- 修复Python 3.9兼容性问题,替换strict=False参数
- 优化记忆检索逻辑,统一使用filters参数替代scope_id
- 改进错误处理机制,增强系统稳定性
BREAKING CHANGE: 新增memory_sampling_mode配置项,默认值从adaptive改为immediate
2025-10-03 22:00:53 +08:00
minecraft1024a
c46a31a7c4
refactor(express): 优化目录创建的异常处理逻辑
...
将 `try-except` 块移至循环外部,以减少重复的异常处理代码。这样可以更清晰地处理在创建多个目录过程中可能发生的任何错误,同时保持代码的简洁性。
2025-10-03 21:17:50 +08:00
Windpicker-owo
5c0e94cf4c
refactor(logging): 将信息日志级别更改为调试级别以减少输出噪声
2025-10-03 16:15:32 +08:00
Windpicker-owo
7617f85b92
feat(chat): 增强任务管理和取消机制
...
添加新的任务管理方法来更好地处理异步任务的生命周期:
- 新增 cancel_processing_task、remove_processing_task 等方法
- 在流循环清理时自动取消关联的 chatter 处理任务
- 添加活跃任务统计信息到管理器统计中
- 改进 prompt 构建时的任务类型检查和错误处理
2025-10-03 14:17:29 +08:00
Windpicker-owo
73aa29c4d5
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-03 14:16:31 +08:00
Windpicker-owo
9e1baa7e61
refactor(chat): 优化流循环管理和数据库性能
...
移除StreamLoopManager中的锁机制,简化并发流处理逻辑
- 删除loop_lock,减少锁竞争和超时问题
- 优化流启动、停止和清理流程
- 增强错误处理和日志记录
增强数据库操作性能
- 集成数据库批量调度器和连接池管理器
- 优化ChatStream保存机制,支持批量更新
- 改进数据库会话管理,提高并发性能
清理和优化代码结构
- 移除affinity_chatter中的重复方法
- 改进prompt表达习惯格式化
- 完善系统启动和清理流程
2025-10-03 13:56:58 +08:00
minecraft1024a
e9fbd749d8
ruff
2025-10-03 12:55:45 +08:00
tt-P607
d5c8bde3a2
fix(chat): 修复能量调整计算中的负数幂错误
...
当能量值非常接近高能量阈值(0.7)时,由于浮点数精度问题,`energy - 0.7` 的结果可能为一个极小的负数,这会导致 `ValueError` (negative number cannot be raised to a fractional power)。
通过使用 `max(0, ...)` 来确保幂运算的基数始终为非负数,从而解决了这个潜在的运行时错误,增强了系统的健壮性。
2025-10-03 10:39:21 +08:00
tt-P607
b24eaba7ff
fix(chat): 确保在流取消时正确取消chatter处理任务
...
先前,当一个流循环(stream loop)被取消时,为其创建的 chatter 处理任务(`process_stream_context`)不会被一并取消。
这可能导致任务泄露,即“孤儿”任务在后台继续运行,消耗资源并可能引发意外行为。
本次修改引入了一个任务跟踪机制:
- `ChatterManager`现在会记录每个流正在运行的处理任务。
- 当流循环捕获到 `CancelledError` 时,它会主动取消关联的 chatter 任务。
这确保了在流停止时,相关的计算资源能够被正确、及时地释放,提高了系统的健壮性。
2025-10-03 10:15:24 +08:00
Windpicker-owo
fa9f14388a
refactor(chat): 优化异步任务处理和参数传递机制
...
- 重构ExpressionSelector初始化,添加chat_id参数支持
- 优化StreamLoopManager中异步任务的创建和管理方式
- 简化MessageManager中的消息添加流程
- 调整Prompt中表情选择器的参数传递结构
2025-10-03 02:32:02 +08:00
Windpicker-owo
67154ca78c
perf(chat): 使用asyncio.create_task优化异步任务处理
2025-10-03 01:55:21 +08:00
Windpicker-owo
31d03de33a
refactor(chat): 优化流循环管理器的并发性能和健壮性
...
改进StreamLoopManager的锁机制和任务管理,添加超时控制避免死锁,使用并发操作提升性能,增强异常处理和日志记录确保系统稳定性。
2025-10-03 01:14:53 +08:00
tt-P607
844d4f3362
fix(chat): 增强回复生成的健壮性,增加超时和类型检查
...
在 `DefaultReplyer` 的提示词构建流程中,为并行的子任务(如记忆、工具、关系等)增加了15秒的超时机制。这可以防止因某个子任务耗时过长或卡死而导致整个回复生成过程停滞。
同时,在能量系统中增加了对计算器分数和兴趣值的类型检查,确保它们是数值类型,避免了潜在的 `TypeError` 异常,提高了系统的稳定性。
2025-10-02 23:22:00 +08:00
John Richard
7923eafef3
re-style: 格式化代码
2025-10-02 20:26:01 +08:00
John Richard
ecb02cae31
style: 格式化代码
2025-10-02 19:38:39 +08:00
minecraft1024a
d5627b0661
refactor(chat): 将消息获取相关函数重构为异步
...
将 `chat_message_builder` 中的多个同步消息获取函数(如 `get_raw_msg_by_timestamp`)及其调用全部修改为异步函数。这统一了数据库查询的异步模式,提高了代码一致性和可维护性。
主要改动包括:
- 将 `chat_message_builder.py` 中的数据库查询函数标记为 `async` 并使用 `await`。
- 更新了 `message_api.py`、`mood_manager.py` 和 `qzone_service.py` 中对这些函数的调用,以适应异步接口。
- 调整了 `message_api.py` 中的函数签名和返回类型提示,以反映异步特性。
2025-10-02 17:32:02 +08:00
Windpicker-owo
894c9e2a03
feat(memory): 禁止使用模糊代称构建记忆
...
增强记忆构建系统的准确性,禁止使用"用户"等模糊代称
- 新增模糊代称检查机制,确保记忆使用明确的名字或称呼
- 更新记忆构建原则文档,明确要求使用具体姓名
- 修改display字段格式要求,提供正确的示例
- 删除memory_manager中未使用的consolidate_memory方法
- 优化memory_system配置和日志格式
2025-10-02 17:15:47 +08:00
Windpicker-owo
1f2d7d9ee5
feat(memory): 实现灵活搜索模式并重构记忆格式化系统
...
- 新增灵活匹配模式(flexible_mode),支持2/4项匹配即可的记忆检索策略
- 删除冗余的memory_formatter模块,简化记忆系统架构
- 增强枚举值解析机制,支持字符串、整数和枚举实例的自动转换
- 优化元数据索引搜索逻辑,分离严格模式和灵活模式的实现路径
- 改进向量存储的搜索回退机制,当元数据筛选无结果时自动回退到全量搜索
- 统一记忆类型映射管理,避免重复的格式化函数定义
这些变更提升了记忆检索的准确性和灵活性,同时简化了代码结构,提高了系统可维护性。
2025-10-02 11:27:06 +08:00
Windpicker-owo
82bb2df369
feat(memory): 增强查询规划以支持未读消息上下文分析
...
新增未读消息上下文集成功能,提升记忆检索的精准度和相关性。
通过分析当前对话流中的未读消息内容、关键词和参与者信息,
生成更贴合实际对话场景的记忆检索策略。
主要改进:
- 查询规划器现在能够结合未读消息生成语义查询
- 新增未读消息上下文收集和摘要构建机制
- 优化向量存储的兜底逻辑以兼容新的记忆结构
- 改进记忆转换过程中的调试和空内容处理
这些功能使记忆系统能够更好地理解当前对话的上下文,
提供更相关的历史记忆来支持生成更准确的回复。
2025-10-02 11:03:47 +08:00
Windpicker-owo
59bda71f29
feat(memory): 实现三阶段记忆检索系统并简化提取策略
...
- 移除规则和混合提取策略,统一使用LLM提取
- 实现三阶段检索:元数据粗筛→向量精筛→综合重排
- 新增JSON元数据索引支持,提升检索效率
- 优化Vector DB配置管理和批处理机制
- 统一记忆作用域为全局,实现完全共享
- 增强查询规划和综合评分算法
2025-10-02 10:13:38 +08:00
Windpicker-owo
6f750e2bac
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-02 08:23:27 +08:00
Windpicker-owo
c4aa34bc0c
refactor(storage): 优化向量记忆存储的批处理和错误处理机制
...
- 改进_memory_to_vector_format方法,增强元数据序列化和错误处理
- 重构store_memories方法,实现真正的批处理存储
- 添加详细的日志记录,提升系统可观测性
- 修复memory_id获取和缓存问题
- 增强向量数据库操作的容错能力
- 调整日志级别,优化调试信息输出
2025-10-02 08:23:19 +08:00
tt-P607
3d2da5c3ba
fix(chat): 在聊天流处理后清除未读消息
...
在之前的逻辑中,当 ChatterManager 处理完一个聊天流后,该流上下文中的 unread_messages 列表并未被清空。这可能导致在后续的处理周期中,相同的消息被重复获取和处理,引发非预期的行为并浪费计算资源。
此更改通过在 MessageManager 中新增 `clear_stream_unread_messages` 方法,并在每次成功处理流之后立即调用它,确保消息只被处理一次,解决了潜在的重复处理问题。
2025-10-02 04:05:59 +08:00
Windpicker-owo
89f007fa33
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-02 00:29:02 +08:00
Windpicker-owo
bce623a58b
refactor(storage): 迁移记忆系统架构至现代化Vector DB方案
...
重构记忆存储层,采用ChromaDB作为核心向量数据库引擎,提升系统可扩展性和查询性能。通过引入VectorMemoryStorage替代原有的UnifiedMemoryStorage实现,实现了更高效的向量索引和检索机制。
主要变更包括:
- 架构层面:完全重构记忆存储抽象层,移除577行旧存储实现代码
- 配置系统:新增41项Vector DB专用配置参数,支持细粒度性能调优
- 查询优化:增强ChromaDB查询条件处理器,添加智能回退机制
- 系统集成:更新记忆系统初始化流程,适配新的存储接口
- 类型安全:修复异步调用类型不匹配问题
BREAKING CHANGE: 记忆存储API接口发生重大变更,UnifiedMemoryStorage相关类已废弃
2025-10-02 00:28:55 +08:00
tt-P607
91cfc3b8a2
perf(napcat): 为 API 调用添加缓存并优化异步任务
...
- 为 NapCat 适配器中的 `get_group_info`, `get_member_info` 和 `get_self_info` 函数实现了一个简单的内存缓存(5分钟过期)。此举旨在减少对后端服务的重复 API 请求,从而提升性能并降低被限速的风险。
- 将 `ContextManager` 中对 `start_stream_loop` 的调用修改为 `asyncio.create_task`,使其成为一个非阻塞操作,避免在添加消息时因等待循环启动而造成延迟。
2025-10-01 22:57:59 +08:00
Windpicker-owo
70c056b4fa
feat: 添加兼容性别名以支持增强记忆激活器,优化向量生成逻辑并调整日志级别
2025-10-01 18:30:47 +08:00
Windpicker-owo
fda7341b2c
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-01 18:02:49 +08:00
Windpicker-owo
9359e489a9
feat:实现具有向量和元数据索引的统一内存存储系统
...
- 添加了 UnifiedMemoryStorage 类,用于管理带向量嵌入的内存块。
- 集成了 FAISS,以实现高效的向量存储和搜索。
- 实现了内存缓存、关键字、类型和用户索引。
- 增加了内存遗忘和自动保存存储数据的支持。
- 包含用于存储、搜索和遗忘记忆的方法。
- 引入了存储行为和性能的配置选项。
- 实现了从磁盘加载和保存内存及向量数据。
2025-10-01 18:02:42 +08:00
minecraft1024a
dad95f08d6
refactor(context): 统一兴趣度计算的同步与异步调用
...
重构了 `_calculate_message_interest` 方法,使其能够同时兼容同步和异步调用场景。
通过内部嵌套一个异步函数 `_get_score` 来封装核心的兴趣度计算逻辑,并根据是否存在正在运行的 asyncio 事件循环来决定是直接 `await` 还是使用 `asyncio.run()` 执行。这消除了对独立同步和异步方法的需要,简化了代码结构,并提高了在不同执行上下文中的健壮性。
同时,优化了异常处理和日志记录,对插件加载失败和计算失败提供了更清晰的调试信息。
2025-10-01 17:02:57 +08:00
Windpicker-owo
e09e8fd79e
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-01 15:02:50 +08:00
Windpicker-owo
99f77135c1
feat(memory): 重构记忆系统检索机制并优化召回率
...
- 实现五阶段检索流程:元数据过滤→向量搜索→语义重排序→上下文过滤→增强重排序
- 添加回退机制保障检索健壮性,当主检索失败时自动降级到文本匹配
- 优化向量相似度阈值配置,提升记忆召回率
- 新增记忆融合候选收集机制,避免重复记忆存储
- 改进记忆格式化器,支持多种展示格式
- 增强向量存储加载和重建逻辑,确保数据持久化
- 优化记忆存储时机,移至回复生成完成后异步执行
- 添加详细的检索调试日志,便于问题排查
- 简化查询规划器提示模板,提升生成效率
2025-10-01 15:02:38 +08:00
tt-P607
15c146c3e9
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-01 06:04:13 +08:00
tt-P607
67aa936013
fix(db): 增强数据库会话管理的容错性
...
调整了 `get_db_session` 的行为,当数据库未能成功初始化时,它现在会返回 `None` 并记录错误,而不是抛出异常。这提高了应用在数据库连接不可用时的健壮性,避免了程序因无法获取会话而崩溃。
- `VideoAnalyzer` 已更新,增加了对会话为 `None` 的检查,以安全地跳过数据库读写操作。
- 附带对 `VideoAnalyzer` 和 `LegacyVideoAnalyzer` 进行了重构,将模型选择和API请求执行的逻辑抽象到独立的 `_model_selector` 和 `_executor` 组件中,提升了代码的清晰度和可维护性。
2025-10-01 06:04:07 +08:00
Windpicker-owo
dc39fd26c7
feat(memory): 重构记忆系统并移除插件热重载
...
重构记忆系统核心模块,引入全局记忆作用域、记忆指纹去重机制和查询规划器,优化多阶段检索性能。移除插件热重载系统及其相关依赖。
主要变更:
- 引入全局记忆作用域,简化记忆管理
- 实现记忆指纹去重,避免重复记忆存储
- 新增查询规划器,支持语义查询规划和记忆类型过滤
- 优化多阶段检索,增加语义重排和权重配置
- 改进向量存储,支持嵌入维度自动解析和查询向量生成
- 增强元数据索引,支持主体索引和更新操作
- 记忆构建器支持多主体和自然语言展示
- 移除watchdog依赖和插件热重载模块
- 更新配置模板,简化记忆配置项
BREAKING CHANGE: 移除插件热重载系统,相关API和命令不再可用。记忆系统接口有较大调整,使用该系统的模块需要适配新接口。
2025-10-01 04:56:32 +08:00