复活推理的关系系统
This commit is contained in:
@@ -16,6 +16,7 @@ from ...willing.willing_manager import willing_manager
|
|||||||
from ...message import UserInfo, Seg
|
from ...message import UserInfo, Seg
|
||||||
from src.common.logger import get_module_logger, CHAT_STYLE_CONFIG, LogConfig
|
from src.common.logger import get_module_logger, CHAT_STYLE_CONFIG, LogConfig
|
||||||
from ...chat.chat_stream import chat_manager
|
from ...chat.chat_stream import chat_manager
|
||||||
|
from ...person_info.relationship_manager import relationship_manager
|
||||||
|
|
||||||
# 定义日志配置
|
# 定义日志配置
|
||||||
chat_config = LogConfig(
|
chat_config = LogConfig(
|
||||||
@@ -123,6 +124,15 @@ class ReasoningChat:
|
|||||||
)
|
)
|
||||||
message_manager.add_message(bot_message)
|
message_manager.add_message(bot_message)
|
||||||
|
|
||||||
|
async def _update_relationship(self, message, response_set):
|
||||||
|
"""更新关系情绪"""
|
||||||
|
ori_response = ",".join(response_set)
|
||||||
|
stance, emotion = await self.gpt._get_emotion_tags(ori_response, message.processed_plain_text)
|
||||||
|
await relationship_manager.calculate_update_relationship_value(
|
||||||
|
chat_stream=message.chat_stream, label=emotion, stance=stance
|
||||||
|
)
|
||||||
|
self.mood_manager.update_mood_from_emotion(emotion, global_config.mood_intensity_factor)
|
||||||
|
|
||||||
async def process_message(self, message_data: str) -> None:
|
async def process_message(self, message_data: str) -> None:
|
||||||
"""处理消息并生成回复"""
|
"""处理消息并生成回复"""
|
||||||
timing_results = {}
|
timing_results = {}
|
||||||
@@ -231,6 +241,12 @@ class ReasoningChat:
|
|||||||
timer2 = time.time()
|
timer2 = time.time()
|
||||||
timing_results["处理表情包"] = timer2 - timer1
|
timing_results["处理表情包"] = timer2 - timer1
|
||||||
|
|
||||||
|
# 更新关系情绪
|
||||||
|
timer1 = time.time()
|
||||||
|
await self._update_relationship(message, response_set)
|
||||||
|
timer2 = time.time()
|
||||||
|
timing_results["更新关系情绪"] = timer2 - timer1
|
||||||
|
|
||||||
# 输出性能计时结果
|
# 输出性能计时结果
|
||||||
if do_reply:
|
if do_reply:
|
||||||
timing_str = " | ".join([f"{step}: {duration:.2f}秒" for step, duration in timing_results.items()])
|
timing_str = " | ".join([f"{step}: {duration:.2f}秒" for step, duration in timing_results.items()])
|
||||||
|
|||||||
@@ -7,9 +7,10 @@ from ...memory_system.Hippocampus import HippocampusManager
|
|||||||
from ...moods.moods import MoodManager
|
from ...moods.moods import MoodManager
|
||||||
from ...schedule.schedule_generator import bot_schedule
|
from ...schedule.schedule_generator import bot_schedule
|
||||||
from ...config.config import global_config
|
from ...config.config import global_config
|
||||||
from ...chat.utils import get_embedding, get_recent_group_detailed_plain_text
|
from ...chat.utils import get_embedding, get_recent_group_detailed_plain_text, get_recent_group_speaker
|
||||||
from ...chat.chat_stream import chat_manager
|
from ...chat.chat_stream import chat_manager
|
||||||
from src.common.logger import get_module_logger
|
from src.common.logger import get_module_logger
|
||||||
|
from ...person_info.relationship_manager import relationship_manager
|
||||||
|
|
||||||
logger = get_module_logger("prompt")
|
logger = get_module_logger("prompt")
|
||||||
|
|
||||||
@@ -25,6 +26,25 @@ class PromptBuilder:
|
|||||||
|
|
||||||
# 开始构建prompt
|
# 开始构建prompt
|
||||||
|
|
||||||
|
# 关系
|
||||||
|
who_chat_in_group = [(chat_stream.user_info.platform,
|
||||||
|
chat_stream.user_info.user_id,
|
||||||
|
chat_stream.user_info.user_nickname)]
|
||||||
|
who_chat_in_group += get_recent_group_speaker(
|
||||||
|
stream_id,
|
||||||
|
(chat_stream.user_info.platform, chat_stream.user_info.user_id),
|
||||||
|
limit=global_config.MAX_CONTEXT_SIZE,
|
||||||
|
)
|
||||||
|
|
||||||
|
relation_prompt = ""
|
||||||
|
for person in who_chat_in_group:
|
||||||
|
relation_prompt += await relationship_manager.build_relationship_info(person)
|
||||||
|
|
||||||
|
relation_prompt_all = (
|
||||||
|
f"{relation_prompt}关系等级越大,关系越好,请分析聊天记录,"
|
||||||
|
f"根据你和说话者{sender_name}的关系和态度进行回复,明确你的立场和情感。"
|
||||||
|
)
|
||||||
|
|
||||||
# 心情
|
# 心情
|
||||||
mood_manager = MoodManager.get_instance()
|
mood_manager = MoodManager.get_instance()
|
||||||
mood_prompt = mood_manager.get_prompt()
|
mood_prompt = mood_manager.get_prompt()
|
||||||
@@ -127,7 +147,7 @@ class PromptBuilder:
|
|||||||
{schedule_prompt}
|
{schedule_prompt}
|
||||||
{chat_target}
|
{chat_target}
|
||||||
{chat_talking_prompt}
|
{chat_talking_prompt}
|
||||||
现在"{sender_name}"说的:{message_txt}。引起了你的注意,你想要在群里发言发言或者回复这条消息。\n
|
现在"{sender_name}"说的:{message_txt}。引起了你的注意,你想要在群里发言发言或者回复这条消息。{relation_prompt_all}\n
|
||||||
你的网名叫{global_config.BOT_NICKNAME},有人也叫你{"/".join(global_config.BOT_ALIAS_NAMES)},{prompt_personality}。
|
你的网名叫{global_config.BOT_NICKNAME},有人也叫你{"/".join(global_config.BOT_ALIAS_NAMES)},{prompt_personality}。
|
||||||
你正在{chat_target_2},现在请你读读之前的聊天记录,{mood_prompt},然后给出日常且口语化的回复,平淡一些,
|
你正在{chat_target_2},现在请你读读之前的聊天记录,{mood_prompt},然后给出日常且口语化的回复,平淡一些,
|
||||||
尽量简短一些。{keywords_reaction_prompt}请注意把握聊天内容,不要回复的太有条理,可以有个性。{prompt_ger}
|
尽量简短一些。{keywords_reaction_prompt}请注意把握聊天内容,不要回复的太有条理,可以有个性。{prompt_ger}
|
||||||
|
|||||||
Reference in New Issue
Block a user