From 9fe0ee2b779f2b41c2e271c709a4829d0ec3f67e Mon Sep 17 00:00:00 2001 From: RockChinQ <1010553892@qq.com> Date: Tue, 14 Nov 2023 21:06:00 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BD=BF=E7=94=A8system=20role?= =?UTF-8?q?=E7=BD=AE=E5=85=A5default=20prompt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config-template.py | 2 +- pkg/openai/dprompt.py | 20 +++----------------- pkg/openai/session.py | 1 + 3 files changed, 5 insertions(+), 18 deletions(-) diff --git a/config-template.py b/config-template.py index c589222e..7ef2f784 100644 --- a/config-template.py +++ b/config-template.py @@ -114,7 +114,7 @@ admin_qq = 0 # # 还可以加载文件中的预设文字,使用方法请查看:https://github.com/RockChinQ/QChatGPT/wiki/%E5%8A%9F%E8%83%BD%E4%BD%BF%E7%94%A8#%E9%A2%84%E8%AE%BE%E6%96%87%E5%AD%97 default_prompt = { - "default": "如果我之后想获取帮助,请你说“输入!help获取帮助”", + "default": "如果用户之后想获取帮助,请你说“输入!help获取帮助”。", } # 情景预设格式 diff --git a/pkg/openai/dprompt.py b/pkg/openai/dprompt.py index adb0a4d8..ec1dbf2f 100644 --- a/pkg/openai/dprompt.py +++ b/pkg/openai/dprompt.py @@ -16,10 +16,6 @@ import os # __scenario_from_files__ = {} -__universal_first_reply__ = "ok, I'll follow your commands." -"""通用首次回复""" - - class ScenarioMode: """情景预设模式抽象类""" @@ -66,17 +62,13 @@ class NormalScenarioMode(ScenarioMode): """普通情景预设模式""" def __init__(self): - global __universal_first_reply__ # 加载config中的default_prompt值 if type(config.default_prompt) == str: self.using_prompt_name = "default" self.prompts = {"default": [ { - "role": "user", + "role": "system", "content": config.default_prompt - },{ - "role": "assistant", - "content": __universal_first_reply__ } ]} @@ -84,11 +76,8 @@ class NormalScenarioMode(ScenarioMode): for key in config.default_prompt: self.prompts[key] = [ { - "role": "user", + "role": "system", "content": config.default_prompt[key] - },{ - "role": "assistant", - "content": __universal_first_reply__ } ] @@ -98,11 +87,8 @@ class NormalScenarioMode(ScenarioMode): with open(os.path.join("prompts", file), encoding="utf-8") as f: self.prompts[file] = [ { - "role": "user", + "role": "system", "content": f.read() - },{ - "role": "assistant", - "content": __universal_first_reply__ } ] diff --git a/pkg/openai/session.py b/pkg/openai/session.py index 5c351478..498b9082 100644 --- a/pkg/openai/session.py +++ b/pkg/openai/session.py @@ -241,6 +241,7 @@ class Session: if event.get_return_value('text_message') is not None: text = event.get_return_value('text_message') + # 裁剪messages到合适长度 prompts, _ = self.cut_out(text, max_length, local_default_prompt, local_prompt) res_text = ""