feat: 增加prompt模版功能

This commit is contained in:
tcmofashi
2025-04-11 19:59:33 +08:00
parent 9aacbd55cb
commit b31bc19148
4 changed files with 408 additions and 101 deletions

View File

@@ -4,6 +4,7 @@ from src.plugins.moods.moods import MoodManager
from src.plugins.models.utils_model import LLM_request
from src.plugins.config.config import global_config
from src.plugins.schedule.schedule_generator import bot_schedule
from src.plugins.utils.prompt_builder import Prompt, global_prompt_manager
import asyncio
from src.common.logger import get_module_logger, LogConfig, HEARTFLOW_STYLE_CONFIG # noqa: E402
from src.individuality.individuality import Individuality
@@ -19,6 +20,27 @@ heartflow_config = LogConfig(
logger = get_module_logger("heartflow", config=heartflow_config)
def init_prompt():
prompt = ""
prompt += "你刚刚在做的事情是:{schedule_info}\n"
prompt += "{personality_info}\n"
prompt += "你想起来{related_memory_info}"
prompt += "刚刚你的主要想法是{current_thinking_info}"
prompt += "你还有一些小想法,因为你在参加不同的群聊天,这是你正在做的事情:{sub_flows_info}\n"
prompt += "你现在{mood_info}"
prompt += "现在你接下去继续思考,产生新的想法,但是要基于原有的主要想法,不要分点输出,"
prompt += "输出连贯的内心独白,不要太长,但是记得结合上述的消息,关注新内容:"
Prompt(prompt, "thinking_prompt")
prompt = ""
prompt += "{personality_info}\n"
prompt += "现在{bot_name}的想法是:{current_mind}\n"
prompt += "现在{bot_name}在qq群里进行聊天聊天的话题如下{minds_str}\n"
prompt += "你现在{mood_info}\n"
prompt += """现在请你总结这些聊天内容,注意关注聊天内容对原有的想法的影响,输出连贯的内心独白
不要太长,但是记得结合上述的消息,要记得你的人设,关注新内容:"""
Prompt(prompt, "mind_summary_prompt")
class CurrentState:
def __init__(self):
self.willing = 0
@@ -111,15 +133,18 @@ class Heartflow:
schedule_info = bot_schedule.get_current_num_task(num=4, time_info=True)
prompt = ""
prompt += f"你刚刚在做的事情是:{schedule_info}\n"
prompt += f"{personality_info}\n"
prompt += f"你想起来{related_memory_info}"
prompt += f"刚刚你的主要想法是{current_thinking_info}"
prompt += f"你还有一些小想法,因为你在参加不同的群聊天,这是你正在做的事情:{sub_flows_info}\n"
prompt += f"你现在{mood_info}"
prompt += "现在你接下去继续思考,产生新的想法,但是要基于原有的主要想法,不要分点输出,"
prompt += "输出连贯的内心独白,不要太长,但是记得结合上述的消息,关注新内容:"
# prompt = ""
# prompt += f"你刚刚在做的事情是:{schedule_info}\n"
# prompt += f"{personality_info}\n"
# prompt += f"你想起来{related_memory_info}。"
# prompt += f"刚刚你的主要想法是{current_thinking_info}。"
# prompt += f"你还有一些小想法,因为你在参加不同的群聊天,这是你正在做的事情:{sub_flows_info}\n"
# prompt += f"你现在{mood_info}。"
# prompt += "现在你接下去继续思考,产生新的想法,但是要基于原有的主要想法,不要分点输出,"
# prompt += "输出连贯的内心独白,不要太长,但是记得结合上述的消息,关注新内容:"
prompt = global_prompt_manager.get_prompt("thinking_prompt").format(
schedule_info, personality_info, related_memory_info, current_thinking_info, sub_flows_info, mood_info
)
try:
response, reasoning_content = await self.llm_model.generate_response_async(prompt)
@@ -167,13 +192,16 @@ class Heartflow:
personality_info = prompt_personality
mood_info = self.current_state.mood
prompt = ""
prompt += f"{personality_info}\n"
prompt += f"现在{global_config.BOT_NICKNAME}的想法是:{self.current_mind}\n"
prompt += f"现在{global_config.BOT_NICKNAME}在qq群里进行聊天聊天的话题如下{minds_str}\n"
prompt += f"你现在{mood_info}\n"
prompt += """现在请你总结这些聊天内容,注意关注聊天内容对原有的想法的影响,输出连贯的内心独白
不要太长,但是记得结合上述的消息,要记得你的人设,关注新内容:"""
# prompt = ""
# prompt += f"{personality_info}\n"
# prompt += f"现在{global_config.BOT_NICKNAME}的想法是:{self.current_mind}\n"
# prompt += f"现在{global_config.BOT_NICKNAME}在qq群里进行聊天聊天的话题如下{minds_str}\n"
# prompt += f"你现在{mood_info}\n"
# prompt += """现在请你总结这些聊天内容,注意关注聊天内容对原有的想法的影响,输出连贯的内心独白
# 不要太长,但是记得结合上述的消息,要记得你的人设,关注新内容:"""
prompt = global_prompt_manager.get_prompt("mind_summary_prompt").format(
personality_info, global_config.BOT_NICKNAME, self.current_mind, minds_str, mood_info
)
response, reasoning_content = await self.llm_model.generate_response_async(prompt)
@@ -213,5 +241,6 @@ class Heartflow:
return self._subheartflows.get(observe_chat_id)
init_prompt()
# 创建一个全局的管理器实例
heartflow = Heartflow()