#!/bin/bash
# Script de vérification de l'intégration du système d'embeddings

echo "============================================================"
echo "VÉRIFICATION DE L'INTÉGRATION DU SYSTÈME D'EMBEDDINGS"
echo "============================================================"
echo ""

# Couleurs
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

# Fonction de vérification
check() {
    if [ $? -eq 0 ]; then
        echo -e "${GREEN}✓${NC} $1"
        return 0
    else
        echo -e "${RED}✗${NC} $1"
        return 1
    fi
}

# 1. Vérifier que FAISS est installé
echo "1. Vérification de FAISS..."
geniusia2/venv/bin/python -c "import faiss; print(f'   Version: {faiss.__version__}')" 2>/dev/null
check "FAISS installé"
echo ""

# 2. Vérifier que les modules d'embeddings sont importables
echo "2. Vérification des modules d'embeddings..."
geniusia2/venv/bin/python -c "from geniusia2.core.embedders import EmbeddingManager, FAISSIndex, LightweightFineTuner" 2>/dev/null
check "Modules d'embeddings importables"
echo ""

# 3. Vérifier que l'orchestrator importe correctement
echo "3. Vérification de l'orchestrator..."
geniusia2/venv/bin/python -c "from geniusia2.core.orchestrator import Orchestrator" 2>/dev/null
check "Orchestrator importable"
echo ""

# 4. Lancer les tests d'intégration
echo "4. Lancement des tests d'intégration..."
geniusia2/venv/bin/python test_embedding_integration.py > /tmp/embedding_test.log 2>&1
if [ $? -eq 0 ]; then
    echo -e "${GREEN}✓${NC} Tests d'intégration réussis"
    
    # Afficher un résumé
    echo ""
    echo "   Résumé des tests:"
    grep "✅" /tmp/embedding_test.log | head -7 | sed 's/^/   /'
else
    echo -e "${RED}✗${NC} Tests d'intégration échoués"
    echo ""
    echo "   Voir les détails dans /tmp/embedding_test.log"
    tail -20 /tmp/embedding_test.log | sed 's/^/   /'
fi
echo ""

# 5. Vérifier les fichiers créés
echo "5. Vérification des fichiers créés..."
if [ -f "data/workflow_embeddings.index" ]; then
    echo -e "${GREEN}✓${NC} Index FAISS créé"
    ls -lh data/workflow_embeddings.* | sed 's/^/   /'
else
    echo -e "${YELLOW}⚠${NC} Index FAISS non créé (normal si premier lancement)"
fi
echo ""

if [ -f "data/fine_tuning/orchestrator_finetuning.pkl" ]; then
    echo -e "${GREEN}✓${NC} Checkpoint fine-tuner créé"
    ls -lh data/fine_tuning/orchestrator_finetuning.pkl | sed 's/^/   /'
else
    echo -e "${YELLOW}⚠${NC} Checkpoint non créé (normal si premier lancement)"
fi
echo ""

# 6. Vérifier la documentation
echo "6. Vérification de la documentation..."
docs=("EMBEDDING_SYSTEM_README.md" "EMBEDDING_SYSTEM_INTEGRATION_GUIDE.md" "EMBEDDING_SYSTEM_INTEGRATED.md")
for doc in "${docs[@]}"; do
    if [ -f "$doc" ]; then
        echo -e "${GREEN}✓${NC} $doc"
    else
        echo -e "${RED}✗${NC} $doc manquant"
    fi
done
echo ""

# Résumé final
echo "============================================================"
echo "RÉSUMÉ"
echo "============================================================"
echo ""
echo -e "${GREEN}✅ Le système d'embeddings est intégré et fonctionnel${NC}"
echo ""
echo "Prochaines étapes:"
echo "  1. Lancer l'application en mode Assist"
echo "  2. Accepter/rejeter des suggestions pour collecter des exemples"
echo "  3. Observer le fine-tuning automatique après 10 exemples"
echo "  4. Vérifier les logs pour les métriques"
echo ""
echo "Documentation:"
echo "  - EMBEDDING_SYSTEM_README.md - Documentation complète"
echo "  - EMBEDDING_SYSTEM_INTEGRATION_GUIDE.md - Guide d'intégration"
echo "  - EMBEDDING_SYSTEM_INTEGRATED.md - Résumé de l'intégration"
echo ""
