Update functions.py
Browse files- functions.py +38 -13
functions.py
CHANGED
|
@@ -1,21 +1,13 @@
|
|
| 1 |
# functions.py
|
| 2 |
import json
|
| 3 |
-
import requests
|
| 4 |
from datasets import load_dataset
|
| 5 |
-
import matplotlib.pyplot as plt
|
| 6 |
-
import time
|
| 7 |
|
| 8 |
-
#
|
| 9 |
def cargar_modalidades_tareas():
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
except FileNotFoundError:
|
| 15 |
-
raise ValueError("El archivo 'modalidades_tareas.json' no se encontr贸.")
|
| 16 |
-
except json.JSONDecodeError:
|
| 17 |
-
raise ValueError("El archivo 'modalidades_tareas.json' tiene un formato incorrecto.")
|
| 18 |
-
|
| 19 |
# Validar modalidades y tareas
|
| 20 |
def validar_modalidades_tareas(modalidades_tareas):
|
| 21 |
try:
|
|
@@ -92,6 +84,39 @@ def generar_dataset(encabezado, datasets_seleccionados, pagina_actual=1, filas_p
|
|
| 92 |
except Exception as e:
|
| 93 |
raise ValueError(f"Error al generar el dataset: {str(e)}")
|
| 94 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 95 |
def generar_encabezado_inteligente(tareas_seleccionadas, api_key):
|
| 96 |
max_reintentos = 3
|
| 97 |
espera_entre_reintentos = 2
|
|
|
|
| 1 |
# functions.py
|
| 2 |
import json
|
|
|
|
| 3 |
from datasets import load_dataset
|
|
|
|
|
|
|
| 4 |
|
| 5 |
+
# Cargar modalidades y tareas
|
| 6 |
def cargar_modalidades_tareas():
|
| 7 |
+
with open("modalidades_tareas.json", "r") as file:
|
| 8 |
+
MODALIDAD_TAREAS = json.load(file)
|
| 9 |
+
return MODALIDAD_TAREAS
|
| 10 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
# Validar modalidades y tareas
|
| 12 |
def validar_modalidades_tareas(modalidades_tareas):
|
| 13 |
try:
|
|
|
|
| 84 |
except Exception as e:
|
| 85 |
raise ValueError(f"Error al generar el dataset: {str(e)}")
|
| 86 |
|
| 87 |
+
# Generar encabezado localmente
|
| 88 |
+
def generar_encabezado(tareas_seleccionadas):
|
| 89 |
+
MODALIDAD_TAREAS = cargar_modalidades_tareas()
|
| 90 |
+
|
| 91 |
+
if not tareas_seleccionadas:
|
| 92 |
+
raise ValueError("Selecciona al menos una tarea.")
|
| 93 |
+
|
| 94 |
+
columnas = ["id"]
|
| 95 |
+
modalidades_usadas = set()
|
| 96 |
+
tareas_procesadas = set()
|
| 97 |
+
|
| 98 |
+
# Mapear tareas a sus modalidades y columnas
|
| 99 |
+
for tarea in tareas_seleccionadas:
|
| 100 |
+
for modalidad, datos in MODALIDAD_TAREAS.items():
|
| 101 |
+
if tarea in datos["tareas"]:
|
| 102 |
+
# A帽adir columnas de la modalidad una vez
|
| 103 |
+
if modalidad not in modalidades_usadas:
|
| 104 |
+
columnas.extend(datos["columnas"])
|
| 105 |
+
modalidades_usadas.add(modalidad)
|
| 106 |
+
# A帽adir columna de la tarea
|
| 107 |
+
columna_tarea = f"{tarea.lower().replace(' ', '_')}_label"
|
| 108 |
+
if columna_tarea not in tareas_procesadas:
|
| 109 |
+
columnas.append(columna_tarea)
|
| 110 |
+
tareas_procesadas.add(columna_tarea)
|
| 111 |
+
|
| 112 |
+
# Optimizar columnas (ej. ordenar y eliminar redundancias)
|
| 113 |
+
columnas_optimizadas = ["id"] + sorted(
|
| 114 |
+
columnas[1:],
|
| 115 |
+
key=lambda x: (x.endswith("_input"), x) # Priorizar columnas de entrada <button class="citation-flag" data-index="4">
|
| 116 |
+
)
|
| 117 |
+
|
| 118 |
+
return ",".join(columnas_optimizadas)
|
| 119 |
+
|
| 120 |
def generar_encabezado_inteligente(tareas_seleccionadas, api_key):
|
| 121 |
max_reintentos = 3
|
| 122 |
espera_entre_reintentos = 2
|