Update functions.py
Browse files- functions.py +21 -15
functions.py
CHANGED
|
@@ -97,32 +97,38 @@ def generar_encabezado_inteligente(tareas_seleccionadas, api_key):
|
|
| 97 |
if not tareas_seleccionadas:
|
| 98 |
raise ValueError("Debes seleccionar al menos una tarea.")
|
| 99 |
|
| 100 |
-
# Validar
|
| 101 |
if not api_key:
|
| 102 |
raise ValueError("Debes proporcionar una API Key v谩lida.")
|
| 103 |
|
| 104 |
-
# Usar un modelo
|
| 105 |
-
API_URL = "https://api-inference.huggingface.co/models/
|
| 106 |
-
headers = {"Authorization": f"Bearer {api_key}"}
|
| 107 |
|
| 108 |
-
# Construir el prompt
|
| 109 |
prompt = (
|
| 110 |
f"Genera un encabezado de CSV para las siguientes tareas: {', '.join(tareas_seleccionadas)}. "
|
| 111 |
-
"
|
|
|
|
| 112 |
)
|
| 113 |
|
| 114 |
-
# Enviar
|
| 115 |
response = requests.post(API_URL, headers=headers, json={"inputs": prompt})
|
| 116 |
-
response.raise_for_status() # Lanzar
|
| 117 |
|
|
|
|
| 118 |
if response.status_code == 200:
|
| 119 |
-
encabezado = response.json()[0]["generated_text"]
|
| 120 |
return encabezado
|
| 121 |
else:
|
| 122 |
-
raise ValueError(f"Error
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 127 |
except Exception as e:
|
| 128 |
-
raise ValueError(f"Error inesperado
|
|
|
|
| 97 |
if not tareas_seleccionadas:
|
| 98 |
raise ValueError("Debes seleccionar al menos una tarea.")
|
| 99 |
|
| 100 |
+
# Validar API Key
|
| 101 |
if not api_key:
|
| 102 |
raise ValueError("Debes proporcionar una API Key v谩lida.")
|
| 103 |
|
| 104 |
+
# Usar un modelo compatible con la API de HuggingFace
|
| 105 |
+
API_URL = "https://api-inference.huggingface.co/models/Qwen/Qwen2.5-72B" # Modelo alternativo <button class="citation-flag" data-index="3">
|
| 106 |
+
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
|
| 107 |
|
| 108 |
+
# Construir el prompt
|
| 109 |
prompt = (
|
| 110 |
f"Genera un encabezado de CSV para las siguientes tareas: {', '.join(tareas_seleccionadas)}. "
|
| 111 |
+
"Incluye 'id' como primer elemento y etiquetas relevantes para cada tarea. "
|
| 112 |
+
"Formato esperado: id,tarea1_label,tarea2_label,..."
|
| 113 |
)
|
| 114 |
|
| 115 |
+
# Enviar solicitud a la API
|
| 116 |
response = requests.post(API_URL, headers=headers, json={"inputs": prompt})
|
| 117 |
+
response.raise_for_status() # Lanzar error si hay un problema HTTP
|
| 118 |
|
| 119 |
+
# Procesar respuesta
|
| 120 |
if response.status_code == 200:
|
| 121 |
+
encabezado = response.json()[0]["generated_text"].strip()
|
| 122 |
return encabezado
|
| 123 |
else:
|
| 124 |
+
raise ValueError(f"Error en la API: {response.text}")
|
| 125 |
+
|
| 126 |
+
except requests.exceptions.HTTPError as e:
|
| 127 |
+
if e.response.status_code == 401:
|
| 128 |
+
raise ValueError("API Key inv谩lida o sin permisos. Verifica tu clave en HuggingFace.") <button class="citation-flag" data-index="1">
|
| 129 |
+
elif e.response.status_code == 404:
|
| 130 |
+
raise ValueError("El modelo no existe en HuggingFace. Prueba otro modelo.") <button class="citation-flag" data-index="2">
|
| 131 |
+
else:
|
| 132 |
+
raise ValueError(f"Error HTTP: {str(e)}")
|
| 133 |
except Exception as e:
|
| 134 |
+
raise ValueError(f"Error inesperado: {str(e)}")
|