fix:修复引用回复逻辑

This commit is contained in:
SengokuCola
2025-05-02 02:03:24 +08:00
parent 1ca736cc32
commit 974839c1b5
14 changed files with 194 additions and 155 deletions

View File

@@ -188,7 +188,9 @@ class PersonInfoManager:
logger.warning(f"无法从文本中提取有效的JSON字典: {text}")
return {"nickname": "", "reason": ""}
async def qv_person_name(self, person_id: str, user_nickname: str, user_cardname: str, user_avatar: str, request: str = ""):
async def qv_person_name(
self, person_id: str, user_nickname: str, user_cardname: str, user_avatar: str, request: str = ""
):
"""给某个用户取名"""
if not person_id:
logger.debug("取名失败person_id不能为空")
@@ -214,7 +216,7 @@ class PersonInfoManager:
qv_name_prompt += f"你之前叫他{old_name},是因为{old_reason}"
qv_name_prompt += f"\n其他取名的要求是:{request}"
qv_name_prompt += "\n请根据以上用户信息想想你叫他什么比较好请最好使用用户的qq昵称可以稍作修改"
if existing_names:
qv_name_prompt += f"\n请注意,以下名称已被使用,不要使用以下昵称:{existing_names}\n"
@@ -526,7 +528,7 @@ class PersonInfoManager:
for pid, name in self.person_name_list.items():
if name == person_name:
found_person_id = pid
break # 找到第一个匹配就停止
break # 找到第一个匹配就停止
if not found_person_id:
# 如果内存没有,尝试数据库查询(可能内存未及时更新或启动时未加载)
@@ -535,21 +537,21 @@ class PersonInfoManager:
found_person_id = document.get("person_id")
else:
logger.debug(f"数据库中也未找到名为 '{person_name}' 的用户")
return None # 数据库也找不到
return None # 数据库也找不到
# 根据找到的 person_id 获取所需信息
if found_person_id:
required_fields = ["person_id", "platform", "user_id", "nickname", "user_cardname", "user_avatar"]
person_data = await self.get_values(found_person_id, required_fields)
if person_data: # 确保 get_values 成功返回
if person_data: # 确保 get_values 成功返回
return person_data
else:
logger.warning(f"找到了 person_id '{found_person_id}' 但获取详细信息失败")
return None
else:
# 这理论上不应该发生,因为上面已经处理了找不到的情况
logger.error(f"逻辑错误:未能为 '{person_name}' 确定 person_id")
return None
# 这理论上不应该发生,因为上面已经处理了找不到的情况
logger.error(f"逻辑错误:未能为 '{person_name}' 确定 person_id")
return None
person_info_manager = PersonInfoManager()