Spaces:
Sleeping
Sleeping
Update agent.py
Browse files
agent.py
CHANGED
@@ -1,13 +1,71 @@
|
|
1 |
-
|
|
|
|
|
2 |
|
3 |
-
#
|
4 |
-
|
|
|
5 |
|
6 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
8 |
-
def
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
"""
|
10 |
-
|
11 |
"""
|
12 |
-
|
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", "meta-llama/Meta-Llama-3-8B-Instruct") # Cambia al nombre del modelo si es necesario
|
8 |
|
9 |
+
# Función para llamar al modelo y obtener respuesta
|
10 |
+
def call_model(prompt):
|
11 |
+
"""
|
12 |
+
Llama al modelo de Hugging Face y devuelve la respuesta generada.
|
13 |
+
"""
|
14 |
+
headers = {
|
15 |
+
"Authorization": f"Bearer {HF_TOKEN}",
|
16 |
+
"Content-Type": "application/json"
|
17 |
+
}
|
18 |
+
payload = {
|
19 |
+
"inputs": prompt,
|
20 |
+
"parameters": {"max_new_tokens": 512}
|
21 |
+
}
|
22 |
+
|
23 |
+
try:
|
24 |
+
response = requests.post(
|
25 |
+
f"https://api-inference.huggingface.co/models/{MODEL_NAME}",
|
26 |
+
headers=headers,
|
27 |
+
json=payload,
|
28 |
+
timeout=60
|
29 |
+
)
|
30 |
+
result = response.json()
|
31 |
+
if isinstance(result, dict) and result.get("error"):
|
32 |
+
raise ValueError(f"Error al procesar la solicitud: {result['error']}")
|
33 |
+
return result[0]["generated_text"] if isinstance(result, list) else result
|
34 |
+
except requests.exceptions.RequestException as e:
|
35 |
+
raise ValueError(f"Error de conexión con el modelo: {str(e)}")
|
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):
|
42 |
+
self.name = "Agente Hugging Face"
|
43 |
+
self.version = "1.0"
|
44 |
|
45 |
+
def procesar_pregunta(self, pregunta):
|
46 |
+
"""
|
47 |
+
Procesa la pregunta y devuelve la respuesta generada por el modelo.
|
48 |
+
"""
|
49 |
+
print(f"Procesando pregunta: {pregunta}")
|
50 |
+
try:
|
51 |
+
respuesta = call_model(pregunta)
|
52 |
+
return respuesta
|
53 |
+
except ValueError as e:
|
54 |
+
print(f"Error al procesar la pregunta: {e}")
|
55 |
+
return f"ERROR: {e}"
|
56 |
+
|
57 |
+
# Función para ejecutar la evaluación de preguntas
|
58 |
+
def evaluar_preguntas(preguntas):
|
59 |
"""
|
60 |
+
Toma una lista de preguntas, las procesa y devuelve las respuestas generadas.
|
61 |
"""
|
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 |
+
|