""" Point d'entrée principal du projet Amazon Sentiment Analysis Peut lancer soit l'interface Gradio, soit le build du DataFrame """ import sys import argparse def launch_gradio_app(): """Lance l'application Gradio""" print("🚀 Lancement de l'interface Gradio...") from app import demo demo.launch() def build_dataset(): """Construit le DataFrame complet""" print("📊 Construction du DataFrame...") from build_dataframe import build_dataframe, save_dataframe # Paramètres personnalisables n_samples = 1000 n_responses = 100 print(f"Configuration : {n_samples} avis, {n_responses} réponses générées") df = build_dataframe(n_samples=n_samples, n_negative_responses=n_responses) save_dataframe(df, "dataframe_final_amazon.csv") print("✅ DataFrame construit et sauvegardé !") def run_tests(): """Lance les tests unitaires""" print("🧪 Lancement des tests...") from test_app import run_all_tests success = run_all_tests() if success: print("✅ Tests réussis !") sys.exit(0) else: print("❌ Tests échoués") sys.exit(1) def main(): """Point d'entrée principal avec options en ligne de commande""" parser = argparse.ArgumentParser( description="Amazon Sentiment Analysis - Projet Master IA" ) parser.add_argument( "mode", choices=["app", "build", "test"], help="Mode d'exécution : app (Gradio), build (DataFrame), test (tests)" ) args = parser.parse_args() print("=" * 80) print("🛍️ AMAZON SENTIMENT ANALYSIS") print("Projet Master AI Project Management - Coralie") print("=" * 80) print() if args.mode == "app": launch_gradio_app() elif args.mode == "build": build_dataset() elif args.mode == "test": run_tests() if __name__ == "__main__": # Si appelé sans arguments, lance l'app Gradio par défaut if len(sys.argv) == 1: print("ℹ️ Aucun argument fourni, lancement de l'app Gradio...") print(" Usage: python main.py [app|build|test]") print() launch_gradio_app() else: main()