chatbot / app.py
lopezplidia's picture
Update app.py
9dc08fa verified
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
})