refactor: 使用system role置入default prompt

This commit is contained in:
RockChinQ 2023-11-14 21:06:00 +08:00
parent b68daac323
commit 9fe0ee2b77
3 changed files with 5 additions and 18 deletions

View File

@ -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 # 还可以加载文件中的预设文字使用方法请查看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_prompt = {
"default": "如果之后想获取帮助,请你说“输入!help获取帮助”", "default": "如果用户之后想获取帮助,请你说“输入!help获取帮助”",
} }
# 情景预设格式 # 情景预设格式

View File

@ -16,10 +16,6 @@ import os
# __scenario_from_files__ = {} # __scenario_from_files__ = {}
__universal_first_reply__ = "ok, I'll follow your commands."
"""通用首次回复"""
class ScenarioMode: class ScenarioMode:
"""情景预设模式抽象类""" """情景预设模式抽象类"""
@ -66,17 +62,13 @@ class NormalScenarioMode(ScenarioMode):
"""普通情景预设模式""" """普通情景预设模式"""
def __init__(self): def __init__(self):
global __universal_first_reply__
# 加载config中的default_prompt值 # 加载config中的default_prompt值
if type(config.default_prompt) == str: if type(config.default_prompt) == str:
self.using_prompt_name = "default" self.using_prompt_name = "default"
self.prompts = {"default": [ self.prompts = {"default": [
{ {
"role": "user", "role": "system",
"content": config.default_prompt "content": config.default_prompt
},{
"role": "assistant",
"content": __universal_first_reply__
} }
]} ]}
@ -84,11 +76,8 @@ class NormalScenarioMode(ScenarioMode):
for key in config.default_prompt: for key in config.default_prompt:
self.prompts[key] = [ self.prompts[key] = [
{ {
"role": "user", "role": "system",
"content": config.default_prompt[key] "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: with open(os.path.join("prompts", file), encoding="utf-8") as f:
self.prompts[file] = [ self.prompts[file] = [
{ {
"role": "user", "role": "system",
"content": f.read() "content": f.read()
},{
"role": "assistant",
"content": __universal_first_reply__
} }
] ]

View File

@ -241,6 +241,7 @@ class Session:
if event.get_return_value('text_message') is not None: if event.get_return_value('text_message') is not None:
text = event.get_return_value('text_message') text = event.get_return_value('text_message')
# 裁剪messages到合适长度
prompts, _ = self.cut_out(text, max_length, local_default_prompt, local_prompt) prompts, _ = self.cut_out(text, max_length, local_default_prompt, local_prompt)
res_text = "" res_text = ""