Merge pull request #32 from Soulter/30-personality-fix

fix: 修复人格的一些bug #30
This commit is contained in:
Soulter
2023-03-07 09:05:09 +08:00
committed by GitHub
+15 -12
View File
@@ -321,6 +321,7 @@ def get_chatGPT_response(context, request, image_mode=False):
req_list.append(request['user'])
if not image_mode:
print("[Debug] "+ str(req_list))
res, usage = chatgpt.chat(req_list)
# 处理结果文本
chatgpt_res = res.strip()
@@ -542,11 +543,11 @@ def oper_msg(message, at=False, msg_ref = None):
},
"AI": {},
'usage_tokens': 0,
'level': 'normal',
}
# ChatGPT API 回复倾向(人格)
if command_type == 1:
record_obj['user'] = 'system'
record_obj["user"]["role"] = "system"
print("[Debug] "+ str(cache_data_list))
@@ -576,7 +577,8 @@ def oper_msg(message, at=False, msg_ref = None):
while t > max_tokens:
if index >= len(cache_data_list):
break
if 'level' in cache_data_list[index] and cache_data_list[index]['level'] != 'max':
# 保留倾向(人格)信息
if 'user' in cache_data_list[index] and cache_data_list[index]['user']['role'] != 'system':
t -= int(cache_data_list[index]['single_tokens'])
del cache_data_list[index]
else:
@@ -585,12 +587,6 @@ def oper_msg(message, at=False, msg_ref = None):
session_dict[session_id] = cache_data_list
# cache_prompt = get_prompts_by_cache_list(cache_data_list)
# 人格置顶
if command_type == 1:
level = 'max'
else:
level = 'normal'
# 添加新条目进入缓存的prompt
record_obj['AI'] = {
'role': 'assistant',
@@ -601,7 +597,6 @@ def oper_msg(message, at=False, msg_ref = None):
record_obj['single_tokens'] = current_usage_tokens - int(cache_data_list[-1]['usage_tokens'])
else:
record_obj['single_tokens'] = current_usage_tokens
record_obj['level'] = level
cache_data_list.append(record_obj)
# if len(cache_data_list) > 0:
@@ -796,7 +791,8 @@ def command_oper(qq_msg, message, session_id, name, user_id, user_name, at):
if qq_msg[:6] == "/unset":
now_personality = {}
msg = "已清除人格"
session_dict[session_id] = []
msg = "已清除人格并重置历史记录。"
if qq_msg[:4] == "/set":
if len(qq_msg) == 4:
@@ -834,5 +830,12 @@ def command_oper(qq_msg, message, session_id, name, user_id, user_name, at):
go = True
type = 1
else:
msg = f"人格{ps}不存在, 请使用/set list查看人格列表"
now_personality = {
'name': '自定义人格',
'prompt': ps
}
session_dict[session_id] = []
msg = f"你的自定义人格已设置。 \n人格信息: {ps}\n请耐心等待机器人回复第一条信息。"
go = True
type = 1
return msg, go, type