chatbot_RAG / chatbot_ui.py
mahfouz28's picture
Update chatbot_ui.py
ec317d5 verified
import streamlit as st
import requests
import time
# 🔹 Configuration de la page en mode large
st.set_page_config(page_title="Assistant UCAD (Univerté Cheikh Anta Diop de Dakar)", page_icon="💡", layout="wide")
# 🔹 Initialisation des messages
if "messages" not in st.session_state:
st.session_state.messages = [
{"role": "bot", "content": "Bonjour, je suis l'assistant UCAD ! Comment puis-je vous aider ? 😊"}
]
# 🔹 Affichage des messages dans un conteneur
st.header("Assistant UCAD (Univerté Cheikh Anta Diop de Dakar)")
for msg in st.session_state.messages:
role_prefix = "🤖 Assistant UCAD" if msg["role"] == "bot" else "👤 Vous"
st.markdown(f"**{role_prefix}** : {msg['content']}")
# 🔹 Zone de saisie utilisateur
user_input = st.text_input("Posez votre question ici...")
if st.button("Envoyer"):
if user_input:
st.session_state.messages.append({"role": "user", "content": user_input})
# 🔹 Affichage du spinner (chargement)
with st.spinner("L'Assistant réfléchit... 🤔"):
time.sleep(1.5) # Simule un délai de réponse
# 🔹 Appel à l'API FastAPI
try:
response = requests.get("http://127.0.0.1:8000/ask", params={"query": user_input})
if response.status_code == 200:
bot_response = response.json().get("reponse", "Je n'ai pas compris votre question.")
else:
bot_response = "Erreur de connexion avec l'assistant."
except requests.exceptions.RequestException:
bot_response = "Le serveur est indisponible. Vérifiez votre connexion."
# 🔹 Ajouter la réponse du bot
st.session_state.messages.append({"role": "bot", "content": bot_response})
# 🔄 Rafraîchir l'affichage
st.rerun()