@@ -127,7 +127,7 @@ async def build_memory_task():
|
|||||||
async def forget_memory_task():
|
async def forget_memory_task():
|
||||||
"""每30秒执行一次记忆构建"""
|
"""每30秒执行一次记忆构建"""
|
||||||
print("\033[1;32m[记忆遗忘]\033[0m 开始遗忘记忆...")
|
print("\033[1;32m[记忆遗忘]\033[0m 开始遗忘记忆...")
|
||||||
await hippocampus.operation_forget_topic(percentage=0.1)
|
await hippocampus.operation_forget_topic(percentage=global_config.memory_forget_percentage)
|
||||||
print("\033[1;32m[记忆遗忘]\033[0m 记忆遗忘完成")
|
print("\033[1;32m[记忆遗忘]\033[0m 记忆遗忘完成")
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -37,8 +37,7 @@ class BotConfig:
|
|||||||
|
|
||||||
ban_user_id = set()
|
ban_user_id = set()
|
||||||
|
|
||||||
build_memory_interval: int = 30 # 记忆构建间隔(秒)
|
|
||||||
forget_memory_interval: int = 300 # 记忆遗忘间隔(秒)
|
|
||||||
EMOJI_CHECK_INTERVAL: int = 120 # 表情包检查间隔(分钟)
|
EMOJI_CHECK_INTERVAL: int = 120 # 表情包检查间隔(分钟)
|
||||||
EMOJI_REGISTER_INTERVAL: int = 10 # 表情包注册间隔(分钟)
|
EMOJI_REGISTER_INTERVAL: int = 10 # 表情包注册间隔(分钟)
|
||||||
EMOJI_SAVE: bool = True # 偷表情包
|
EMOJI_SAVE: bool = True # 偷表情包
|
||||||
@@ -96,6 +95,12 @@ class BotConfig:
|
|||||||
PERSONALITY_2: float = 0.3 # 第二种人格概率
|
PERSONALITY_2: float = 0.3 # 第二种人格概率
|
||||||
PERSONALITY_3: float = 0.1 # 第三种人格概率
|
PERSONALITY_3: float = 0.1 # 第三种人格概率
|
||||||
|
|
||||||
|
build_memory_interval: int = 600 # 记忆构建间隔(秒)
|
||||||
|
|
||||||
|
forget_memory_interval: int = 600 # 记忆遗忘间隔(秒)
|
||||||
|
memory_forget_time: int = 24 # 记忆遗忘时间(小时)
|
||||||
|
memory_forget_percentage: float = 0.01 # 记忆遗忘比例
|
||||||
|
memory_compress_rate: float = 0.1 # 记忆压缩率
|
||||||
memory_ban_words: list = field(
|
memory_ban_words: list = field(
|
||||||
default_factory=lambda: ["表情包", "图片", "回复", "聊天记录"]
|
default_factory=lambda: ["表情包", "图片", "回复", "聊天记录"]
|
||||||
) # 添加新的配置项默认值
|
) # 添加新的配置项默认值
|
||||||
@@ -295,6 +300,11 @@ class BotConfig:
|
|||||||
if config.INNER_VERSION in SpecifierSet(">=0.0.4"):
|
if config.INNER_VERSION in SpecifierSet(">=0.0.4"):
|
||||||
config.memory_ban_words = set(memory_config.get("memory_ban_words", []))
|
config.memory_ban_words = set(memory_config.get("memory_ban_words", []))
|
||||||
|
|
||||||
|
if config.INNER_VERSION in SpecifierSet(">=0.0.7"):
|
||||||
|
config.memory_forget_time = memory_config.get("memory_forget_time", config.memory_forget_time)
|
||||||
|
config.memory_forget_percentage = memory_config.get("memory_forget_percentage", config.memory_forget_percentage)
|
||||||
|
config.memory_compress_rate = memory_config.get("memory_compress_rate", config.memory_compress_rate)
|
||||||
|
|
||||||
def mood(parent: dict):
|
def mood(parent: dict):
|
||||||
mood_config = parent["mood"]
|
mood_config = parent["mood"]
|
||||||
config.mood_update_interval = mood_config.get("mood_update_interval", config.mood_update_interval)
|
config.mood_update_interval = mood_config.get("mood_update_interval", config.mood_update_interval)
|
||||||
|
|||||||
@@ -303,7 +303,7 @@ class Hippocampus:
|
|||||||
return topic_num
|
return topic_num
|
||||||
|
|
||||||
async def operation_build_memory(self, chat_size=20):
|
async def operation_build_memory(self, chat_size=20):
|
||||||
time_frequency = {'near': 3, 'mid': 8, 'far': 5}
|
time_frequency = {'near': 1, 'mid': 4, 'far': 4}
|
||||||
memory_samples = self.get_memory_sample(chat_size, time_frequency)
|
memory_samples = self.get_memory_sample(chat_size, time_frequency)
|
||||||
|
|
||||||
for i, messages in enumerate(memory_samples, 1):
|
for i, messages in enumerate(memory_samples, 1):
|
||||||
@@ -315,7 +315,7 @@ class Hippocampus:
|
|||||||
bar = '█' * filled_length + '-' * (bar_length - filled_length)
|
bar = '█' * filled_length + '-' * (bar_length - filled_length)
|
||||||
logger.debug(f"进度: [{bar}] {progress:.1f}% ({i}/{len(memory_samples)})")
|
logger.debug(f"进度: [{bar}] {progress:.1f}% ({i}/{len(memory_samples)})")
|
||||||
|
|
||||||
compress_rate = 0.1
|
compress_rate = global_config.memory_compress_rate
|
||||||
compressed_memory, similar_topics_dict = await self.memory_compress(messages, compress_rate)
|
compressed_memory, similar_topics_dict = await self.memory_compress(messages, compress_rate)
|
||||||
logger.info(f"压缩后记忆数量: {len(compressed_memory)},似曾相识的话题: {len(similar_topics_dict)}")
|
logger.info(f"压缩后记忆数量: {len(compressed_memory)},似曾相识的话题: {len(similar_topics_dict)}")
|
||||||
|
|
||||||
@@ -551,7 +551,7 @@ class Hippocampus:
|
|||||||
# print(f"float(last_modified):{float(last_modified)}" )
|
# print(f"float(last_modified):{float(last_modified)}" )
|
||||||
# print(f"current_time:{current_time}")
|
# print(f"current_time:{current_time}")
|
||||||
# print(f"current_time - last_modified:{current_time - last_modified}")
|
# print(f"current_time - last_modified:{current_time - last_modified}")
|
||||||
if current_time - last_modified > 3600*24: # test
|
if current_time - last_modified > 3600*global_config.memory_forget_time: # test
|
||||||
current_strength = edge_data.get('strength', 1)
|
current_strength = edge_data.get('strength', 1)
|
||||||
new_strength = current_strength - 1
|
new_strength = current_strength - 1
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
[inner]
|
[inner]
|
||||||
version = "0.0.7"
|
version = "0.0.8"
|
||||||
|
|
||||||
#如果你想要修改配置文件,请在修改后将version的值进行变更
|
#如果你想要修改配置文件,请在修改后将version的值进行变更
|
||||||
#如果新增项目,请在BotConfig类下新增相应的变量
|
#如果新增项目,请在BotConfig类下新增相应的变量
|
||||||
@@ -65,8 +65,13 @@ model_r1_distill_probability = 0.1 # 麦麦回答时选择次要回复模型3
|
|||||||
max_response_length = 1024 # 麦麦回答的最大token数
|
max_response_length = 1024 # 麦麦回答的最大token数
|
||||||
|
|
||||||
[memory]
|
[memory]
|
||||||
build_memory_interval = 300 # 记忆构建间隔 单位秒
|
build_memory_interval = 600 # 记忆构建间隔 单位秒 间隔越低,麦麦学习越多,但是冗余信息也会增多
|
||||||
forget_memory_interval = 300 # 记忆遗忘间隔 单位秒
|
memory_compress_rate = 0.1 # 记忆压缩率 控制记忆精简程度 建议保持默认,调高可以获得更多信息,但是冗余信息也会增多
|
||||||
|
|
||||||
|
forget_memory_interval = 600 # 记忆遗忘间隔 单位秒 间隔越低,麦麦遗忘越频繁,记忆更精简,但更难学习
|
||||||
|
memory_forget_time = 24 #多长时间后的记忆会被遗忘 单位小时
|
||||||
|
memory_forget_percentage = 0.01 # 记忆遗忘比例 控制记忆遗忘程度 越大遗忘越多 建议保持默认
|
||||||
|
|
||||||
|
|
||||||
memory_ban_words = [ #不希望记忆的词
|
memory_ban_words = [ #不希望记忆的词
|
||||||
# "403","张三"
|
# "403","张三"
|
||||||
|
|||||||
Reference in New Issue
Block a user