From bbecabb303c2e244e42fb4fa33cc5561bdc04742 Mon Sep 17 00:00:00 2001 From: Soulter <37870767+Soulter@users.noreply.github.com> Date: Mon, 12 Dec 2022 09:48:12 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=94=B9=E5=96=84=E7=A8=B3=E5=AE=9A?= =?UTF-8?q?=E6=80=A7=20feat:=20=E6=9F=A5=E7=9C=8B=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cores/qqbot/core.py | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/cores/qqbot/core.py b/cores/qqbot/core.py index ffd88955..0cccdd8b 100644 --- a/cores/qqbot/core.py +++ b/cores/qqbot/core.py @@ -12,6 +12,15 @@ chatgpt = "" # db = "" session_dict = {} max_tokens = 2000 +version = "1.3" +gpt_config = { + 'engine': '', + 'temperature': '', + 'top_p': '', + 'frequency_penalty': '', + 'presence_penalty': '', + 'max_tokens': '', +} class botClient(botpy.Client): async def on_at_message_create(self, message: Message): @@ -27,6 +36,9 @@ def initBot(chatgpt_inst): # db = db_inst global max_tokens max_tokens = int(chatgpt_inst.getConfigs()['total_tokens_limit']) + global gpt_config + gpt_config = chatgpt_inst.getConfigs() + gpt_config['key'] = "***" with open("./configs/config.yaml", 'r', encoding='utf-8') as ymlfile: cfg = yaml.safe_load(ymlfile) if cfg['qqbot']['appid'] != '' or cfg['qqbot']['token'] != '': @@ -102,11 +114,21 @@ async def oper_msg(message, at=False): l = session_dict[session_id] max_page = len(l)//size_per_page + 1 if len(l)%size_per_page != 0 else len(l)//size_per_page p = get_prompts_by_cache_list(session_dict[session_id], divide=True, paging=True, size=size_per_page, page=page) - await message.reply(content=f"{message.member.nick} 的历史记录如下:\n{p}\n第{page}页 | 共{max_page}页") + await message.reply(content=f"{message.member.nick} 的历史记录如下:\n{p}\n第{page}页 | 共{max_page}页\n*输入/his 2跳转到第2页") return if qq_msg == "/token": await message.reply(content=f"{message.member.nick} 会话的token数: {get_user_usage_tokens(session_dict[session_id])}\n系统最大缓存token数: {max_tokens}") return + if qq_msg == "/status": + chatgpt_cfg_str = "" + for k, v in gpt_config.items(): + if k == "key": + v = "***" + chatgpt_cfg_str += f"{k}: {v}" + + await message.reply(content=f"ChatGPT配置:\n - {chatgpt_cfg_str}\n QQChannelChatGPT 版本: {version}") + return + if session_id not in session_dict: session_dict[session_id] = [] @@ -129,7 +151,7 @@ async def oper_msg(message, at=False): chatgpt_res, current_usage_tokens = await get_chatGPT_response(cache_prompt) except (BaseException) as e: print("OpenAI API错误:(") - await message.reply(content=f"OpenAI API错误:( 原因如下:\n{str(e)}") + await message.reply(content=f"OpenAI API错误:( 原因如下:\n{str(e)} \n*可前往github . com/Soulter/QQChannelChatGPT进行反馈") # 超过指定tokens, 尽可能的保留最多的条目,直到小于max_tokens # print("current_usage_tokens: ", current_usage_tokens) @@ -185,7 +207,7 @@ async def oper_msg(message, at=False): try: await message.reply(content=f"[ChatGPT]{chatgpt_res}") except BaseException as e: - print("QQ频道API错误:\n"+str(e)) + print("QQ频道API错误: \n"+str(e)) f_res = "" for t in chatgpt_res: f_res += t + ' '