Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from dotenv import load_dotenv | |
| from bot import get_response | |
| load_dotenv() # Carga variables de .env | |
| # Configuración de la página | |
| st.title("👋 Bienvenid@, recruiter") | |
| st.caption("Soy un bot que puede responder preguntas sobre el perfil " | |
| "profesional de Lidia. ¡Pregúntame lo que quieras! " | |
| "Y ve directo al grano: tengo los límites de frecuencia muy limitados😉. " | |
| "Aunque si te quedas con más preguntas, Lidia te las responderá encantada. Recuerda: la IA puede cometer errores.") | |
| # Inicializar historial en session_state | |
| # session_state persiste entre rerenders de Streamlit | |
| if "messages" not in st.session_state: | |
| st.session_state.messages = [] | |
| # Mensaje de bienvenida | |
| st.session_state.messages.append({ | |
| "role": "assistant", | |
| "content": "Gracias por interesarte por Lidia. " | |
| "Puedo hablarte sobre su experiencia en IA, " | |
| "bases de datos, modelos predictivos y más " | |
| "(es una chica muy interesante). " | |
| "¿Qué te gustaría saber?" | |
| }) | |
| # Renderizar historial de mensajes | |
| for message in st.session_state.messages: | |
| with st.chat_message(message["role"]): | |
| st.markdown(message["content"]) | |
| # Input del usuario | |
| if prompt := st.chat_input("Escribe tu pregunta aquí..."): | |
| # Añadir mensaje del usuario al historial y mostrarlo | |
| st.session_state.messages.append({ | |
| "role": "user", | |
| "content": prompt | |
| }) | |
| with st.chat_message("user"): | |
| st.markdown(prompt) | |
| # Obtener respuesta del bot | |
| with st.chat_message("assistant"): | |
| with st.spinner("Rebuscando en el baúl de los recuerdos..."): | |
| # Pasamos todo el historial EXCEPTO el mensaje de bienvenida | |
| # (que es nuestro, no del modelo) | |
| history_for_api = [ | |
| m for m in st.session_state.messages | |
| if not (m["role"] == "assistant" and | |
| "Hola! Soy el asistente" in m["content"]) | |
| ] | |
| response = get_response(history_for_api) | |
| st.markdown(response) | |
| # Guardar respuesta en historial | |
| st.session_state.messages.append({ | |
| "role": "assistant", | |
| "content": response | |
| }) |