雅诺狐
240ac9bdbb
咳咳咳,忘更新依赖了
2025-11-19 23:18:46 +08:00
雅诺狐
97dc145b76
Refactor replyer retrieval to async and add memory formatter
...
Changed get_replyer and related calls to async across multiple modules for proper coroutine handling. Added format_memories_bracket_style utility for memory formatting. Improved video analysis caching logic and type annotations. Updated error logging for message processing.
2025-11-19 23:18:45 +08:00
雅诺狐
a9c592b203
Refactor memory metadata index to use Rust backend
...
Replaces the Python implementation of MemoryMetadataIndex with a Rust-accelerated version, removing legacy code and fallback logic. Updates search, add, and stats methods to delegate to the Rust backend. Also adds missing imports in llm_data_model.py and base_event.py for improved type support and event handling.
2025-11-19 23:18:42 +08:00
Windpicker-owo
a513aeb68e
refactor(chat): 统一异步调用模式并修复循环依赖
...
- 将 chat_manager.get_stream() 调用改为异步
- 将 replyer_manager.get_replyer() 方法改为异步
- 在 generator_api 中使用动态导入避免循环依赖
- 在 action_manager 中添加待处理动作队列清理
- 更新所有相关调用点以支持异步模式
2025-11-19 23:18:40 +08:00
Windpicker-owo
399a7398a5
refactor(chat): 使获取聊天流支持异步调用
2025-11-19 23:18:33 +08:00
minecraft1024a
2e1332604e
style(memory): 优化代码风格并移除冗余代码
...
- 在 `memory_fusion.py` 中,为集合推导式添加 `# noqa: C401` 以抑制 linter 警告,明确代码意图。
- 在 `memory_manager.py` 中,移除未使用的全局变量 `global_memory_manager`。
- 使用 `|` 运算符进行类型检查,以符合现代 Python 语法。
2025-11-19 23:18:19 +08:00
minecraft1024a
71bcb7bc11
refactor(memory): 优化类型注解并增强代码健壮性
...
- 为 `MemorySystem` 类中的核心组件属性添加 `| None` 类型注解,使其更精确地反映其可能为 `None` 的初始状态。
- 在 `_collect_candidates_by_fingerprint` 方法中,为异常捕获添加 `noqa: PERF203` 以忽略特定的性能警告。
- 在 `rebuild_all_memory_vectors` 方法中,增加对 `self.unified_storage` 是否存在的检查,防止在未初始化时出现 `AttributeError`。
2025-11-19 23:18:18 +08:00
minecraft1024a
cd84373828
style: 统一代码风格并进行现代化改进
...
对整个代码库进行了一次全面的风格统一和现代化改进。主要变更包括:
- 将 `hasattr` 等内置函数中的字符串参数从单引号 `'` 统一为双引号 `"`。
- 采用现代类型注解,例如将 `Optional[T]` 替换为 `T | None`,`List[T]` 替换为 `list[T]` 等。
- 移除不再需要的 Python 2 兼容性声明 `# -*- coding: utf-8 -*-`。
- 清理了多余的空行、注释和未使用的导入。
- 统一了文件末尾的换行符。
- 优化了部分日志输出和字符串格式化 (`f"{e!s}"`)。
这些改动旨在提升代码的可读性、一致性和可维护性,使其更符合现代 Python 编码规范。
2025-11-19 23:18:16 +08:00
minecraft1024a
1fb2ab6450
fix(memory): 修复向量重建后保存和统计逻辑
...
在向量存储重建过程中,移除了冗余的 `save_storage` 调用,因为向量数据在 `store_memories` 步骤中已经被持久化。
同时,改进了重建完成后的日志记录。现在会检查 `unified_storage` 是否存在,以避免在存储未初始化时尝试获取统计数据而引发潜在错误,并提供了更清晰的警告信息。
2025-11-19 23:18:11 +08:00
minecraft1024a
599289c245
refactor(memory): 简化模型任务配置的获取方式
...
移除不必要的 `getattr` 调用,直接访问 `model_task_config` 的 `utils_small` 属性。这使得代码更简洁、更易读,并假设该属性总是存在。
2025-11-19 23:18:10 +08:00
minecraft1024a
d3e349893e
chore(log): 移除记忆系统日志中的表情符号
...
清理 `memory_manager` 和 `memory_system` 模块中的日志输出,移除了表情符号,使日志信息更加简洁和专业。
2025-11-19 23:18:09 +08:00
雅诺狐
1c9c4884c6
refactor(deps): 将jieba分词库替换为rjieba
2025-11-19 23:18:07 +08:00
minecraft1024a
99ba96ce7b
chore(memory): 移除记忆系统初始化过程中的冗余日志记录
2025-11-19 23:17:54 +08:00
minecraft1024a
1a314ac610
feat(memory): 增强记忆类型解析,支持中英文映射
...
新增了一个 `_resolve_memory_type` 方法,以更健壮地处理从 LLM 返回的记忆类型字符串。此方法现在可以正确解析中文、英文(大小写不敏感)以及下划线格式的记忆类型。
- 增加了从中文到 `MemoryType` 枚举的直接映射。
- 实现了对多种英文格式(如 "personal_fact", "PERSONAL_FACT", "Personal Fact")的兼容解析。
- 当无法识别任何有效类型时,会记录警告并安全地回退到默认的 `CONTEXTUAL` 类型,提高了系统的容错性。
2025-11-19 23:17:50 +08:00
minecraft1024a
a273be76d3
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-11-19 23:17:49 +08:00
Windpicker-owo
481252d660
refactor(chat): 异步化聊天系统并重构兴趣值计算机制
...
将同步调用改为异步调用以提升性能,重构兴趣值计算流程以支持更灵活的组件化架构。主要改进包括:
- 异步化ChatManager相关方法,避免阻塞主线程
- 重构兴趣值计算系统,从插件内部计算改为通过兴趣管理器统一处理
- 新增should_act字段支持更细粒度的动作决策
- 优化初始化逻辑,避免构造函数中的异步操作
- 扩展插件系统支持兴趣计算器组件注册
- 更新数据库模型以支持新的兴趣值相关字段
这些改进提升了系统的响应性能和可扩展性,同时保持了API的向后兼容性。
2025-11-19 23:15:31 +08:00
Windpicker-owo
8822bcd3ef
fix(memory): 修复定时清理任务的异步执行问题
2025-11-19 23:15:13 +08:00
Windpicker-owo
a5a16971e9
refactor(memory): 移除废弃的记忆系统备份文件,优化消息管理器架构
...
移除了deprecated_backup目录下的所有废弃记忆系统文件,包括增强记忆适配器、钩子、集成层、重排序器、元数据索引、多阶段检索和向量存储等模块。同时优化了消息管理器,集成了批量数据库写入器、流缓存管理器和自适应流管理器,提升了系统性能和可维护性。
2025-11-19 23:14:42 +08:00
Windpicker-owo
80fc37fd02
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-11-19 23:14:39 +08:00
Windpicker-owo
3de18dbf3e
refactor(logging): 将信息日志级别更改为调试级别以减少输出噪声
2025-11-19 23:14:34 +08:00
minecraft1024a
e02af208c4
ruff
2025-11-19 23:14:28 +08:00
John Richard
a79253c714
re-style: 格式化代码
2025-11-19 23:13:20 +08:00
John Richard
00ba07e0e1
style: 格式化代码
2025-11-19 23:12:18 +08:00
Windpicker-owo
6c7e0c986f
feat(memory): 禁止使用模糊代称构建记忆
...
增强记忆构建系统的准确性,禁止使用"用户"等模糊代称
- 新增模糊代称检查机制,确保记忆使用明确的名字或称呼
- 更新记忆构建原则文档,明确要求使用具体姓名
- 修改display字段格式要求,提供正确的示例
- 删除memory_manager中未使用的consolidate_memory方法
- 优化memory_system配置和日志格式
2025-11-19 23:11:42 +08:00
Windpicker-owo
727f9550f5
feat(memory): 实现灵活搜索模式并重构记忆格式化系统
...
- 新增灵活匹配模式(flexible_mode),支持2/4项匹配即可的记忆检索策略
- 删除冗余的memory_formatter模块,简化记忆系统架构
- 增强枚举值解析机制,支持字符串、整数和枚举实例的自动转换
- 优化元数据索引搜索逻辑,分离严格模式和灵活模式的实现路径
- 改进向量存储的搜索回退机制,当元数据筛选无结果时自动回退到全量搜索
- 统一记忆类型映射管理,避免重复的格式化函数定义
这些变更提升了记忆检索的准确性和灵活性,同时简化了代码结构,提高了系统可维护性。
2025-11-19 23:11:40 +08:00
Windpicker-owo
96fbfc492e
feat(memory): 增强查询规划以支持未读消息上下文分析
...
新增未读消息上下文集成功能,提升记忆检索的精准度和相关性。
通过分析当前对话流中的未读消息内容、关键词和参与者信息,
生成更贴合实际对话场景的记忆检索策略。
主要改进:
- 查询规划器现在能够结合未读消息生成语义查询
- 新增未读消息上下文收集和摘要构建机制
- 优化向量存储的兜底逻辑以兼容新的记忆结构
- 改进记忆转换过程中的调试和空内容处理
这些功能使记忆系统能够更好地理解当前对话的上下文,
提供更相关的历史记忆来支持生成更准确的回复。
2025-11-19 23:11:40 +08:00
Windpicker-owo
06c0609d4a
feat(memory): 实现三阶段记忆检索系统并简化提取策略
...
- 移除规则和混合提取策略,统一使用LLM提取
- 实现三阶段检索:元数据粗筛→向量精筛→综合重排
- 新增JSON元数据索引支持,提升检索效率
- 优化Vector DB配置管理和批处理机制
- 统一记忆作用域为全局,实现完全共享
- 增强查询规划和综合评分算法
2025-11-19 23:11:39 +08:00
Windpicker-owo
4e4aa9fbcf
refactor(storage): 优化向量记忆存储的批处理和错误处理机制
...
- 改进_memory_to_vector_format方法,增强元数据序列化和错误处理
- 重构store_memories方法,实现真正的批处理存储
- 添加详细的日志记录,提升系统可观测性
- 修复memory_id获取和缓存问题
- 增强向量数据库操作的容错能力
- 调整日志级别,优化调试信息输出
2025-11-19 23:11:34 +08:00
Windpicker-owo
6fecfa8857
refactor(storage): 迁移记忆系统架构至现代化Vector DB方案
...
重构记忆存储层,采用ChromaDB作为核心向量数据库引擎,提升系统可扩展性和查询性能。通过引入VectorMemoryStorage替代原有的UnifiedMemoryStorage实现,实现了更高效的向量索引和检索机制。
主要变更包括:
- 架构层面:完全重构记忆存储抽象层,移除577行旧存储实现代码
- 配置系统:新增41项Vector DB专用配置参数,支持细粒度性能调优
- 查询优化:增强ChromaDB查询条件处理器,添加智能回退机制
- 系统集成:更新记忆系统初始化流程,适配新的存储接口
- 类型安全:修复异步调用类型不匹配问题
BREAKING CHANGE: 记忆存储API接口发生重大变更,UnifiedMemoryStorage相关类已废弃
2025-11-19 23:11:29 +08:00
Windpicker-owo
5eac7e8ad5
feat: 添加兼容性别名以支持增强记忆激活器,优化向量生成逻辑并调整日志级别
2025-11-19 23:11:28 +08:00
Windpicker-owo
afb1a75ebf
feat:实现具有向量和元数据索引的统一内存存储系统
...
- 添加了 UnifiedMemoryStorage 类,用于管理带向量嵌入的内存块。
- 集成了 FAISS,以实现高效的向量存储和搜索。
- 实现了内存缓存、关键字、类型和用户索引。
- 增加了内存遗忘和自动保存存储数据的支持。
- 包含用于存储、搜索和遗忘记忆的方法。
- 引入了存储行为和性能的配置选项。
- 实现了从磁盘加载和保存内存及向量数据。
2025-11-19 23:11:25 +08:00
Windpicker-owo
8fa18a74e2
feat(memory): 重构记忆系统检索机制并优化召回率
...
- 实现五阶段检索流程:元数据过滤→向量搜索→语义重排序→上下文过滤→增强重排序
- 添加回退机制保障检索健壮性,当主检索失败时自动降级到文本匹配
- 优化向量相似度阈值配置,提升记忆召回率
- 新增记忆融合候选收集机制,避免重复记忆存储
- 改进记忆格式化器,支持多种展示格式
- 增强向量存储加载和重建逻辑,确保数据持久化
- 优化记忆存储时机,移至回复生成完成后异步执行
- 添加详细的检索调试日志,便于问题排查
- 简化查询规划器提示模板,提升生成效率
2025-11-19 23:11:22 +08:00
Windpicker-owo
3fcf8e9add
feat(memory): 重构记忆系统并移除插件热重载
...
重构记忆系统核心模块,引入全局记忆作用域、记忆指纹去重机制和查询规划器,优化多阶段检索性能。移除插件热重载系统及其相关依赖。
主要变更:
- 引入全局记忆作用域,简化记忆管理
- 实现记忆指纹去重,避免重复记忆存储
- 新增查询规划器,支持语义查询规划和记忆类型过滤
- 优化多阶段检索,增加语义重排和权重配置
- 改进向量存储,支持嵌入维度自动解析和查询向量生成
- 增强元数据索引,支持主体索引和更新操作
- 记忆构建器支持多主体和自然语言展示
- 移除watchdog依赖和插件热重载模块
- 更新配置模板,简化记忆配置项
BREAKING CHANGE: 移除插件热重载系统,相关API和命令不再可用。记忆系统接口有较大调整,使用该系统的模块需要适配新接口。
2025-11-19 23:11:14 +08:00
Windpicker-owo
37c8253f54
feat(memory): 增强记忆构建系统并优化检索性能
...
- 添加记忆提取异常处理机制,提升系统稳定性
- 实现记忆内容格式化功能,增强可读性和结构化输出
- 优化LLM响应解析逻辑,避免系统标识误写入记忆
- 改进向量存储批量嵌入生成,提升处理效率
- 为记忆系统添加机器人身份上下文注入,避免自身信息记录
- 增强记忆检索接口,支持额外上下文参数传递
- 添加控制台记忆预览功能,便于人工检查
- 优化记忆融合算法,正确处理单记忆组情况
- 改进流循环管理器,支持未读消息积压强制分发机制
2025-11-19 23:11:11 +08:00
Windpicker-owo
0a3c908654
feat(memory): 增强记忆构建上下文处理能力并优化兴趣度批量更新机制
...
- 在记忆构建过程中允许检索历史记忆作为上下文补充
- 改进LLM响应解析逻辑,增强JSON提取兼容性
- 优化消息兴趣度计算和批量更新机制,减少数据库写入频率
- 添加构建状态管理,支持在BUILDING状态下进行记忆检索
- 修复stream_id拼写错误处理和历史消息获取逻辑
2025-11-19 23:11:10 +08:00
tt-P607
310027009e
fix(chat): 修复在海马体未初始化时调用主题遗忘的潜在错误
...
在调用 `operation_forget_topic` 方法前增加空值检查,以防止当海马体或其相关组件尚未完全初始化时,调用该方法导致程序崩溃。此更改增强了记忆遗忘操作的健壮性。
2025-11-19 23:11:00 +08:00
Windpicker-owo
e61975f0af
fix(memory): 将日志级别从debug更改为info,以提高构建间隔提示的可见性
2025-11-19 23:10:26 +08:00
Windpicker-owo
335e5d5c5f
feat(memory): 添加时间规范化处理功能
...
在记忆构建器中增加时间规范化处理逻辑,将相对时间表达式转换为绝对日期格式。添加了相对时间映射规则和正则替换机制,确保记忆内容中的时间信息统一使用YYYY-MM-DD格式。同时更新了系统提示语,明确时间处理原则和要求。
- 新增_normalize_time_in_memory方法处理时间规范化
- 添加相对时间到绝对时间的映射规则
- 更新系统提示语包含时间处理原则
- 支持记忆内容和对象信息中的时间规范化
2025-11-19 23:10:25 +08:00
Windpicker-owo
b95784d004
feat(memory): 添加记忆构建节流机制
...
在EnhancedMemorySystem中新增min_build_interval_seconds配置项,实现基于作用域的构建频率控制。通过_get_build_scope_key方法根据stream_id、chat_id或user_id生成节流键,确保同一作用域内的记忆构建操作不会过于频繁。
新增_last_memory_build_times字典记录各作用域的最后构建时间,当间隔不足配置阈值时自动跳过构建操作。同时在构建异常时自动清理对应的节流记录,确保系统稳定性。
2025-11-19 23:10:25 +08:00
Windpicker-owo
a2217bd377
feat(memory): 实现增强记忆系统并完全替换原有架构
...
引入全新的增强记忆系统,彻底取代海马体记忆架构
删除旧版记忆系统相关模块,包括Hippocampus、异步包装器和优化器
重构消息处理流程,集成增强记忆系统的存储和检索功能
更新配置结构以支持增强记忆的各项参数设置
禁用原有定时任务,采用内置维护机制保证系统性能
2025-11-19 23:10:15 +08:00
Windpicker-owo
ae0c2704d1
refactor(chat): 移除 ChatStream 的历史消息自动加载功能
...
移除 ChatStream 初始化时的 `_load_history_messages()` 调用,改为按需异步加载历史消息。这解决了启动时阻塞事件循环的问题,并提高了聊天流初始化的性能。
主要变更:
- 删除 `ChatStream._load_history_messages()` 方法及相关代码
- 将多个模块中的同步数据库查询函数改为异步版本
- 修复相关调用处的异步调用方式
- 优化图片描述查询的错误处理
BREAKING CHANGE: `get_raw_msg_before_timestamp_with_chat` 和相关消息查询函数现在改为异步操作,需要调用处使用 await
2025-11-19 23:09:40 +08:00
Windpicker-owo
9836d317b8
refactor(database): 将同步数据库操作迁移为异步操作
...
将整个项目的数据库操作从同步模式迁移为异步模式,主要涉及以下修改:
- 将 `with get_db_session()` 改为 `async with get_db_session()`
- 将同步的 SQLAlchemy 查询方法改为异步执行
- 更新相关的方法签名,添加 async/await 关键字
- 修复由于异步化导致的并发问题和性能问题
这些修改提高了数据库操作的并发性能,避免了阻塞主线程,提升了系统的整体响应能力。涉及修改的模块包括表情包管理、反提示注入统计、用户封禁管理、记忆系统、消息存储等多个核心组件。
BREAKING CHANGE: 所有涉及数据库操作的方法现在都需要使用异步调用,同步调用将不再工作
2025-11-19 23:09:31 +08:00
minecraft1024a
53b61028c7
perf(memory): 优化记忆系统数据库操作并修复并发问题
...
将消息记忆次数的更新方式从单次写入重构为批量更新,在记忆构建任务结束时统一执行,大幅减少数据库写入次数,显著提升性能。
此外,为 `HippocampusManager` 添加了异步锁,以防止记忆巩固和遗忘操作并发执行时产生竞争条件。同时,增加了节点去重逻辑,在插入数据库前检查重复的概念,确保数据一致性。
2025-11-19 23:05:40 +08:00
雅诺狐
679195d792
refactor(db): 修正SQLAlchemy异步操作调用方式
...
移除session.add()方法的不必要await调用,修正异步数据库操作模式。主要变更包括:
- 将 `await session.add()` 统一改为 `session.add()`
- 修正部分函数调用为异步版本(如消息查询函数)
- 重构SQLAlchemyTransaction为完全异步实现
- 重写napcat_adapter_plugin数据库层以符合异步规范
- 添加aiomysql和aiosqlite依赖支持
2025-11-19 23:05:17 +08:00
雅诺狐
0cffc0aa95
refactor(db): 将数据库操作异步化
...
- 将所有 session.add() 改为 await session.add()
- 将所有 session.commit() 改为 await session.commit()
- 将 session.refresh() 改为 await session.refresh()
2025-11-19 23:05:14 +08:00
雅诺狐
93542cadef
perf(methods): 通过移除不必要的 self 参数优化方法签名
...
在包括 chat、plugin_system、schedule 和 mais4u 在内的多个模块中,消除冗余的实例引用。此次改动将无需访问实例状态的实用函数转换为静态方法,从而提升了内存效率,并使方法依赖关系更加清晰。
2025-11-19 23:05:00 +08:00
tt-P607
aba4f1a947
三次修改
2025-11-19 23:02:01 +08:00
Windpicker-owo
3980509caa
refactor(prompt): 重构并统一提示词系统
...
- 删除旧的智能提示词系统(smart_prompt.py)和相关参数模块(prompt_parameters.py)
- 将 prompt_builder.py 重命名为 prompt.py 并精简功能
- 更新所有模块的导入路径从 `src.chat.utils.prompt_builder` 到 `src.chat.utils.prompt`
- 统一提示词构建接口,使用新的 PromptContext 替代 SmartPromptParameters
- 移除重复和冗余代码,简化系统架构
BREAKING CHANGE: 旧的 SmartPrompt 系统已被完全移除,所有相关模块需要改用新的统一 Prompt 系统
2025-11-19 22:58:17 +08:00
Furina-1013-create
156662014b
fix: 修复 graph_nodes 表 weight 字段缺失问题
...
- 在 GraphNodes 模型中添加 weight 字段,设置默认值为 1.0
- 修复 Hippocampus.py 中插入 GraphNodes 时缺少 weight 字段的问题
- 解决 sqlite3.IntegrityError: NOT NULL constraint failed: graph_nodes.weight 错误
2025-11-19 22:57:40 +08:00
Windpicker-owo
d86cfa90ad
迁移:3804124,9e9e796
...
(feat:将no_reply内置、fix:优化reply,填补缺失值)
2025-11-19 22:56:51 +08:00