|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"""
|
|
|
Enterprise Integration Layer for OpenLLM
|
|
|
|
|
|
This module provides an optional plugin mechanism to load enterprise-only
|
|
|
modules without coupling the open source core to proprietary code. It follows
|
|
|
the project rule: core functionality must work without proprietary
|
|
|
dependencies; enterprise features are optional extensions.
|
|
|
|
|
|
How it works:
|
|
|
- Attempts to locate a Python module that exposes enterprise commands
|
|
|
- Supports two discovery methods:
|
|
|
1) Python package on sys.path: `openllm_enterprise`
|
|
|
2) Filesystem path via env var `OPENLLM_ENTERPRISE_PATH` that contains
|
|
|
a module with `register_cli(subparsers)` function
|
|
|
- If found, calls `register_cli(subparsers)` to register additional CLI commands
|
|
|
|
|
|
Security and Licensing:
|
|
|
- No proprietary code is included in the open repository
|
|
|
- This module only performs optional dynamic imports if the user provides
|
|
|
an enterprise package or path
|
|
|
- All core code remains GPLv3 compliant
|
|
|
|
|
|
Usage (enterprise side expected contract):
|
|
|
# In the enterprise package/module
|
|
|
def register_cli(subparsers):
|
|
|
parser = subparsers.add_parser(
|
|
|
"enterprise-train",
|
|
|
help="Enterprise: RLHF training",
|
|
|
description="Run RLHF training using enterprise-only components."
|
|
|
)
|
|
|
parser.add_argument("--config", required=True)
|
|
|
parser.set_defaults(func=enterprise_train_entry)
|
|
|
|
|
|
def enterprise_train_entry(args):
|
|
|
...
|
|
|
|
|
|
Author: Louis Chua Bean Chong
|
|
|
License: GPLv3 (core); enterprise modules remain out-of-tree
|
|
|
"""
|
|
|
|
|
|
from __future__ import annotations
|
|
|
|
|
|
import importlib
|
|
|
import os
|
|
|
import sys
|
|
|
from pathlib import Path
|
|
|
from typing import Any
|
|
|
|
|
|
|
|
|
def _try_import_by_name(module_name: str):
|
|
|
"""Attempt to import a module by name. Returns module or None on failure."""
|
|
|
try:
|
|
|
return importlib.import_module(module_name)
|
|
|
except Exception:
|
|
|
return None
|
|
|
|
|
|
|
|
|
def _try_import_from_path(module_path: str):
|
|
|
"""
|
|
|
Attempt to import a module from a filesystem path.
|
|
|
|
|
|
The path may point either to a package directory (containing __init__.py)
|
|
|
or to a .py file. This function prepends the parent directory to sys.path
|
|
|
and imports the module by stem name.
|
|
|
"""
|
|
|
try:
|
|
|
path = Path(module_path)
|
|
|
if not path.exists():
|
|
|
return None
|
|
|
|
|
|
if path.is_file():
|
|
|
parent = str(path.parent)
|
|
|
mod_name = path.stem
|
|
|
else:
|
|
|
parent = str(path.parent)
|
|
|
mod_name = path.name
|
|
|
|
|
|
if parent not in sys.path:
|
|
|
sys.path.insert(0, parent)
|
|
|
return importlib.import_module(mod_name)
|
|
|
except Exception:
|
|
|
return None
|
|
|
|
|
|
|
|
|
def load_enterprise_cli(subparsers: Any) -> bool:
|
|
|
"""
|
|
|
Try to load enterprise-only CLI commands.
|
|
|
|
|
|
Discovery order:
|
|
|
1) Python package/module named `openllm_enterprise`
|
|
|
2) Env var `OPENLLM_ENTERPRISE_PATH` pointing to a package dir or .py file
|
|
|
|
|
|
If a discovered module exposes `register_cli(subparsers)`, it will be called
|
|
|
to register enterprise commands. Returns True if any enterprise module was
|
|
|
loaded successfully; otherwise False.
|
|
|
"""
|
|
|
|
|
|
enterprise_mod = _try_import_by_name("openllm_enterprise")
|
|
|
if enterprise_mod and hasattr(enterprise_mod, "register_cli"):
|
|
|
try:
|
|
|
enterprise_mod.register_cli(subparsers)
|
|
|
print("๐ Loaded enterprise commands from openllm_enterprise package")
|
|
|
return True
|
|
|
except Exception as e:
|
|
|
|
|
|
print(f"Warning: Enterprise module registration failed: {e}")
|
|
|
|
|
|
|
|
|
enterprise_path = os.environ.get("OPENLLM_ENTERPRISE_PATH")
|
|
|
if enterprise_path:
|
|
|
enterprise_mod = _try_import_from_path(enterprise_path)
|
|
|
if enterprise_mod and hasattr(enterprise_mod, "register_cli"):
|
|
|
try:
|
|
|
enterprise_mod.register_cli(subparsers)
|
|
|
print(
|
|
|
"๐ Loaded enterprise commands from OPENLLM_ENTERPRISE_PATH="
|
|
|
f"{enterprise_path}"
|
|
|
)
|
|
|
return True
|
|
|
except Exception as e:
|
|
|
|
|
|
print(f"Warning: Enterprise module registration failed: {e}")
|
|
|
|
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
__all__ = ["load_enterprise_cli"]
|
|
|
|