"""
Training script - Train the intent classification model
Run this to train/retrain the model
"""

import sys
import os

# Add parent directory to path
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))

from app.model.trainer import IntentTrainer


def main():
    print("=" * 60)
    print("🚀 PHITAGORAS AI CHATBOT - MODEL TRAINING")
    print("=" * 60)
    print()
    
    # Initialize trainer
    print("📂 Loading training configuration...")
    trainer = IntentTrainer(
        data_path='app/data/intents.json',
        model_path='app/model'
    )
    
    try:
        # Load intents
        print("📖 Loading intents data...")
        intents = trainer.load_intents()
        print(f"✓ Loaded {len(intents)} intents\n")
        
        # Train model
        print("🤖 Starting model training...")
        print("-" * 60)
        trainer.train()
        print("-" * 60)
        print()
        
        # Save model
        print("💾 Saving model artifacts...")
        trainer.save_model()
        print()
        
        # Test prediction
        print("🧪 Testing model with sample predictions...")
        print("-" * 60)
        trainer.load_model()
        
        test_queries = [
            "Apa itu sertifikasi K3?",
            "Berapa harga pelatihan?",
            "Kapan jadwal terdekat?",
            "Berapa durasi pembelajaran?",
            "Siapa instruktur yang mengajar?",
            "Apakah ada lembaga lain?"
        ]
        
        for query in test_queries:
            result = trainer.predict(query)
            print(f"Q: {query}")
            print(f"   Intent: {result['intent']}, Confidence: {result['confidence']:.2%}")
            print()
        
        print("-" * 60)
        print("✅ Training completed successfully!")
        print("=" * 60)
        return 0
        
    except Exception as e:
        print(f"❌ Training failed: {str(e)}")
        print("=" * 60)
        return 1


if __name__ == '__main__':
    exit_code = main()
    sys.exit(exit_code)
