Spaces:
Sleeping
Sleeping
Delete agent/linkedin_agent.py
Browse files- agent/linkedin_agent.py +0 -60
agent/linkedin_agent.py
DELETED
@@ -1,60 +0,0 @@
|
|
1 |
-
# agent/linkedin_agent.py
|
2 |
-
|
3 |
-
import os
|
4 |
-
from openai import OpenAI
|
5 |
-
from agents import Agent
|
6 |
-
from agents.models import OpenAIChatCompletionsModel
|
7 |
-
from tools.web_search_tool import get_web_search_tool
|
8 |
-
|
9 |
-
# Asegúrate de tener la variable de entorno OPENAI_API_KEY definida en tu sistema
|
10 |
-
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
|
11 |
-
if not OPENAI_API_KEY:
|
12 |
-
raise ValueError("Debes exportar la clave OPENAI_API_KEY antes de ejecutar el agente.")
|
13 |
-
|
14 |
-
# Cliente de OpenAI para pasar al modelo
|
15 |
-
client = OpenAI(api_key=OPENAI_API_KEY)
|
16 |
-
|
17 |
-
def create_agent():
|
18 |
-
"""
|
19 |
-
Crea y retorna un Agent configurado para:
|
20 |
-
- Usar el modelo '04-mini-high' (OpenAIChatCompletionsModel).
|
21 |
-
- Tener como tool el WebSearchTool nativo de OpenAI Agents SDK.
|
22 |
-
- Instrucciones en español para buscar perfiles de LinkedIn según oferta de empleo.
|
23 |
-
"""
|
24 |
-
|
25 |
-
# 1) Primero, instanciamos el modelo basado en 04-mini-high:
|
26 |
-
model = OpenAIChatCompletionsModel(
|
27 |
-
model="04-mini-high",
|
28 |
-
openai_client=client
|
29 |
-
)
|
30 |
-
|
31 |
-
# 2) Obtenemos el WebSearchTool nativo:
|
32 |
-
web_search = get_web_search_tool()
|
33 |
-
|
34 |
-
# 3) Construimos el agente con instrucciones muy explícitas:
|
35 |
-
instrucciones = """
|
36 |
-
Eres un agente que recibe dos entradas:
|
37 |
-
1) Una descripción de oferta de empleo en español.
|
38 |
-
2) Un número entero N (cantidad de perfiles a extraer).
|
39 |
-
|
40 |
-
Tu tarea:
|
41 |
-
a) Extraer los términos clave de la oferta.
|
42 |
-
b) Invocar la herramienta `web_search` para buscar en Google sitios de LinkedIn
|
43 |
-
(usando algo como 'site:linkedin.com/in <términos clave>').
|
44 |
-
c) Devolver hasta N perfiles en un formato de lista donde cada elemento tenga:
|
45 |
-
- Nombre del candidato (si está en el título o snippet de búsqueda).
|
46 |
-
- Enlace completo al perfil de LinkedIn (URL).
|
47 |
-
d) Presenta los resultados en un texto claro, cada perfil en una línea separada.
|
48 |
-
|
49 |
-
Ejemplo de salida (para N=2):
|
50 |
-
1. Juan Pérez - https://www.linkedin.com/in/juan-perez-12345 (Ingeniero de Software)
|
51 |
-
2. María Gómez - https://www.linkedin.com/in/maria-gomez-67890 (Desarrolladora Backend)
|
52 |
-
"""
|
53 |
-
|
54 |
-
agent = Agent(
|
55 |
-
name="linkedin_agent",
|
56 |
-
instructions=instrucciones,
|
57 |
-
model=model,
|
58 |
-
tools=[web_search]
|
59 |
-
)
|
60 |
-
return agent
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|