Classifier Discovery Service
Discovers classifiers from registry and local filesystem.
Discovers available classifiers from the local filesystem (assets/models/). Models are baked into the Docker image at build time from the GitLab Model Registry — no runtime registry access is needed.
- Usage:
from ai4drpm.services.shared.classifier_discovery import get_classifier_discovery_service
service = get_classifier_discovery_service()
# List all available classifiers classifiers = service.discover_all()
# Check if a specific classifier exists if service.exists(“data_classifier”):
info = service.get(“data_classifier”)
A classifier discovered from the local filesystem.
Classifier name (e.g., “data_classifier”)
Discovery source - always “local”
Always None (version info not available from filesystem)
Discovers available classifiers from the local filesystem.
Scans assets/models/ for model files. Models are baked into the Docker image at build time from the GitLab Model Registry.
Supports two directory layouts: 1. Subdirectory: {model_dir}/{name}/model.joblib + vectorizer.joblib 2. Flat (legacy): {model_dir}/{name}_model.joblib + {name}_vectorizer.joblib
Initialize the discovery service.
- Parameters:
model_dir (
str) – Directory containing local model files (default: assets/models)
List all available classifiers from the local filesystem.
- Return type:
- Returns:
List of DiscoveredClassifier objects sorted by name
Check if a classifier exists locally.
Get a single classifier’s discovery info.
- Parameters:
classifier_name (
str) – Name of the classifier to look up- Return type:
- Returns:
DiscoveredClassifier if found, None otherwise
Get or create the classifier discovery service singleton.
- Return type:
- Returns:
ClassifierDiscoveryService instance (same instance on repeated calls)
Reset the discovery service singleton (for testing).
Forces re-initialization on next get_classifier_discovery_service() call.
- Return type: