From 3b1a72358eeb1d85486ce477ab72cbfa1204aa4e Mon Sep 17 00:00:00 2001 From: Rock Chin <1010553892@qq.com> Date: Sun, 1 Jan 2023 22:52:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=83=AD=E6=9B=B4=E6=96=B0=E5=92=8C?= =?UTF-8?q?=E7=83=AD=E9=87=8D=E8=BD=BD=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/openai/modelmgr.py | 34 ++++++++++++++++++++++++++++++++++ pkg/utils/__init__.py | 0 pkg/utils/reloader.py | 19 +++++++++++++++++++ pkg/utils/updater.py | 7 +++++++ 4 files changed, 60 insertions(+) create mode 100644 pkg/openai/modelmgr.py create mode 100644 pkg/utils/__init__.py create mode 100644 pkg/utils/reloader.py create mode 100644 pkg/utils/updater.py diff --git a/pkg/openai/modelmgr.py b/pkg/openai/modelmgr.py new file mode 100644 index 00000000..c106824e --- /dev/null +++ b/pkg/openai/modelmgr.py @@ -0,0 +1,34 @@ +# 提供与模型交互的抽象接口 + +COMPLETION_MODELS = { + 'text-davinci-003' +} + +EDIT_MODELS = { + +} + +IMAGE_MODELS = { + +} + + +# ModelManager +# 由session包含 +class ModelMgr(object): + + using_completion_model = "" + using_edit_model = "" + using_image_model = "" + + def __init__(self): + pass + + def get_using_completion_model(self): + return self.using_completion_model + + def get_using_edit_model(self): + return self.using_edit_model + + def get_using_image_model(self): + return self.using_image_model diff --git a/pkg/utils/__init__.py b/pkg/utils/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/pkg/utils/reloader.py b/pkg/utils/reloader.py new file mode 100644 index 00000000..5cb3b16d --- /dev/null +++ b/pkg/utils/reloader.py @@ -0,0 +1,19 @@ +import logging + +import pkg +import importlib +import pkgutil + + +def walk(module, prefix=''): + for item in pkgutil.iter_modules(module.__path__): + if item.ispkg: + walk(__import__(module.__name__ + '.' + item.name, fromlist=['']), prefix + item.name + '.') + else: + logging.info('reload module: {}'.format(prefix + item.name)) + importlib.reload(__import__(module.__name__ + '.' + item.name, fromlist=[''])) + + +def reload_all(): + walk(pkg) + importlib.reload(__import__('config')) diff --git a/pkg/utils/updater.py b/pkg/utils/updater.py new file mode 100644 index 00000000..cba1d87d --- /dev/null +++ b/pkg/utils/updater.py @@ -0,0 +1,7 @@ +def update_all(): + try: + from dulwich import porcelain + repo = porcelain.open_repo('.') + porcelain.pull(repo) + except ModuleNotFoundError: + raise Exception("dulwich模块未安装,请查看 https://github.com/RockChinQ/QChatGPT/issues/77") \ No newline at end of file