Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion modelscope/pipelines/builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
from modelscope.utils.hub import read_config
from modelscope.utils.import_utils import is_transformers_available
from modelscope.utils.logger import get_logger
from modelscope.utils.plugins import (register_modelhub_repo,
from modelscope.utils.plugins import (filter_plugin_not_in_whitelist,
register_modelhub_repo,
register_plugins_repo)
from modelscope.utils.registry import Registry, build_from_cfg
from modelscope.utils.task_utils import is_embedding_task
Expand Down Expand Up @@ -161,6 +162,7 @@ def pipeline(task: str = None,
if cfg:
plugins = cfg.safe_get('plugins')
allow_remote = cfg.get('allow_remote', False)
plugins = filter_plugin_not_in_whitelist(plugins)
Comment thread
tastelikefeet marked this conversation as resolved.
Outdated
if (plugins or allow_remote) and not trust_remote_code:
raise RuntimeError(
'Detected plugins or allow_remote field in the model '
Expand Down
5 changes: 3 additions & 2 deletions modelscope/trainers/builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
from modelscope.metainfo import Trainers
from modelscope.pipelines.builder import normalize_model_input
from modelscope.pipelines.util import is_official_hub_path
from modelscope.utils.config import check_config
from modelscope.utils.constant import DEFAULT_MODEL_REVISION
from modelscope.utils.hub import read_config
from modelscope.utils.plugins import (register_modelhub_repo,
from modelscope.utils.plugins import (filter_plugin_not_in_whitelist,
register_modelhub_repo,
register_plugins_repo)
from modelscope.utils.registry import Registry, build_from_cfg

Expand Down Expand Up @@ -41,6 +41,7 @@ def build_trainer(name: str = Trainers.default, default_args: dict = None):
if configuration:
plugins = configuration.safe_get('plugins')
allow_remote = configuration.get('allow_remote', False)
plugins = filter_plugin_not_in_whitelist(plugins)
Comment thread
tastelikefeet marked this conversation as resolved.
Outdated
if (plugins or allow_remote) and not trust_remote_code:
raise RuntimeError(
'Detected plugins or allow_remote field in the model '
Expand Down
13 changes: 13 additions & 0 deletions modelscope/utils/plugins.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import importlib.metadata
import os
import pkgutil
import re
import shutil
import subprocess
import sys
Expand Down Expand Up @@ -46,6 +47,18 @@
LOCAL_PLUGINS_FILENAME = '.modelscope_plugins'
GLOBAL_PLUGINS_FILENAME = os.path.join(Path.home(), '.modelscope', 'plugins')
DEFAULT_PLUGINS = []
PLUGIN_WHITE_LIST = ['pai-easycv']


def filter_plugin_not_in_whitelist(plugins):
Comment thread
tastelikefeet marked this conversation as resolved.
Outdated
if not plugins:
return plugins
if isinstance(plugins, str):
plugins = [plugins]
return [
plugin for plugin in plugins if re.split(r'[><=!~]', plugin.strip())
[0].strip() not in PLUGIN_WHITE_LIST
]


@contextmanager
Expand Down
Loading