From e0a6474416ec5a61d978605d416bb839d1aa232a Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Wed, 16 Jul 2025 11:29:11 +0800 Subject: [PATCH] =?UTF-8?q?better=EF=BC=9A=E4=BC=98=E5=8C=96=E5=85=B3?= =?UTF-8?q?=E7=B3=BB=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat/focus_chat/heartFC_chat.py | 2 +- src/chat/replyer/default_generator.py | 8 ++++---- src/person_info/relationship_fetcher.py | 12 +++--------- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/chat/focus_chat/heartFC_chat.py b/src/chat/focus_chat/heartFC_chat.py index dd460fab6..180b29690 100644 --- a/src/chat/focus_chat/heartFC_chat.py +++ b/src/chat/focus_chat/heartFC_chat.py @@ -237,7 +237,7 @@ class HeartFChatting: if if_think: self.energy_value *= 1.1 / (global_config.chat.focus_value + 0.2) logger.info(f"{self.log_prefix} 麦麦进行了思考,能量值增加1,当前能量值:{self.energy_value}") - return False + return True await asyncio.sleep(1) diff --git a/src/chat/replyer/default_generator.py b/src/chat/replyer/default_generator.py index d85a7063a..6091268b4 100644 --- a/src/chat/replyer/default_generator.py +++ b/src/chat/replyer/default_generator.py @@ -302,7 +302,7 @@ class DefaultReplyer: traceback.print_exc() return False, None - async def build_relation_info(self, reply_data=None, chat_history=None): + async def build_relation_info(self, reply_data=None): if not global_config.relationship.enable_relationship: return "" @@ -321,7 +321,7 @@ class DefaultReplyer: logger.warning(f"{self.log_prefix} 未找到用户 {sender} 的ID,跳过信息提取") return f"你完全不认识{sender},不理解ta的相关信息。" - return await relationship_fetcher.build_relation_info(person_id, text, chat_history) + return await relationship_fetcher.build_relation_info(person_id, points_num=5) async def build_expression_habits(self, chat_history, target): if not global_config.expression.enable_expression: @@ -619,7 +619,7 @@ class DefaultReplyer: self.build_expression_habits(chat_talking_prompt_short, target), "build_expression_habits" ), self._time_and_run_task( - self.build_relation_info(reply_data, chat_talking_prompt_short), "build_relation_info" + self.build_relation_info(reply_data), "build_relation_info" ), self._time_and_run_task(self.build_memory_block(chat_talking_prompt_short, target), "build_memory_block"), self._time_and_run_task( @@ -806,7 +806,7 @@ class DefaultReplyer: # 并行执行2个构建任务 expression_habits_block, relation_info = await asyncio.gather( self.build_expression_habits(chat_talking_prompt_half, target), - self.build_relation_info(reply_data, chat_talking_prompt_half), + self.build_relation_info(reply_data), ) keywords_reaction_prompt = await self.build_keywords_reaction_prompt(target) diff --git a/src/person_info/relationship_fetcher.py b/src/person_info/relationship_fetcher.py index 5e369e752..deeb4c370 100644 --- a/src/person_info/relationship_fetcher.py +++ b/src/person_info/relationship_fetcher.py @@ -96,7 +96,7 @@ class RelationshipFetcher: if not self.info_fetched_cache[person_id]: del self.info_fetched_cache[person_id] - async def build_relation_info(self, person_id, target_message, chat_history): + async def build_relation_info(self, person_id, points_num = 3): # 清理过期的信息缓存 self._cleanup_expired_cache() @@ -124,13 +124,13 @@ class RelationshipFetcher: # 按时间排序forgotten_points current_points.sort(key=lambda x: x[2]) # 按权重加权随机抽取最多3个不重复的points,point[1]的值在1-10之间,权重越高被抽到概率越大 - if len(current_points) > 3: + if len(current_points) > points_num: # point[1] 取值范围1-10,直接作为权重 weights = [max(1, min(10, int(point[1]))) for point in current_points] # 使用加权采样不放回,保证不重复 indices = list(range(len(current_points))) points = [] - for _ in range(3): + for _ in range(points_num): if not indices: break sub_weights = [weights[i] for i in indices] @@ -143,12 +143,6 @@ class RelationshipFetcher: # 构建points文本 points_text = "\n".join([f"{point[2]}:{point[0]}" for point in points]) - # info_type = await self._build_fetch_query(person_id, target_message, chat_history) - # if info_type: - # await self._extract_single_info(person_id, info_type, person_name) - - # relation_info = self._organize_known_info() - nickname_str = "" if person_name != nickname_str: nickname_str = f"(ta在{platform}上的昵称是{nickname_str})"