pmvl-prediction-api / app /logging_utils.py
josibra's picture
Déploiement auto depuis GitHub Actions avec LFS
da4acd0
Raw
History Blame Contribute Delete
998 Bytes
import json
import uuid
import time
from datetime import datetime, timezone
from pathlib import Path
# Dossier où seront stockés les logs de production
LOG_DIR = Path("logs")
LOG_PATH = LOG_DIR / "prediction_logs.jsonl"
def log_prediction_event(inputs: dict, outputs: dict, status: str, latency_ms: float):
"""
Enregistre les détails d'une requête de prédiction dans un fichier JSONL.
Permet l'analyse ultérieure de la dérive (drift) et des performances.
"""
# Créer le dossier s'il n'existe pas
LOG_DIR.mkdir(parents=True, exist_ok=True)
# Créer l'événement structuré
event = {
"timestamp": datetime.now(timezone.utc).isoformat(),
"request_id": str(uuid.uuid4()),
"status": status,
"latency_ms": round(latency_ms, 2),
"inputs": inputs,
"outputs": outputs,
}
# Ajouter la ligne au fichier log
with LOG_PATH.open("a", encoding="utf-8") as f:
f.write(json.dumps(event) + "\n")