From a4d73090f892ab65bc5a209e1bf0706ecdf770b9 Mon Sep 17 00:00:00 2001 From: Rock Chin <1010553892@qq.com> Date: Sat, 4 Mar 2023 10:16:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=BB=98=E8=AE=A4=E5=9C=A8=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E6=97=B6=E6=9B=B4=E6=96=B0openai=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config-template.py | 3 +++ main.py | 19 +++++++++++++++++++ pkg/utils/pkgmgr.py | 5 +++++ 3 files changed, 27 insertions(+) diff --git a/config-template.py b/config-template.py index c7a29dd3..fec0a7ef 100644 --- a/config-template.py +++ b/config-template.py @@ -194,6 +194,9 @@ rate_limit_strategy = "wait" # 若设置为空字符串,则不发送提示信息 rate_limit_drop_tip = "本分钟对话次数超过限速次数,此对话被丢弃" +# 是否在启动时进行依赖库更新 +upgrade_dependencies = True + # 是否上报统计信息 # 用于统计机器人的使用情况,不会收集任何用户信息 # 仅上报时间、字数使用量、绘图使用量,其他信息不会上报 diff --git a/main.py b/main.py index 394d5cab..b2b1ff71 100644 --- a/main.py +++ b/main.py @@ -43,6 +43,11 @@ def init_db(): database.initialize_database() +def ensure_openai(): + import pkg.utils.pkgmgr as pkgmgr + pkgmgr.run_pip(["install", "openai", "--upgrade"]) + + known_exception_caught = False log_file_name = "qchatgpt.log" @@ -333,4 +338,18 @@ if __name__ == '__main__': # # pkg.utils.configmgr.set_config_and_reload("quote_origin", False) requests.packages.urllib3.disable_warnings(InsecureRequestWarning) + + import config + # 更新openai库到最新版本 + if not hasattr(config, 'upgrade_dependencies') or config.upgrade_dependencies: + print("正在更新依赖库,请等待...") + if not hasattr(config, 'upgrade_dependencies'): + print("这个操作不是必须的,如果不想更新,请在config.py中添加upgrade_dependencies=False") + else: + print("这个操作不是必须的,如果不想更新,请在config.py中将upgrade_dependencies设置为False") + try: + ensure_openai() + except Exception as e: + print("更新openai库失败:{}, 请忽略或自行更新".format(e)) + main(True) diff --git a/pkg/utils/pkgmgr.py b/pkg/utils/pkgmgr.py index b2fb740c..010b9ca2 100644 --- a/pkg/utils/pkgmgr.py +++ b/pkg/utils/pkgmgr.py @@ -8,6 +8,11 @@ def install(package): main.reset_logging() +def run_pip(params: list): + pipmain(params) + main.reset_logging() + + def install_requirements(file): pipmain(['install', '-r', file, "--upgrade"]) main.reset_logging()