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