File size: 2,210 Bytes
a721a61
674f02f
a721a61
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# 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 = []