Files
Geniusia_v2/archive/old_scripts/diagnostic_data.py
2026-03-05 00:20:25 +01:00

129 lines
4.1 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Script de diagnostic pour vérifier l'état des données.
"""
import sys
import pickle
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent / "geniusia2"))
def check_faiss_index():
"""Vérifie l'index FAISS."""
print("="*60)
print("📊 VÉRIFICATION INDEX FAISS")
print("="*60)
faiss_dir = Path("geniusia2/data/faiss_index")
index_file = faiss_dir / "embeddings.index"
metadata_file = faiss_dir / "metadata.pkl"
print(f"\n📁 Répertoire: {faiss_dir}")
print(f" Index FAISS: {'✅ Existe' if index_file.exists() else '❌ Manquant'}")
print(f" Métadonnées: {'✅ Existe' if metadata_file.exists() else '❌ Manquant'}")
if index_file.exists():
size = index_file.stat().st_size
print(f" Taille index: {size:,} bytes")
if metadata_file.exists():
with open(metadata_file, 'rb') as f:
metadata = pickle.load(f)
print(f" Nombre d'embeddings: {len(metadata)}")
def check_tasks():
"""Vérifie les tâches sauvegardées."""
print("\n" + "="*60)
print("📋 VÉRIFICATION TÂCHES")
print("="*60)
profiles_dir = Path("geniusia2/data/user_profiles")
task_dirs = [d for d in profiles_dir.iterdir() if d.is_dir() and d.name.startswith("task_")]
print(f"\n📁 Nombre de tâches: {len(task_dirs)}")
# Analyser quelques tâches
print("\n📝 Échantillon de tâches:")
for i, task_dir in enumerate(task_dirs[:5]):
print(f"\n{i+1}. {task_dir.name}")
# Vérifier les fichiers
metadata_file = task_dir / "metadata.json"
signatures_file = task_dir / "signatures.pkl"
screenshots_dir = task_dir / "screenshots"
print(f" metadata.json: {'' if metadata_file.exists() else ''}")
print(f" signatures.pkl: {'' if signatures_file.exists() else ''}")
print(f" screenshots/: {'' if screenshots_dir.exists() else ''}")
# Lire metadata
if metadata_file.exists():
import json
with open(metadata_file, 'r') as f:
metadata = json.load(f)
print(f" Nom: {metadata.get('task_name', 'N/A')}")
print(f" Observations: {metadata.get('observation_count', 0)}")
# Lire signatures
if signatures_file.exists():
with open(signatures_file, 'rb') as f:
signatures = pickle.load(f)
print(f" Signatures: {len(signatures)} actions")
# Vérifier si les signatures ont des embeddings
has_embeddings = any('embedding' in sig for sig in signatures)
has_screenshots = any('screenshot' in sig for sig in signatures)
print(f" Embeddings: {'' if has_embeddings else ''}")
print(f" Screenshots: {'' if has_screenshots else ''}")
def check_logs():
"""Vérifie les logs."""
print("\n" + "="*60)
print("📝 VÉRIFICATION LOGS")
print("="*60)
logs_dir = Path("geniusia2/data/logs")
log_files = list(logs_dir.glob("*.enc"))
print(f"\n📁 Nombre de fichiers de logs: {len(log_files)}")
if log_files:
total_size = sum(f.stat().st_size for f in log_files)
print(f" Taille totale: {total_size:,} bytes ({total_size/1024/1024:.2f} MB)")
print("\n📅 Logs par date:")
for log_file in sorted(log_files)[-5:]:
size = log_file.stat().st_size
print(f" {log_file.name}: {size:,} bytes")
def main():
"""Fonction principale."""
print("\n🔍 DIAGNOSTIC DES DONNÉES RPA VISION V2\n")
check_faiss_index()
check_tasks()
check_logs()
print("\n" + "="*60)
print("✅ DIAGNOSTIC TERMINÉ")
print("="*60)
print("\n💡 RÉSUMÉ:")
print(" - Les tâches sont créées et sauvegardées")
print(" - Les signatures.pkl contiennent les actions")
print(" - ⚠️ Vérifier si les embeddings et screenshots sont dans les signatures")
print(" - ⚠️ Vérifier si l'index FAISS est créé")
if __name__ == "__main__":
main()