Update analyze_bob_hf.py
Browse files- analyze_bob_hf.py +30 -7
analyze_bob_hf.py
CHANGED
|
@@ -23,7 +23,7 @@ except Exception:
|
|
| 23 |
BASE_DIR = Path(os.environ.get("BOB_BASE_DIR", Path(__file__).parent.parent))
|
| 24 |
TRANSCRIPTIONS_DIR = Path(os.environ.get("BOB_TRANSCRIPTIONS_DIR", BASE_DIR / "output" / "transcriptions"))
|
| 25 |
OUTPUT_FILE = Path(os.environ.get("BOB_OUTPUT_FILE", BASE_DIR / "output" / "resume_bob.txt"))
|
| 26 |
-
HF_MODEL = os.environ.get("HF_MODEL", "
|
| 27 |
|
| 28 |
def load_hf_model():
|
| 29 |
"""Charge un modèle Hugging Face"""
|
|
@@ -39,10 +39,11 @@ def load_hf_model():
|
|
| 39 |
token=os.environ.get("HF_TOKEN") # Pour les modèles privés
|
| 40 |
)
|
| 41 |
|
| 42 |
-
print(f"Modèle {HF_MODEL} chargé avec succès")
|
| 43 |
return generator
|
| 44 |
except Exception as e:
|
| 45 |
-
print(f"Erreur lors du chargement du modèle Hugging Face: {e}")
|
|
|
|
| 46 |
print("Assurez-vous que le modèle est disponible et que vous avez les permissions nécessaires")
|
| 47 |
return None
|
| 48 |
|
|
@@ -462,7 +463,6 @@ def analyze_files_hf(transcriptions_dir: Path, input_dir: Path, output_file: Pat
|
|
| 462 |
log("Assurez-vous d'avoir exécuté le script de transcription d'abord")
|
| 463 |
return {"success": False, "count": 0}
|
| 464 |
|
| 465 |
-
|
| 466 |
log(f"Trouvé {len(transcription_files)} fichier(s) de transcription:")
|
| 467 |
for i, file in enumerate(transcription_files, 1):
|
| 468 |
log(f" {i}. {file.name}")
|
|
@@ -471,7 +471,20 @@ def analyze_files_hf(transcriptions_dir: Path, input_dir: Path, output_file: Pat
|
|
| 471 |
# Initialisation du modèle Hugging Face
|
| 472 |
generator = load_hf_model()
|
| 473 |
if not generator:
|
| 474 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 475 |
|
| 476 |
results = []
|
| 477 |
success_count = 0
|
|
@@ -560,5 +573,15 @@ def analyze_files_hf(transcriptions_dir: Path, input_dir: Path, output_file: Pat
|
|
| 560 |
log(f"Traceback: {traceback.format_exc()}")
|
| 561 |
return {"success": False, "error": f"Erreur d'écriture: {write_error}"}
|
| 562 |
else:
|
| 563 |
-
log("Aucune analyse réussie,
|
| 564 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
BASE_DIR = Path(os.environ.get("BOB_BASE_DIR", Path(__file__).parent.parent))
|
| 24 |
TRANSCRIPTIONS_DIR = Path(os.environ.get("BOB_TRANSCRIPTIONS_DIR", BASE_DIR / "output" / "transcriptions"))
|
| 25 |
OUTPUT_FILE = Path(os.environ.get("BOB_OUTPUT_FILE", BASE_DIR / "output" / "resume_bob.txt"))
|
| 26 |
+
HF_MODEL = os.environ.get("HF_MODEL", "facebook/opt-350m") # Modèle léger par défaut
|
| 27 |
|
| 28 |
def load_hf_model():
|
| 29 |
"""Charge un modèle Hugging Face"""
|
|
|
|
| 39 |
token=os.environ.get("HF_TOKEN") # Pour les modèles privés
|
| 40 |
)
|
| 41 |
|
| 42 |
+
print(f"✅ Modèle {HF_MODEL} chargé avec succès")
|
| 43 |
return generator
|
| 44 |
except Exception as e:
|
| 45 |
+
print(f"❌ Erreur lors du chargement du modèle Hugging Face: {e}")
|
| 46 |
+
print(f"Traceback: {traceback.format_exc()}")
|
| 47 |
print("Assurez-vous que le modèle est disponible et que vous avez les permissions nécessaires")
|
| 48 |
return None
|
| 49 |
|
|
|
|
| 463 |
log("Assurez-vous d'avoir exécuté le script de transcription d'abord")
|
| 464 |
return {"success": False, "count": 0}
|
| 465 |
|
|
|
|
| 466 |
log(f"Trouvé {len(transcription_files)} fichier(s) de transcription:")
|
| 467 |
for i, file in enumerate(transcription_files, 1):
|
| 468 |
log(f" {i}. {file.name}")
|
|
|
|
| 471 |
# Initialisation du modèle Hugging Face
|
| 472 |
generator = load_hf_model()
|
| 473 |
if not generator:
|
| 474 |
+
log("❌ Modèle Hugging Face indisponible")
|
| 475 |
+
# Créer un fichier de résultat factice pour éviter l'erreur
|
| 476 |
+
try:
|
| 477 |
+
output_file.parent.mkdir(parents=True, exist_ok=True)
|
| 478 |
+
with open(output_file, 'w', encoding='utf-8') as f:
|
| 479 |
+
f.write("# ERREUR - Modèle indisponible\n")
|
| 480 |
+
f.write("Erreur|P|MODÈLE INDISPONIBLE|000\n")
|
| 481 |
+
log(f"📄 Fichier d'erreur créé: {output_file}")
|
| 482 |
+
return {"success": False, "error": "Modèle Hugging Face indisponible", "count": 0}
|
| 483 |
+
except Exception as write_error:
|
| 484 |
+
log(f"❌ Erreur lors de la création du fichier d'erreur: {write_error}")
|
| 485 |
+
return {"success": False, "error": "Modèle Hugging Face indisponible"}
|
| 486 |
+
|
| 487 |
+
log("✅ Modèle chargé, début de l'analyse...")
|
| 488 |
|
| 489 |
results = []
|
| 490 |
success_count = 0
|
|
|
|
| 573 |
log(f"Traceback: {traceback.format_exc()}")
|
| 574 |
return {"success": False, "error": f"Erreur d'écriture: {write_error}"}
|
| 575 |
else:
|
| 576 |
+
log("⚠️ Aucune analyse réussie, création d'un fichier factice...")
|
| 577 |
+
# Créer un fichier factice pour éviter l'erreur
|
| 578 |
+
try:
|
| 579 |
+
output_file.parent.mkdir(parents=True, exist_ok=True)
|
| 580 |
+
with open(output_file, 'w', encoding='utf-8') as f:
|
| 581 |
+
f.write(f"# RÉSUMÉ DES BOB - {datetime.now().strftime('%d/%m/%Y %H:%M:%S')}\n")
|
| 582 |
+
f.write("# Aucune analyse réussie\n")
|
| 583 |
+
log(f"📄 Fichier factice créé: {output_file}")
|
| 584 |
+
return {"success": False, "count": total, "ok": 0}
|
| 585 |
+
except Exception as write_error:
|
| 586 |
+
log(f"❌ Erreur lors de la création du fichier factice: {write_error}")
|
| 587 |
+
return {"success": False, "error": f"Erreur d'écriture: {write_error}"}
|