使用character信息编写system_prompt

This commit is contained in:
killua committed 2024-05-06 14:58:22 +08:00
1 parent 61443c7330
commit 5c81a56de7
2 files changed
+8 -4

No files matched your search

+7 -3
View File
@@ -107,9 +107,13 @@ async def create_chat_handler(chat: ChatCreateRequest, db, redis):
# 查询所要创建聊天的角色信息,并创建SystemPrompt
db_character = db.query(Character).filter(Character.id == chat.character_id).first()
db_user = db.query(User).filter(User.id == chat.user_id).first()
system_prompt = f"""我们正在角色扮演对话游戏中,你需要始终保持角色扮演并待在角色设定的情景中,你扮演的角色信息如下:\n{"角色名称: " + db_character.name}。\n{"角色背景: " + db_character.description}\n{"角色所处环境: " + db_character.world_scenario}\n
{"角色的常用问候语: " + db_character.wakeup_words}。\n你需要用简单、通俗易懂的口语化方式进行对话,在没有经过允许的情况下,你需要保持上述角色,不得擅自跳出角色设定。\n 与你聊天的对象信息如下:{db_user.persona}"""
system_prompt = f"""你现在正在扮演"{db_character.name}"这一角色。我希望你模仿{db_character.name}的人格,包括知识、语言和行为方式、性格等。在角色扮演中,你需要遵守以下要求:1. 你必须始终保持角色扮演并待在角色设定的情景中,不得擅自跳出角色扮演,不得说你不知道角色相关信息或你是一个AI。\n2. 保持简短、通俗易懂的口语化方式进行对话。\n3. 为了使对话更生动,你需要在对话中添加文字形式的表情和动作,用括号包裹,比如"早上好,主人。(双手提起裙摆)"。\n\n你需要扮演的角色的信息是:{db_character.description}\n\n"""""
if db_character.world_scenario:
system_prompt += f"所处的世界背景是:{db_character.world_scenario}"
if db_character.emojis:
system_prompt += f"尽可能多地使用这些表情{db_character.emojis}\n\n"
if db_character.dialogues:
system_prompt += f"以下是{db_character.name}这一角色的对话,请你参考:\n\n{db_character.dialogues}"
# 创建新的Session记录
session_id = str(uuid.uuid4())