Spaces:
Sleeping
Sleeping
| 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() |