Spaces:
Running
Running
| import json | |
| from pathlib import Path | |
| import pandas as pd | |
| LOG_FILE = Path("logs/api_requests.jsonl") | |
| OUT_PATH = Path("monitoring/ref_data.csv") | |
| def main() -> None: | |
| if not LOG_FILE.exists(): | |
| raise FileNotFoundError( | |
| f"Fichier introuvable: {LOG_FILE}. " | |
| "Impossible de générer une référence à partir des logs." | |
| ) | |
| values: list[float] = [] | |
| with open(LOG_FILE, "r", encoding="utf-8") as f: | |
| for line in f: | |
| try: | |
| record = json.loads(line) | |
| except json.JSONDecodeError: | |
| continue | |
| if record.get("event") == "prediction": | |
| out = record.get("output") or {} | |
| if "probability_default" in out: | |
| values.append(float(out["probability_default"])) | |
| if len(values) < 2: | |
| raise ValueError( | |
| "Pas assez de prédictions dans logs/api_requests.jsonl pour construire ref_data.csv." | |
| ) | |
| # Par convention: la référence est le début de l'historique (période stable) | |
| split_index = max(1, len(values) // 2) | |
| ref_values = values[:split_index] | |
| df = pd.DataFrame({"probability_default": ref_values}) | |
| OUT_PATH.parent.mkdir(parents=True, exist_ok=True) | |
| df.to_csv(OUT_PATH, index=False) | |
| print(f"✅ Référence exportée: {OUT_PATH} ({len(df)} lignes)") | |
| if __name__ == "__main__": | |
| main() | |