🤖 自动格式化代码 [skip ci]
This commit is contained in:
@@ -788,7 +788,6 @@ class RelationshipProcessor(BaseProcessor):
|
|||||||
logger.info(f"{self.log_prefix} 记得 {person_name} 的 {info_type}: {cached_info}")
|
logger.info(f"{self.log_prefix} 记得 {person_name} 的 {info_type}: {cached_info}")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
bot_person_id = PersonInfoManager.get_person_id("system", "bot_id")
|
bot_person_id = PersonInfoManager.get_person_id("system", "bot_id")
|
||||||
is_bot = person_id == bot_person_id
|
is_bot = person_id == bot_person_id
|
||||||
|
|
||||||
@@ -833,7 +832,9 @@ class RelationshipProcessor(BaseProcessor):
|
|||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
nickname_str = ",".join(global_config.bot.alias_names)
|
nickname_str = ",".join(global_config.bot.alias_names)
|
||||||
name_block = f"你的名字是{global_config.bot.nickname},你的昵称有{nickname_str},有人也会用这些昵称称呼你。"
|
name_block = (
|
||||||
|
f"你的名字是{global_config.bot.nickname},你的昵称有{nickname_str},有人也会用这些昵称称呼你。"
|
||||||
|
)
|
||||||
prompt = (await global_prompt_manager.get_prompt_async("fetch_person_info_prompt")).format(
|
prompt = (await global_prompt_manager.get_prompt_async("fetch_person_info_prompt")).format(
|
||||||
name_block=name_block,
|
name_block=name_block,
|
||||||
info_type=info_type,
|
info_type=info_type,
|
||||||
@@ -850,8 +851,6 @@ class RelationshipProcessor(BaseProcessor):
|
|||||||
# 使用小模型进行即时提取
|
# 使用小模型进行即时提取
|
||||||
content, _ = await self.instant_llm_model.generate_response_async(prompt=prompt)
|
content, _ = await self.instant_llm_model.generate_response_async(prompt=prompt)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if content:
|
if content:
|
||||||
content_json = json.loads(repair_json(content))
|
content_json = json.loads(repair_json(content))
|
||||||
if info_type in content_json:
|
if info_type in content_json:
|
||||||
@@ -877,9 +876,7 @@ class RelationshipProcessor(BaseProcessor):
|
|||||||
else:
|
else:
|
||||||
logger.info(f"{self.log_prefix} 思考了也不知道{person_name} 的 {info_type} 信息")
|
logger.info(f"{self.log_prefix} 思考了也不知道{person_name} 的 {info_type} 信息")
|
||||||
else:
|
else:
|
||||||
logger.warning(
|
logger.warning(f"{self.log_prefix} 小模型返回空结果,获取 {person_name} 的 {info_type} 信息失败。")
|
||||||
f"{self.log_prefix} 小模型返回空结果,获取 {person_name} 的 {info_type} 信息失败。"
|
|
||||||
)
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"{self.log_prefix} 执行小模型请求获取用户信息时出错: {e}")
|
logger.error(f"{self.log_prefix} 执行小模型请求获取用户信息时出错: {e}")
|
||||||
logger.error(traceback.format_exc())
|
logger.error(traceback.format_exc())
|
||||||
|
|||||||
@@ -6,13 +6,7 @@ import random
|
|||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import hashlib
|
import hashlib
|
||||||
import traceback
|
|
||||||
from rich.traceback import install
|
from rich.traceback import install
|
||||||
from json_repair import repair_json
|
|
||||||
from src.chat.utils.prompt_builder import Prompt, global_prompt_manager
|
|
||||||
from src.manager.async_task_manager import AsyncTask
|
|
||||||
from src.llm_models.utils_model import LLMRequest
|
|
||||||
from src.config.config import global_config
|
|
||||||
from src.common.logger import get_logger
|
from src.common.logger import get_logger
|
||||||
from src.person_info.person_info import get_person_info_manager
|
from src.person_info.person_info import get_person_info_manager
|
||||||
|
|
||||||
@@ -52,9 +46,11 @@ class Individuality:
|
|||||||
person_info_manager = get_person_info_manager()
|
person_info_manager = get_person_info_manager()
|
||||||
self.bot_person_id = person_info_manager.get_person_id("system", "bot_id")
|
self.bot_person_id = person_info_manager.get_person_id("system", "bot_id")
|
||||||
self.name = bot_nickname
|
self.name = bot_nickname
|
||||||
|
|
||||||
# 检查配置变化,如果变化则清空
|
# 检查配置变化,如果变化则清空
|
||||||
await self._check_config_and_clear_if_changed(bot_nickname, personality_core, personality_sides, identity_detail)
|
await self._check_config_and_clear_if_changed(
|
||||||
|
bot_nickname, personality_core, personality_sides, identity_detail
|
||||||
|
)
|
||||||
|
|
||||||
# 初始化人格
|
# 初始化人格
|
||||||
self.personality = Personality.initialize(
|
self.personality = Personality.initialize(
|
||||||
@@ -72,7 +68,7 @@ class Individuality:
|
|||||||
impression_parts.append(f"人格侧面: {'、'.join(personality_sides)}")
|
impression_parts.append(f"人格侧面: {'、'.join(personality_sides)}")
|
||||||
if identity_detail:
|
if identity_detail:
|
||||||
impression_parts.append(f"身份: {'、'.join(identity_detail)}")
|
impression_parts.append(f"身份: {'、'.join(identity_detail)}")
|
||||||
|
|
||||||
impression_text = "。".join(impression_parts)
|
impression_text = "。".join(impression_parts)
|
||||||
if impression_text:
|
if impression_text:
|
||||||
impression_text += "。"
|
impression_text += "。"
|
||||||
@@ -84,8 +80,10 @@ class Individuality:
|
|||||||
"person_name": self.name,
|
"person_name": self.name,
|
||||||
"nickname": self.name,
|
"nickname": self.name,
|
||||||
}
|
}
|
||||||
await person_info_manager.update_one_field(self.bot_person_id, "impression", impression_text, data=update_data)
|
await person_info_manager.update_one_field(
|
||||||
logger.info(f"已将完整人设更新到bot的impression中")
|
self.bot_person_id, "impression", impression_text, data=update_data
|
||||||
|
)
|
||||||
|
logger.info("已将完整人设更新到bot的impression中")
|
||||||
|
|
||||||
await self.express_style.extract_and_store_personality_expressions()
|
await self.express_style.extract_and_store_personality_expressions()
|
||||||
|
|
||||||
@@ -255,30 +253,32 @@ class Individuality:
|
|||||||
return self.personality.neuroticism
|
return self.personality.neuroticism
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def _get_config_hash(self, bot_nickname: str, personality_core: str, personality_sides: list, identity_detail: list) -> str:
|
def _get_config_hash(
|
||||||
|
self, bot_nickname: str, personality_core: str, personality_sides: list, identity_detail: list
|
||||||
|
) -> str:
|
||||||
"""获取当前personality和identity配置的哈希值"""
|
"""获取当前personality和identity配置的哈希值"""
|
||||||
config_data = {
|
config_data = {
|
||||||
"nickname": bot_nickname,
|
"nickname": bot_nickname,
|
||||||
"personality_core": personality_core,
|
"personality_core": personality_core,
|
||||||
"personality_sides": sorted(personality_sides),
|
"personality_sides": sorted(personality_sides),
|
||||||
"identity_detail": sorted(identity_detail)
|
"identity_detail": sorted(identity_detail),
|
||||||
}
|
}
|
||||||
config_str = json.dumps(config_data, sort_keys=True)
|
config_str = json.dumps(config_data, sort_keys=True)
|
||||||
return hashlib.md5(config_str.encode("utf-8")).hexdigest()
|
return hashlib.md5(config_str.encode("utf-8")).hexdigest()
|
||||||
|
|
||||||
async def _check_config_and_clear_if_changed(
|
async def _check_config_and_clear_if_changed(
|
||||||
self, bot_nickname: str, personality_core: str, personality_sides: list, identity_detail: list
|
self, bot_nickname: str, personality_core: str, personality_sides: list, identity_detail: list
|
||||||
):
|
):
|
||||||
"""检查配置是否发生变化,如果变化则清空info_list"""
|
"""检查配置是否发生变化,如果变化则清空info_list"""
|
||||||
person_info_manager = get_person_info_manager()
|
person_info_manager = get_person_info_manager()
|
||||||
current_hash = self._get_config_hash(bot_nickname, personality_core, personality_sides, identity_detail)
|
current_hash = self._get_config_hash(bot_nickname, personality_core, personality_sides, identity_detail)
|
||||||
|
|
||||||
meta_info = self._load_meta_info()
|
meta_info = self._load_meta_info()
|
||||||
stored_hash = meta_info.get("config_hash")
|
stored_hash = meta_info.get("config_hash")
|
||||||
|
|
||||||
if current_hash != stored_hash:
|
if current_hash != stored_hash:
|
||||||
logger.info("检测到人格配置发生变化,将清空原有的关键词缓存。")
|
logger.info("检测到人格配置发生变化,将清空原有的关键词缓存。")
|
||||||
|
|
||||||
# 清空数据库中的info_list
|
# 清空数据库中的info_list
|
||||||
update_data = {
|
update_data = {
|
||||||
"platform": "system",
|
"platform": "system",
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ class NoReplyAction(BaseAction):
|
|||||||
# 增加连续计数
|
# 增加连续计数
|
||||||
NoReplyAction._consecutive_count += 1
|
NoReplyAction._consecutive_count += 1
|
||||||
count = NoReplyAction._consecutive_count
|
count = NoReplyAction._consecutive_count
|
||||||
|
|
||||||
reason = self.action_data.get("reason", "")
|
reason = self.action_data.get("reason", "")
|
||||||
|
|
||||||
# 计算本次等待时间
|
# 计算本次等待时间
|
||||||
@@ -155,7 +155,9 @@ class NoReplyAction(BaseAction):
|
|||||||
# 第4次及以后使用WAITING_TIME_THRESHOLD
|
# 第4次及以后使用WAITING_TIME_THRESHOLD
|
||||||
timeout = self.waiting_timeout
|
timeout = self.waiting_timeout
|
||||||
|
|
||||||
logger.info(f"{self.log_prefix} 选择不回复(第{count}次连续),等待新消息中... (超时: {timeout}秒),原因: {reason}")
|
logger.info(
|
||||||
|
f"{self.log_prefix} 选择不回复(第{count}次连续),等待新消息中... (超时: {timeout}秒),原因: {reason}"
|
||||||
|
)
|
||||||
|
|
||||||
# 等待新消息或达到时间上限
|
# 等待新消息或达到时间上限
|
||||||
result = await self.wait_for_new_message(timeout)
|
result = await self.wait_for_new_message(timeout)
|
||||||
|
|||||||
Reference in New Issue
Block a user