From 727457373643888ba0195c4bc79dd72634381cff Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Wed, 12 Mar 2025 01:32:20 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BF=86=E5=92=8C=E9=81=97=E5=BF=98?= =?UTF-8?q?=E7=9A=84=E5=8F=AF=E8=87=AA=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/chat/__init__.py | 2 +- src/plugins/chat/config.py | 16 +++++++++++++--- src/plugins/memory_system/memory.py | 6 +++--- template/bot_config_template.toml | 11 ++++++++--- 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/plugins/chat/__init__.py b/src/plugins/chat/__init__.py index 4833a0f5b..38af5443d 100644 --- a/src/plugins/chat/__init__.py +++ b/src/plugins/chat/__init__.py @@ -127,7 +127,7 @@ async def build_memory_task(): async def forget_memory_task(): """每30秒执行一次记忆构建""" 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 记忆遗忘完成") diff --git a/src/plugins/chat/config.py b/src/plugins/chat/config.py index a53237e6a..88cb31ed5 100644 --- a/src/plugins/chat/config.py +++ b/src/plugins/chat/config.py @@ -37,8 +37,7 @@ class BotConfig: ban_user_id = set() - build_memory_interval: int = 30 # 记忆构建间隔(秒) - forget_memory_interval: int = 300 # 记忆遗忘间隔(秒) + EMOJI_CHECK_INTERVAL: int = 120 # 表情包检查间隔(分钟) EMOJI_REGISTER_INTERVAL: int = 10 # 表情包注册间隔(分钟) EMOJI_SAVE: bool = True # 偷表情包 @@ -95,7 +94,13 @@ class BotConfig: PERSONALITY_1: float = 0.6 # 第一种人格概率 PERSONALITY_2: float = 0.3 # 第二种人格概率 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( default_factory=lambda: ["表情包", "图片", "回复", "聊天记录"] ) # 添加新的配置项默认值 @@ -294,6 +299,11 @@ class BotConfig: # 在版本 >= 0.0.4 时才处理新增的配置项 if config.INNER_VERSION in SpecifierSet(">=0.0.4"): 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): mood_config = parent["mood"] diff --git a/src/plugins/memory_system/memory.py b/src/plugins/memory_system/memory.py index d79ed5f91..0679c3294 100644 --- a/src/plugins/memory_system/memory.py +++ b/src/plugins/memory_system/memory.py @@ -303,7 +303,7 @@ class Hippocampus: return topic_num 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) for i, messages in enumerate(memory_samples, 1): @@ -315,7 +315,7 @@ class Hippocampus: bar = '█' * filled_length + '-' * (bar_length - filled_length) 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) 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"current_time:{current_time}") # 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) new_strength = current_strength - 1 diff --git a/template/bot_config_template.toml b/template/bot_config_template.toml index eb0323cec..089be69b0 100644 --- a/template/bot_config_template.toml +++ b/template/bot_config_template.toml @@ -1,5 +1,5 @@ [inner] -version = "0.0.7" +version = "0.0.8" #如果你想要修改配置文件,请在修改后将version的值进行变更 #如果新增项目,请在BotConfig类下新增相应的变量 @@ -65,8 +65,13 @@ model_r1_distill_probability = 0.1 # 麦麦回答时选择次要回复模型3 max_response_length = 1024 # 麦麦回答的最大token数 [memory] -build_memory_interval = 300 # 记忆构建间隔 单位秒 -forget_memory_interval = 300 # 记忆遗忘间隔 单位秒 +build_memory_interval = 600 # 记忆构建间隔 单位秒 间隔越低,麦麦学习越多,但是冗余信息也会增多 +memory_compress_rate = 0.1 # 记忆压缩率 控制记忆精简程度 建议保持默认,调高可以获得更多信息,但是冗余信息也会增多 + +forget_memory_interval = 600 # 记忆遗忘间隔 单位秒 间隔越低,麦麦遗忘越频繁,记忆更精简,但更难学习 +memory_forget_time = 24 #多长时间后的记忆会被遗忘 单位小时 +memory_forget_percentage = 0.01 # 记忆遗忘比例 控制记忆遗忘程度 越大遗忘越多 建议保持默认 + memory_ban_words = [ #不希望记忆的词 # "403","张三"