feat:基于不同心流单独的发送器实例,反正能跑,但我也不知道能不能跑

睡觉
This commit is contained in:
SengokuCola
2025-04-23 00:41:46 +08:00
parent bcf295905e
commit 2eecd746af
14 changed files with 568 additions and 672 deletions

View File

@@ -1,6 +1,5 @@
import random
from typing import Optional
from src.heart_flow.sub_heartflow import SubHeartflow
from ...config.config import global_config
from ..chat.chat_stream import chat_manager
from src.common.logger import get_module_logger
@@ -82,23 +81,20 @@ class PromptBuilder:
async def build_prompt(
self, build_mode,reason, message_txt: str, sender_name: str = "某人",subheartflow: SubHeartflow =None
self, build_mode,reason,current_mind_info, message_txt: str, sender_name: str = "某人",chat_stream=None
) -> tuple[str, str]:
chat_stream = chat_manager.get_stream(subheartflow.subheartflow_id)
if build_mode == "normal":
return await self._build_prompt_normal(chat_stream, message_txt, sender_name, subheartflow)
return await self._build_prompt_normal(chat_stream, message_txt, sender_name)
elif build_mode == "focus":
return await self._build_prompt_focus(reason, chat_stream, message_txt, sender_name, subheartflow)
return await self._build_prompt_focus(reason, current_mind_info, chat_stream, message_txt, sender_name)
async def _build_prompt_focus(
self, reason, chat_stream, message_txt: str, sender_name: str = "某人", subheartflow: SubHeartflow =None
self, reason, current_mind_info, chat_stream, message_txt: str, sender_name: str = "某人"
) -> tuple[str, str]:
current_mind_info = subheartflow.current_mind
individuality = Individuality.get_instance()
prompt_personality = individuality.get_prompt(type="personality", x_person=2, level=1)
@@ -107,7 +103,6 @@ class PromptBuilder:
# 日程构建
# schedule_prompt = f'''你现在正在做的事情是:{bot_schedule.get_current_num_task(num = 1,time_info = False)}'''
chat_stream = chat_manager.get_stream(subheartflow.subheartflow_id)
if chat_stream.group_info:
chat_in_group = True
else:
@@ -186,7 +181,7 @@ class PromptBuilder:
async def _build_prompt_normal(
self, chat_stream, message_txt: str, sender_name: str = "某人", subheartflow=None
self, chat_stream, message_txt: str, sender_name: str = "某人"
) -> tuple[str, str]:
# 开始构建prompt
prompt_personality = ""
@@ -209,7 +204,7 @@ class PromptBuilder:
(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(
subheartflow.subheartflow_id,
chat_stream.stream_id,
(chat_stream.user_info.platform, chat_stream.user_info.user_id),
limit=global_config.MAX_CONTEXT_SIZE,
)
@@ -249,7 +244,6 @@ class PromptBuilder:
# schedule_prompt = f"""你现在正在做的事情是:{bot_schedule.get_current_num_task(num=1, time_info=False)}"""
# 获取聊天上下文
chat_stream = chat_manager.get_stream(subheartflow.subheartflow_id)
if chat_stream.group_info:
chat_in_group = True
else: