diff --git a/src/chat/replyer/default_generator.py b/src/chat/replyer/default_generator.py index b9670452d..84342c094 100644 --- a/src/chat/replyer/default_generator.py +++ b/src/chat/replyer/default_generator.py @@ -26,7 +26,7 @@ from src.chat.express.expression_selector import expression_selector from src.chat.memory_system.memory_activator import MemoryActivator from src.chat.memory_system.instant_memory import InstantMemory from src.mood.mood_manager import mood_manager -from src.person_info.person_info import Person, get_person_id_by_person_name +from src.person_info.person_info import Person, get_person_id_by_person_name,is_person_known from src.plugin_system.base.component_types import ActionInfo, EventType from src.plugin_system.apis import llm_api @@ -301,9 +301,8 @@ class DefaultReplyer: return "" # 获取用户ID - person_id = get_person_id_by_person_name(sender) - person = Person(person_id=person_id) - if not person_id: + person = Person(person_name = sender) + if not is_person_known(person_name=sender): logger.warning(f"未找到用户 {sender} 的ID,跳过信息提取") return f"你完全不认识{sender},不理解ta的相关信息。" diff --git a/src/person_info/person_info.py b/src/person_info/person_info.py index ebc02b9b9..a55a9ef19 100644 --- a/src/person_info/person_info.py +++ b/src/person_info/person_info.py @@ -128,6 +128,8 @@ class Person: self.person_name = global_config.bot.nickname return + self.user_id = "" + self.platform = "" if person_id: self.person_id = person_id @@ -138,6 +140,8 @@ class Person: return elif platform and user_id: self.person_id = get_person_id(platform, user_id) + self.user_id = user_id + self.platform = platform else: logger.error("Person 初始化失败,缺少必要参数") return @@ -148,8 +152,6 @@ class Person: return self.is_known = False - self.platform = platform - self.user_id = user_id # 初始化默认值 self.nickname = "" @@ -189,6 +191,8 @@ class Person: record = PersonInfo.get_or_none(PersonInfo.person_id == self.person_id) if record: + self.user_id = record.user_id if record.user_id else "" + self.platform = record.platform if record.platform else "" self.is_known = record.is_known if record.is_known else False self.nickname = record.nickname if record.nickname else "" self.person_name = record.person_name if record.person_name else self.nickname @@ -300,6 +304,9 @@ class Person: logger.error(f"同步用户 {self.person_id} 信息到数据库时出错: {e}") def build_relationship(self,points_num=3): + print(self.person_name,self.nickname,self.platform,self.is_known) + + if not self.is_known: return "" @@ -327,8 +334,8 @@ class Person: points_text = "\n".join([f"{point[2]}:{point[0]}" for point in points]) nickname_str = "" - if self.person_name != nickname_str: - nickname_str = f"(ta在{self.platform}上的昵称是{nickname_str})" + if self.person_name != self.nickname: + nickname_str = f"(ta在{self.platform}上的昵称是{self.nickname})" relation_info = ""