fix:修复一些问题
update
This commit is contained in:
@@ -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
|
||||
from src.person_info.person_info import Person, get_person_id_by_person_name
|
||||
from src.plugin_system.base.component_types import ActionInfo, EventType
|
||||
from src.plugin_system.apis import llm_api
|
||||
|
||||
@@ -301,8 +301,8 @@ class DefaultReplyer:
|
||||
return ""
|
||||
|
||||
# 获取用户ID
|
||||
person = Person(platform=self.chat_stream.platform, user_id=sender)
|
||||
person_id = person.person_id
|
||||
person_id = get_person_id_by_person_name(sender)
|
||||
person = Person(person_id=person_id)
|
||||
if not person_id:
|
||||
logger.warning(f"未找到用户 {sender} 的ID,跳过信息提取")
|
||||
return f"你完全不认识{sender},不理解ta的相关信息。"
|
||||
|
||||
@@ -154,7 +154,7 @@ class Person:
|
||||
if record.likeness_confidence is not None:
|
||||
self.likeness_confidence = float(record.likeness_confidence)
|
||||
|
||||
logger.info(f"已从数据库加载用户 {self.person_id} 的信息")
|
||||
logger.debug(f"已从数据库加载用户 {self.person_id} 的信息")
|
||||
else:
|
||||
self.sync_to_database()
|
||||
logger.info(f"用户 {self.person_id} 在数据库中不存在,使用默认值并创建")
|
||||
@@ -309,9 +309,6 @@ class PersonInfoManager:
|
||||
except Exception as e:
|
||||
logger.error(f"从 Peewee 加载 person_name_list 失败: {e}")
|
||||
|
||||
def get_person(self, platform: str, user_id: Union[int, str]) -> Person:
|
||||
person = Person(platform, user_id)
|
||||
return person
|
||||
|
||||
|
||||
@staticmethod
|
||||
|
||||
@@ -125,8 +125,6 @@ class RelationshipManager:
|
||||
)
|
||||
|
||||
async def get_points(self,
|
||||
person_name: str,
|
||||
nickname: str,
|
||||
readable_messages: str,
|
||||
name_mapping: Dict[str, str],
|
||||
timestamp: float,
|
||||
@@ -138,8 +136,8 @@ class RelationshipManager:
|
||||
"relation_points",
|
||||
bot_name = global_config.bot.nickname,
|
||||
alias_str = alias_str,
|
||||
person_name = person_name,
|
||||
nickname = nickname,
|
||||
person_name = person.person_name,
|
||||
nickname = person.nickname,
|
||||
current_time = current_time,
|
||||
readable_messages = readable_messages)
|
||||
|
||||
@@ -156,7 +154,7 @@ class RelationshipManager:
|
||||
logger.info(f"points: {points}")
|
||||
|
||||
if not points:
|
||||
logger.info(f"对 {person_name} 没啥新印象")
|
||||
logger.info(f"对 {person.person_name} 没啥新印象")
|
||||
return
|
||||
|
||||
# 解析JSON并转换为元组列表
|
||||
@@ -190,7 +188,7 @@ class RelationshipManager:
|
||||
points_list.append(point)
|
||||
|
||||
if points_list or discarded_count > 0:
|
||||
logger_str = f"了解了有关{person_name}的新印象:\n"
|
||||
logger_str = f"了解了有关{person.person_name}的新印象:\n"
|
||||
for point in points_list:
|
||||
logger_str += f"{point[0]},重要性:{point[1]}\n"
|
||||
if discarded_count > 0:
|
||||
@@ -238,7 +236,7 @@ class RelationshipManager:
|
||||
person.points = remaining_points
|
||||
return person
|
||||
|
||||
async def get_attitude_to_me(self, person_name, nickname, readable_messages, timestamp, person: Person):
|
||||
async def get_attitude_to_me(self, readable_messages, timestamp, person: Person):
|
||||
alias_str = ", ".join(global_config.bot.alias_names)
|
||||
current_time = datetime.fromtimestamp(timestamp).strftime("%Y-%m-%d %H:%M:%S")
|
||||
# 解析当前态度值
|
||||
@@ -249,8 +247,8 @@ class RelationshipManager:
|
||||
"attitude_to_me_prompt",
|
||||
bot_name = global_config.bot.nickname,
|
||||
alias_str = alias_str,
|
||||
person_name = person_name,
|
||||
nickname = nickname,
|
||||
person_name = person.person_name,
|
||||
nickname = person.nickname,
|
||||
readable_messages = readable_messages,
|
||||
current_time = current_time,
|
||||
)
|
||||
@@ -284,7 +282,7 @@ class RelationshipManager:
|
||||
|
||||
return person
|
||||
|
||||
async def get_neuroticism(self, person_name, nickname, readable_messages, timestamp, person: Person):
|
||||
async def get_neuroticism(self, readable_messages, timestamp, person: Person):
|
||||
alias_str = ", ".join(global_config.bot.alias_names)
|
||||
current_time = datetime.fromtimestamp(timestamp).strftime("%Y-%m-%d %H:%M:%S")
|
||||
# 解析当前态度值
|
||||
@@ -295,8 +293,8 @@ class RelationshipManager:
|
||||
"neuroticism_prompt",
|
||||
bot_name = global_config.bot.nickname,
|
||||
alias_str = alias_str,
|
||||
person_name = person_name,
|
||||
nickname = nickname,
|
||||
person_name = person.person_name,
|
||||
nickname = person.nickname,
|
||||
readable_messages = readable_messages,
|
||||
current_time = current_time,
|
||||
)
|
||||
@@ -364,12 +362,12 @@ class RelationshipManager:
|
||||
continue
|
||||
|
||||
# 跳过目标用户
|
||||
if msg_person.person_name == person_name:
|
||||
if msg_person.person_name == person_name and msg_person.person_name is not None:
|
||||
name_mapping[msg_person.person_name] = f"{person_name}"
|
||||
continue
|
||||
|
||||
# 其他用户映射
|
||||
if msg_person.person_name not in name_mapping:
|
||||
if msg_person.person_name not in name_mapping and msg_person.person_name is not None:
|
||||
if current_user > "Z":
|
||||
current_user = "A"
|
||||
user_count += 1
|
||||
@@ -382,13 +380,16 @@ class RelationshipManager:
|
||||
|
||||
for original_name, mapped_name in name_mapping.items():
|
||||
# print(f"original_name: {original_name}, mapped_name: {mapped_name}")
|
||||
# 确保 original_name 和 mapped_name 都不为 None
|
||||
if original_name is not None and mapped_name is not None:
|
||||
readable_messages = readable_messages.replace(f"{original_name}", f"{mapped_name}")
|
||||
|
||||
print(name_mapping)
|
||||
|
||||
person = await self.get_points(person_name, nickname, readable_messages, name_mapping, timestamp, person)
|
||||
person = await self.get_attitude_to_me(person_name, nickname, readable_messages, timestamp, person)
|
||||
person = await self.get_neuroticism(person_name, nickname, readable_messages, timestamp, person)
|
||||
person = await self.get_points(
|
||||
readable_messages=readable_messages, name_mapping=name_mapping, timestamp=timestamp, person=person)
|
||||
person = await self.get_attitude_to_me(readable_messages=readable_messages, timestamp=timestamp, person=person)
|
||||
person = await self.get_neuroticism(readable_messages=readable_messages, timestamp=timestamp, person=person)
|
||||
|
||||
person.know_times = know_times + 1
|
||||
person.last_know = timestamp
|
||||
|
||||
Reference in New Issue
Block a user