import gradio as gr from rag_utils import load_faiss_index, get_embedding_model, query_index, nettoyer_context, generate_answer # Chargement de l'index et du modèle d'embedding index, documents = load_faiss_index() embedder = get_embedding_model() # Fonction de réponse avec gestion d'erreur def ask_edu_pilot(message, history): try: context = query_index(message, index, documents, embedder) cleaned_context = nettoyer_context("\n".join(context)) answer = generate_answer(message, cleaned_context) return answer except Exception as e: print("Erreur lors de l'appel au modèle :", e) return "😓 Le conseiller IA est temporairement indisponible. Merci de réessayer plus tard." # Message d'accueil dans le chat welcome_message = """👋 Bonjour ! Je suis **EduPilot**, ton conseiller IA. Pose-moi une question sur ton avenir scolaire, les filières, les écoles ou les métiers qui t'intéressent. 🎓""" # Interface Gradio stylisée gr.ChatInterface( fn=ask_edu_pilot, chatbot=gr.Chatbot(label="🎓 EduPilot - Conseiller IA", bubble_full_width=False, show_copy_button=True), textbox=gr.Textbox(placeholder="Exemple : Que faire après un bac pro ?", container=True, scale=7), title="🎓 EduPilot - Chatbot d'Orientation Scolaire", theme=gr.themes.Soft(primary_hue="blue", secondary_hue="yellow"), description=welcome_message, ).launch()