close auto load plugin

This commit is contained in:
yhjun1026 2023-06-14 21:40:08 +08:00
parent b2ec087322
commit d784e7e00a
2 changed files with 30 additions and 22 deletions

View File

@ -5,6 +5,7 @@ import os
import glob import glob
import zipfile import zipfile
import requests import requests
import threading
import datetime import datetime
from pathlib import Path from pathlib import Path
from typing import List from typing import List
@ -77,28 +78,35 @@ def load_native_plugins(cfg: Config):
if not cfg.plugins_auto_load: if not cfg.plugins_auto_load:
print("not auto load_native_plugins") print("not auto load_native_plugins")
return return
print("load_native_plugins") def load_from_git(cfg: Config):
### TODO 默认拉主分支,后续拉发布版本 print("load_native_plugins")
branch_name = cfg.plugins_git_branch ### TODO 默认拉主分支,后续拉发布版本
native_plugin_repo ="DB-GPT-Plugins" branch_name = cfg.plugins_git_branch
url = "https://github.com/csunny/{repo}/archive/{branch}.zip" native_plugin_repo = "DB-GPT-Plugins"
response = requests.get(url.format(repo=native_plugin_repo, branch=branch_name), url = "https://github.com/csunny/{repo}/archive/{branch}.zip"
headers={'Authorization': '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'}) response = requests.get(url.format(repo=native_plugin_repo, branch=branch_name),
headers={'Authorization': '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'})
if response.status_code == 200: if response.status_code == 200:
plugins_path_path = Path(PLUGINS_DIR) plugins_path_path = Path(PLUGINS_DIR)
files = glob.glob(os.path.join(plugins_path_path, f'{native_plugin_repo}*')) files = glob.glob(os.path.join(plugins_path_path, f'{native_plugin_repo}*'))
for file in files: for file in files:
os.remove(file) os.remove(file)
now = datetime.datetime.now() now = datetime.datetime.now()
time_str = now.strftime('%Y%m%d%H%M%S') time_str = now.strftime('%Y%m%d%H%M%S')
file_name = f"{plugins_path_path}/{native_plugin_repo}-{branch_name}-{time_str}.zip" file_name = f"{plugins_path_path}/{native_plugin_repo}-{branch_name}-{time_str}.zip"
print(file_name) print(file_name)
with open(file_name, "wb") as f: with open(file_name, "wb") as f:
f.write(response.content) f.write(response.content)
print("文件已保存到本地") print("文件已保存到本地")
else: cfg.set_plugins(scan_plugins(cfg, cfg.debug_mode))
print("获取Release信息失败状态码为", response.status_code) else:
print("获取Release信息失败状态码为", response.status_code)
# 创建一个线程
t = threading.Thread(target=load_from_git, args=(cfg,))
# 启动线程
t.start()
def scan_plugins(cfg: Config, debug: bool = False) -> List[AutoGPTPluginTemplate]: def scan_plugins(cfg: Config, debug: bool = False) -> List[AutoGPTPluginTemplate]:

View File

@ -90,7 +90,7 @@ class Config(metaclass=Singleton):
### The associated configuration parameters of the plug-in control the loading and use of the plug-in ### The associated configuration parameters of the plug-in control the loading and use of the plug-in
self.plugins: List[AutoGPTPluginTemplate] = [] self.plugins: List[AutoGPTPluginTemplate] = []
self.plugins_openai = [] self.plugins_openai = []
self.plugins_auto_load = os.getenv("AUTO_LOAD_PLUGIN", "False") == "True" self.plugins_auto_load = os.getenv("AUTO_LOAD_PLUGIN", "True") == "True"
self.plugins_git_branch = os.getenv("PLUGINS_GIT_BRANCH", "plugin_dashboard") self.plugins_git_branch = os.getenv("PLUGINS_GIT_BRANCH", "plugin_dashboard")