mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-10-22 17:39:02 +00:00
Co-authored-by: qidanrui <qidanrui@gmail.com> Co-authored-by: csunny <cfqsunny@163.com> Co-authored-by: Fangyin Cheng <staneyffer@gmail.com>
34 lines
1.1 KiB
Python
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
|