feat:支持预设指令

This commit is contained in:
Rock Chin
2022-12-12 17:21:37 +08:00
parent ce104d15ee
commit 37a30da068
3 changed files with 14 additions and 6 deletions
+3 -1
View File
@@ -27,8 +27,10 @@ admin_qq = 0
# 请在sensitive.json中添加敏感词 # 请在sensitive.json中添加敏感词
sensitive_word_filter = True sensitive_word_filter = True
# 每个会话的预设信息 # 每个会话的预设信息,影响所有会话,无视指令重置
# 可以通过这个字段指定某些情况的回复,可直接用自然语言描述指令 # 可以通过这个字段指定某些情况的回复,可直接用自然语言描述指令
# 例如: 如果我之后想获取帮助,请你说“输入!help获取帮助”
# 可参考 https://github.com/PlexPt/awesome-chatgpt-prompts-zh
default_prompt = "" default_prompt = ""
# OpenAI的completion API的参数 # OpenAI的completion API的参数
+10 -4
View File
@@ -51,13 +51,19 @@ def dump_session(session_name: str):
del sessions[session_name] del sessions[session_name]
# 从配置文件获取会话预设信息
def get_default_prompt():
return "You:{}\nBot:好的\n".format(config.default_prompt) if hasattr(config, 'default_prompt') and \
config.default_prompt != "" else ''
# 通用的OpenAI API交互session # 通用的OpenAI API交互session
# session内部保留了对话的上下文, # session内部保留了对话的上下文,
# 收到用户消息后,将上下文提交给OpenAI API生成回复 # 收到用户消息后,将上下文提交给OpenAI API生成回复
class Session: class Session:
name = '' name = ''
prompt = '' prompt = get_default_prompt()
user_name = 'You' user_name = 'You'
bot_name = 'Bot' bot_name = 'Bot'
@@ -155,7 +161,7 @@ class Session:
# 持久化session # 持久化session
def persistence(self): def persistence(self):
if self.prompt == '': if self.prompt == get_default_prompt():
return return
db_inst = pkg.database.manager.get_inst() db_inst = pkg.database.manager.get_inst()
@@ -170,14 +176,14 @@ class Session:
# 重置session # 重置session
def reset(self, explicit: bool = False, expired: bool = False, schedule_new: bool = True): def reset(self, explicit: bool = False, expired: bool = False, schedule_new: bool = True):
if self.prompt != '': if self.prompt != get_default_prompt():
self.persistence() self.persistence()
if explicit: if explicit:
pkg.database.manager.get_inst().explicit_close_session(self.name, self.create_timestamp) pkg.database.manager.get_inst().explicit_close_session(self.name, self.create_timestamp)
if expired: if expired:
pkg.database.manager.get_inst().set_session_expired(self.name, self.create_timestamp) pkg.database.manager.get_inst().set_session_expired(self.name, self.create_timestamp)
self.prompt = '' self.prompt = get_default_prompt()
self.create_timestamp = int(time.time()) self.create_timestamp = int(time.time())
self.last_interact_timestamp = int(time.time()) self.last_interact_timestamp = int(time.time())
self.just_switched_to_exist_session = False self.just_switched_to_exist_session = False
+1 -1
View File
@@ -33,7 +33,7 @@
"中华民国", "中华民国",
"pornhub", "pornhub",
"Pornhub", "Pornhub",
"youporn", "[Yy]ou[Pp]orn",
"porn", "porn",
"Porn", "Porn",
"[Xx][Vv]ideos", "[Xx][Vv]ideos",