From e2bd612b8e4f1ebfd965fba7978ea49a0944b38b Mon Sep 17 00:00:00 2001 From: Soulter <37870767+Soulter@users.noreply.github.com> Date: Wed, 19 Apr 2023 17:01:13 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E8=BD=BD=E5=85=A5=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cores/qqbot/core.py | 45 +++++++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/cores/qqbot/core.py b/cores/qqbot/core.py index 8946d9d5b..d388f0f72 100644 --- a/cores/qqbot/core.py +++ b/cores/qqbot/core.py @@ -176,27 +176,30 @@ def initBot(cfg, prov): # 语言模型提供商 if REV_CHATGPT in prov: - if 'account' in cfg['rev_ChatGPT']: - from model.provider.provider_rev_chatgpt import ProviderRevChatGPT - from model.command.command_rev_chatgpt import CommandRevChatGPT - rev_chatgpt = ProviderRevChatGPT(cfg['rev_ChatGPT']) - command_rev_chatgpt = CommandRevChatGPT(cfg['rev_ChatGPT']) - chosen_provider = REV_CHATGPT - else: - input("[System-err] 请退出本程序, 然后在配置文件中填写rev_ChatGPT相关配置") + if cfg['rev_ChatGPT']['enable']: + if 'account' in cfg['rev_ChatGPT']: + from model.provider.provider_rev_chatgpt import ProviderRevChatGPT + from model.command.command_rev_chatgpt import CommandRevChatGPT + rev_chatgpt = ProviderRevChatGPT(cfg['rev_ChatGPT']) + command_rev_chatgpt = CommandRevChatGPT(cfg['rev_ChatGPT']) + chosen_provider = REV_CHATGPT + else: + input("[System-err] 请退出本程序, 然后在配置文件中填写rev_ChatGPT相关配置") if REV_EDGEGPT in prov: - from model.provider.provider_rev_edgegpt import ProviderRevEdgeGPT - from model.command.command_rev_edgegpt import CommandRevEdgeGPT - rev_edgegpt = ProviderRevEdgeGPT() - command_rev_edgegpt = CommandRevEdgeGPT(rev_edgegpt) - chosen_provider = REV_EDGEGPT + if cfg['rev_edgegpt']['enable']: + from model.provider.provider_rev_edgegpt import ProviderRevEdgeGPT + from model.command.command_rev_edgegpt import CommandRevEdgeGPT + rev_edgegpt = ProviderRevEdgeGPT() + command_rev_edgegpt = CommandRevEdgeGPT(rev_edgegpt) + chosen_provider = REV_EDGEGPT if OPENAI_OFFICIAL in prov: - from model.provider.provider_openai_official import ProviderOpenAIOfficial - from model.command.command_openai_official import CommandOpenAIOfficial - chatgpt = ProviderOpenAIOfficial(cfg['openai']) - command_openai_official = CommandOpenAIOfficial(chatgpt) - chosen_provider = OPENAI_OFFICIAL + if cfg['openai']['key'] is not None: + from model.provider.provider_openai_official import ProviderOpenAIOfficial + from model.command.command_openai_official import CommandOpenAIOfficial + chatgpt = ProviderOpenAIOfficial(cfg['openai']) + command_openai_official = CommandOpenAIOfficial(chatgpt) + chosen_provider = OPENAI_OFFICIAL # 得到关键词 if os.path.exists("keyword.json"): @@ -265,6 +268,9 @@ def initBot(cfg, prov): print("\n[System] 如果有任何问题, 请在 https://github.com/Soulter/QQChannelChatGPT 上提交issue说明问题!或者添加QQ:905617992") print("[System] 请给 https://github.com/Soulter/QQChannelChatGPT 点个star!") + if chosen_provider is None: + print("[System-Warning] 检测到没有启动任何一个语言模型。请至少在配置文件中启用一个语言模型。") + # 得到指令设置(cmd_config.json) if os.path.exists("cmd_config.json"): with open("cmd_config.json", 'r', encoding='utf-8') as f: @@ -388,6 +394,9 @@ def oper_msg(message, group=False, msg_ref = None, platform = None): user_name = message.user_id global gocq_loop + if chosen_provider is None: + send_message(platform, message, f"没有启动任何一个语言模型。请至少在配置文件中启用一个语言模型。", msg_ref=msg_ref, gocq_loop=gocq_loop, qqchannel_bot=qqchannel_bot, gocq_bot=gocq_bot) + # 检查发言频率 if not check_frequency(user_id): qqchannel_bot.send_qq_msg(message, f'{user_name}的发言超过频率限制(╯▔皿▔)╯。\n{frequency_time}秒内只能提问{frequency_count}次。')