mirror of https://github.com/Mai-with-u/MaiBot.git
49 lines
2.3 KiB
Python
49 lines
2.3 KiB
Python
from dataclasses import dataclass
|
|
from typing import List
|
|
|
|
|
|
@dataclass
|
|
class MemoryConfig:
|
|
"""记忆系统配置类"""
|
|
|
|
# 记忆构建相关配置
|
|
memory_build_distribution: List[float] # 记忆构建的时间分布参数
|
|
build_memory_sample_num: int # 每次构建记忆的样本数量
|
|
build_memory_sample_length: int # 每个样本的消息长度
|
|
memory_compress_rate: float # 记忆压缩率
|
|
|
|
# 记忆遗忘相关配置
|
|
memory_forget_time: int # 记忆遗忘时间(小时)
|
|
|
|
# 记忆过滤相关配置
|
|
memory_ban_words: List[str] # 记忆过滤词列表
|
|
|
|
# 新增:记忆整合相关配置
|
|
consolidation_similarity_threshold: float # 相似度阈值
|
|
consolidate_memory_percentage: float # 检查节点比例
|
|
consolidate_memory_interval: int # 记忆整合间隔
|
|
|
|
llm_topic_judge: str # 话题判断模型
|
|
llm_summary: str # 话题总结模型
|
|
|
|
@classmethod
|
|
def from_global_config(cls, global_config):
|
|
"""从全局配置创建记忆系统配置"""
|
|
# 使用 getattr 提供默认值,防止全局配置缺少这些项
|
|
return cls(
|
|
memory_build_distribution=getattr(
|
|
global_config, "memory_build_distribution", (24, 12, 0.5, 168, 72, 0.5)
|
|
), # 添加默认值
|
|
build_memory_sample_num=getattr(global_config, "build_memory_sample_num", 5),
|
|
build_memory_sample_length=getattr(global_config, "build_memory_sample_length", 30),
|
|
memory_compress_rate=getattr(global_config, "memory_compress_rate", 0.1),
|
|
memory_forget_time=getattr(global_config, "memory_forget_time", 24 * 7),
|
|
memory_ban_words=getattr(global_config, "memory_ban_words", []),
|
|
# 新增加载整合配置,并提供默认值
|
|
consolidation_similarity_threshold=getattr(global_config, "consolidation_similarity_threshold", 0.7),
|
|
consolidate_memory_percentage=getattr(global_config, "consolidate_memory_percentage", 0.01),
|
|
consolidate_memory_interval=getattr(global_config, "consolidate_memory_interval", 1000),
|
|
llm_topic_judge=getattr(global_config, "llm_topic_judge", "default_judge_model"), # 添加默认模型名
|
|
llm_summary=getattr(global_config, "llm_summary", "default_summary_model"), # 添加默认模型名
|
|
)
|