Files
DB-GPT/dbgpt/agent/plugin/loader.py
明天 e11b72c724 feat(agent): Multi agents v0.1 (#1044)
Co-authored-by: qidanrui <qidanrui@gmail.com>
Co-authored-by: csunny <cfqsunny@163.com>
Co-authored-by: Fangyin Cheng <staneyffer@gmail.com>
2024-01-09 11:09:52 +08:00

34 lines
1.1 KiB
Python

import logging
from pathlib import Path
from typing import List, Optional
from .generator import PluginPromptGenerator
from .plugins_util import scan_plugins
logger = logging.getLogger(__name__)
class PluginLoader:
def load_plugins(
self, plugin_path: Optional[str], available_plugins: Optional[List[str]] = None
) -> PluginPromptGenerator:
logger.info(
f"load_plugin path:{plugin_path}, available:{available_plugins if available_plugins else ''}"
)
plugins = scan_plugins(plugin_path)
generator: PluginPromptGenerator = PluginPromptGenerator()
# load select plugin
if available_plugins and len(available_plugins) > 0:
for plugin in plugins:
if plugin._name in available_plugins:
if not plugin.can_handle_post_prompt():
continue
generator = plugin.post_prompt(generator)
else:
for plugin in plugins:
if not plugin.can_handle_post_prompt():
continue
generator = plugin.post_prompt(generator)
return generator