Akbub's picture
deploy: Nexus AI v0.2.0 - SAP C4C Lead Creation UI included in fresh frontend build
d1f3f31
Raw
History Blame Contribute Delete
3.23 kB
import sys
from pathlib import Path
def test_imports():
print("1. Checking Python library imports...")
required_packages = [
("fastapi", "fastapi"),
("uvicorn", "uvicorn"),
("spacy", "spacy"),
("whisper", "openai-whisper"),
("pandas", "pandas"),
("numpy", "numpy"),
("torch", "torch"),
("sklearn", "scikit-learn"),
("xgboost", "xgboost"),
("joblib", "joblib"),
("websockets", "websockets")
]
missing = []
for module_name, pkg_name in required_packages:
try:
__import__(module_name)
print(f" [PASS] {pkg_name} imported successfully")
except ImportError:
print(f" [FAIL] {pkg_name} is missing!")
missing.append(pkg_name)
if missing:
raise ImportError(f"Missing required packages: {', '.join(missing)}")
def test_spacy():
print("\n2. Checking spaCy model loading...")
import spacy
try:
nlp = spacy.load("en_core_web_sm")
doc = nlp("Check if NLP extraction pipeline runs correctly.")
print(f" [PASS] spaCy model 'en_core_web_sm' loaded. Parsed tokens: {[token.text for token in doc]}")
except Exception as e:
print(f" [FAIL] Failed to load spaCy model: {e}")
raise e
def test_models():
print("\n3. Checking pre-trained conversion models...")
root = Path(__file__).resolve().parent
model_path = root / "models" / "sales_conversion_model.pkl"
features_path = root / "models" / "sales_conversion_features.pkl"
metrics_path = root / "models" / "sales_conversion_metrics.json"
lead_model_path = root / "data" / "processed" / "lead_scoring_model.joblib"
paths = [
("Sales Conversion Model", model_path),
("Sales Conversion Features", features_path),
("Sales Conversion Metrics", metrics_path),
("Lead Scoring Model", lead_model_path)
]
missing_files = []
for name, path in paths:
if path.exists():
print(f" [PASS] {name} exists at {path.name} ({path.stat().st_size} bytes)")
else:
print(f" [FAIL] {name} is missing at {path}")
missing_files.append(path.name)
if missing_files:
raise FileNotFoundError(f"Missing model files: {', '.join(missing_files)}")
import joblib
try:
model = joblib.load(model_path)
features = joblib.load(features_path)
print(" [PASS] Successfully loaded XGBoost and Features metadata using joblib")
except Exception as e:
print(f" [FAIL] Failed to load model files: {e}")
raise e
if __name__ == "__main__":
print("==================================================")
print(" Speech Intelligence and Intent Detection - System Integrity Verification Test ")
print("==================================================")
try:
test_imports()
test_spacy()
test_models()
print("\nSUCCESS: All backend system checks passed!")
sys.exit(0)
except Exception as e:
print(f"\nFAILURE: System validation failed! Error details:")
print(f" {e}")
sys.exit(1)