Only take subclasses of AutoGPTPluginTemplate as plugins

Co-authored-by: Nicholas Tindle <nick@ntindle.com>
Co-authored-by: Luke <2609441+lc0rp@users.noreply.github.com>
This commit is contained in:
Peter Petermann
2023-06-26 21:25:21 +02:00
committed by GitHub
parent 321edc5e3d
commit 9e99db1d3e
2 changed files with 8 additions and 3 deletions

2
.gitignore vendored
View File

@@ -31,7 +31,7 @@ __pycache__/
build/
develop-eggs/
dist/
plugins/
/plugins/
plugins_config.yaml
downloads/
eggs/

View File

@@ -259,9 +259,10 @@ def scan_plugins(config: Config, debug: bool = False) -> List[AutoGPTPluginTempl
if key.startswith("__"):
continue
a_module = getattr(zipped_module, key)
a_keys = dir(a_module)
if (
"_abc_impl" in a_keys
inspect.isclass(a_module)
and issubclass(a_module, AutoGPTPluginTemplate)
and a_module.__name__ != "AutoGPTPluginTemplate"
):
plugin_name = a_module.__name__
@@ -284,6 +285,10 @@ def scan_plugins(config: Config, debug: bool = False) -> List[AutoGPTPluginTempl
f"they are enabled in plugins_config.yaml. Zipped plugins should use the class "
f"name ({plugin_name}) as the key."
)
else:
logger.debug(
f"Skipping {key}: {a_module.__name__} because it doesn't subclass AutoGPTPluginTemplate."
)
# OpenAI plugins
if config.plugins_openai: