File size: 1,833 Bytes
ca1537a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e793e2c
ca1537a
3ffd24b
ca1537a
 
947d949
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

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
with gr.Blocks(theme=gr.themes.Soft(primary_hue="blue", secondary_hue="yellow")) as demo:
    gr.Markdown("# 🎓 EduPilot - Chatbot d'Orientation IA")
    gr.Markdown("👋 Bonjour ! Je suis **EduPilot**, ton conseiller IA.\n\nPose-moi une question sur ton avenir scolaire, les filières, les écoles ou les métiers qui t'intéressent.")

    chatbot = gr.Chatbot(label="Conseiller IA")
    msg = gr.Textbox(placeholder="Exemple : Que faire après un bac pro ?", show_label=False)

    def respond(user_message, history):
        context = query_index(user_message, index, documents, embedder)
        cleaned = nettoyer_context("\n".join(context))
        answer = generate_answer(user_message, cleaned)
        return "", history + [[user_message, answer]]

    msg.submit(respond, [msg, chatbot], [msg, chatbot])

demo.launch()