AI-Agentic / src /streamlit_app.py
efeperro's picture
Update src/streamlit_app.py
a721a61 verified
raw
history blame
2.21 kB
# app/streamlit_app.py
import os
import streamlit as st
from agents import Runner
from agent.linkedin_agent import create_agent
st.set_page_config(page_title="Buscador de Perfiles LinkedIn", layout="centered")
# Verificamos que la clave esté presente en entorno
if not os.getenv("OPENAI_API_KEY"):
st.error("❌ Por favor define la variable de entorno OPENAI_API_KEY.")
st.stop()
# Instanciamos una sola vez el agente al arrancar la app
agent = create_agent()
st.title("🔍 Agente de Búsqueda de Perfiles LinkedIn")
st.write("Ingresa la descripción de la oferta y la cantidad de perfiles que deseas encontrar.")
# Contenedor para historial de chat
if "history" not in st.session_state:
st.session_state.history = []
# Formulario para que el usuario ingrese oferta + número de perfiles
with st.form(key="oferta_form", clear_on_submit=False):
oferta = st.text_area("📰 Descripción de la oferta de empleo:", height=150)
num_perfiles = st.number_input(
"🔢 Cantidad de perfiles a buscar:",
min_value=1, max_value=20, value=5
)
enviar = st.form_submit_button(label="Enviar al agente")
# Cuando el usuario hace clic en “Enviar”
if enviar and oferta:
# Agregamos el mensaje del usuario al historial
st.session_state.history.append(("usuario", oferta))
# Construimos el prompt tal como espera el agente: oferta + N
prompt = f"Oferta: {oferta}\nNúmero perfiles: {num_perfiles}"
# Ejecutamos el agente de forma síncrona
# Runner.run_sync se encarga de bloquear hasta obtener la salida final
resultado = Runner.run_sync(agent, prompt)
respuesta = resultado.final_output
# Agregamos la respuesta del agente al historial
st.session_state.history.append(("agente", respuesta))
# Mostramos el “chat” en orden cronológico
st.markdown("""---""")
st.markdown("### 💬 Historial de Chat")
for quien, texto in st.session_state.history:
if quien == "usuario":
st.markdown(f"**Tú:** {texto}")
else:
st.markdown(f"**Agente:** {texto}")
# Al pie, sugerimos al usuario limpiar el historial si desea volver a empezar
if st.button("🔄 Limpiar historial"):
st.session_state.history = []