Spaces:
Running
Running
Update agent.py
Browse files
agent.py
CHANGED
@@ -1,11 +1,13 @@
|
|
1 |
import os
|
2 |
import requests
|
3 |
from huggingface_hub import hf_api
|
|
|
4 |
|
5 |
# Cargar el token de Hugging Face desde el entorno
|
6 |
HF_TOKEN = os.getenv("HF_TOKEN")
|
7 |
MODEL_NAME = os.getenv("MODEL_NAME", "google/gemma-2b-it")
|
8 |
print("HF_TOKEN desde agent.py:", HF_TOKEN[:10] if HF_TOKEN else "NO DEFINIDO")
|
|
|
9 |
# Función para llamar al modelo y obtener respuesta
|
10 |
def call_model(prompt):
|
11 |
"""
|
@@ -36,6 +38,34 @@ def call_model(prompt):
|
|
36 |
except Exception as e:
|
37 |
raise ValueError(f"Error al obtener respuesta del modelo: {str(e)}")
|
38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
# Clase para representar la lógica del agente
|
40 |
class Agente:
|
41 |
def __init__(self):
|
@@ -62,10 +92,12 @@ def evaluar_preguntas(preguntas):
|
|
62 |
agente = Agente()
|
63 |
respuestas = []
|
64 |
|
|
|
|
|
|
|
65 |
for pregunta in preguntas:
|
66 |
print(f"Evaluando: {pregunta}")
|
67 |
respuesta = agente.procesar_pregunta(pregunta)
|
68 |
respuestas.append(respuesta)
|
69 |
|
70 |
return respuestas
|
71 |
-
|
|
|
1 |
import os
|
2 |
import requests
|
3 |
from huggingface_hub import hf_api
|
4 |
+
import time
|
5 |
|
6 |
# Cargar el token de Hugging Face desde el entorno
|
7 |
HF_TOKEN = os.getenv("HF_TOKEN")
|
8 |
MODEL_NAME = os.getenv("MODEL_NAME", "google/gemma-2b-it")
|
9 |
print("HF_TOKEN desde agent.py:", HF_TOKEN[:10] if HF_TOKEN else "NO DEFINIDO")
|
10 |
+
|
11 |
# Función para llamar al modelo y obtener respuesta
|
12 |
def call_model(prompt):
|
13 |
"""
|
|
|
38 |
except Exception as e:
|
39 |
raise ValueError(f"Error al obtener respuesta del modelo: {str(e)}")
|
40 |
|
41 |
+
# Función para esperar que el modelo esté listo
|
42 |
+
def wait_for_model():
|
43 |
+
"""
|
44 |
+
Espera hasta que el modelo esté completamente cargado y disponible para hacer solicitudes.
|
45 |
+
"""
|
46 |
+
headers = {
|
47 |
+
"Authorization": f"Bearer {HF_TOKEN}",
|
48 |
+
"Content-Type": "application/json"
|
49 |
+
}
|
50 |
+
|
51 |
+
# Intentamos hacer un request a la API del modelo cada 10 segundos
|
52 |
+
while True:
|
53 |
+
try:
|
54 |
+
response = requests.get(
|
55 |
+
f"https://api-inference.huggingface.co/models/{MODEL_NAME}",
|
56 |
+
headers=headers,
|
57 |
+
timeout=30
|
58 |
+
)
|
59 |
+
# Si el modelo responde sin error, lo consideramos listo
|
60 |
+
if response.status_code == 200:
|
61 |
+
print(f"Modelo {MODEL_NAME} listo para recibir solicitudes.")
|
62 |
+
break
|
63 |
+
else:
|
64 |
+
print(f"Esperando que el modelo {MODEL_NAME} esté listo... (estado {response.status_code})")
|
65 |
+
except requests.exceptions.RequestException as e:
|
66 |
+
print(f"Error al verificar el estado del modelo: {e}")
|
67 |
+
time.sleep(10) # Esperar 10 segundos antes de intentar nuevamente
|
68 |
+
|
69 |
# Clase para representar la lógica del agente
|
70 |
class Agente:
|
71 |
def __init__(self):
|
|
|
92 |
agente = Agente()
|
93 |
respuestas = []
|
94 |
|
95 |
+
# Esperar a que el modelo esté listo
|
96 |
+
wait_for_model()
|
97 |
+
|
98 |
for pregunta in preguntas:
|
99 |
print(f"Evaluando: {pregunta}")
|
100 |
respuesta = agente.procesar_pregunta(pregunta)
|
101 |
respuestas.append(respuesta)
|
102 |
|
103 |
return respuestas
|
|