diff --git a/app/controllers/chat_controller.py b/app/controllers/chat_controller.py index 4e9d272..8f8c8f5 100644 --- a/app/controllers/chat_controller.py +++ b/app/controllers/chat_controller.py @@ -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()) diff --git a/config/development.py b/config/development.py index 0cc96eb..01c9dc3 100644 --- a/config/development.py +++ b/config/development.py @@ -5,7 +5,7 @@ class DevelopmentConfig: class UVICORN: HOST = "0.0.0.0" #uvicorn放行ip,0.0.0.0代表所有ip PORT = 7878 #uvicorn运行端口 - WORKERS = 24 #uvicorn进程数(通常与cpu核数相同) + WORKERS = 12 #uvicorn进程数(通常与cpu核数相同) class XF_ASR: APP_ID = "your_app_id" #讯飞语音识别APP_ID API_SECRET = "your_api_secret" #讯飞语音识别API_SECRET