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 })