credit-scoring-api-v2 / monitoring /profile_predict.py
perachon's picture
step 3 & 4 preload model at startup to remove cold start
b8c1afe
import sys
from pathlib import Path
# Ajouter la racine du projet au PYTHONPATH
PROJECT_ROOT = Path(__file__).resolve().parents[1]
sys.path.append(str(PROJECT_ROOT))
import cProfile
import pstats
import io
import pandas as pd
from src.model import load_model
# -----------------------------
# Charger modèle et données
# -----------------------------
model = load_model()
sample_input = {
"DAYS_BIRTH": -12000,
"DAYS_EMPLOYED": -2000,
"CODE_GENDER": "M",
"AMT_INCOME_TOTAL": 120000,
"AMT_CREDIT": 250000,
"AMT_ANNUITY": 15000,
"AMT_GOODS_PRICE": 230000,
"EXT_SOURCE_2": 0.5,
"EXT_SOURCE_3": 0.6,
"CREDIT_GOODS_RATIO": 1.1,
"DEBT_CREDIT_RATIO": 0.3,
"ANNUITY_INCOME_RATIO": 0.12,
}
X = pd.DataFrame([sample_input])
# -----------------------------
# Profiling
# -----------------------------
pr = cProfile.Profile()
pr.enable()
model.predict_proba(X)
pr.disable()
# -----------------------------
# Résultats
# -----------------------------
s = io.StringIO()
ps = pstats.Stats(pr, stream=s).sort_stats("cumulative")
ps.print_stats(15)
print(s.getvalue())