SergioSCA commited on
Commit
59f0af7
verified
1 Parent(s): a91268e

Update functions.py

Browse files
Files changed (1) hide show
  1. functions.py +18 -17
functions.py CHANGED
@@ -91,28 +91,31 @@ def generar_dataset(encabezado, datasets_seleccionados, pagina_actual=1, filas_p
91
  except Exception as e:
92
  raise ValueError(f"Error al generar el dataset: {str(e)}")
93
 
 
94
  # Funci贸n inteligente para generar el encabezado usando IA de HuggingFace
95
  def generar_encabezado_inteligente(tareas_seleccionadas, api_key):
96
  try:
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("API Key no proporcionada. Ingresa una clave v谩lida.")
103
 
104
- # Prompt mejorado
105
  prompt = f"""
106
- Genera un encabezado de CSV para las siguientes tareas: {', '.join(tareas_seleccionadas)}.
 
 
 
107
  Reglas:
108
- 1. El primer campo debe ser 'id'.
109
- 2. Las columnas deben seguir el formato 'tarea_label' (ej. 'clasificaci贸n_de_texto_label').
110
- 3. No incluir espacios ni texto adicional.
111
- Ejemplo: id,traducci贸n_label,clasificaci贸n_de_im谩genes_label
112
  """
113
 
114
- # Usar un modelo de generaci贸n de texto compatible (ej. GPT-2) <button class="citation-flag" data-index="2">
115
- API_URL = "https://api-inference.huggingface.co/models/gpt2"
116
  headers = {
117
  "Authorization": f"Bearer {api_key}",
118
  "Content-Type": "application/json"
@@ -124,7 +127,7 @@ def generar_encabezado_inteligente(tareas_seleccionadas, api_key):
124
  headers=headers,
125
  json={
126
  "inputs": prompt,
127
- "parameters": {"max_length": 256, "temperature": 0.5} # Ajustar par谩metros <button class="citation-flag" data-index="2">
128
  }
129
  )
130
  response.raise_for_status()
@@ -133,9 +136,11 @@ def generar_encabezado_inteligente(tareas_seleccionadas, api_key):
133
  if response.status_code == 200:
134
  encabezado = response.json()[0]["generated_text"].strip()
135
 
136
- # Validar formato b谩sico
137
  if not encabezado.startswith("id,"):
138
- raise ValueError(f"Formato inv谩lido. Respuesta del modelo: {encabezado}")
 
 
139
 
140
  return encabezado
141
  else:
@@ -144,13 +149,9 @@ def generar_encabezado_inteligente(tareas_seleccionadas, api_key):
144
  except requests.exceptions.HTTPError as e:
145
  if e.response.status_code == 401:
146
  raise ValueError("API Key inv谩lida o sin permisos.")
147
- elif e.response.status_code == 403:
148
- raise ValueError("Acceso denegado al modelo. Prueba con otro modelo p煤blico.")
149
  elif e.response.status_code == 503:
150
- raise ValueError("El modelo est谩 temporalmente no disponible. Intenta m谩s tarde o prueba con otro modelo.")
151
  else:
152
  raise ValueError(f"Error HTTP: {str(e)}")
153
- except KeyError:
154
- raise ValueError("La respuesta de la API no contiene datos v谩lidos. Aseg煤rate de usar un modelo compatible.")
155
  except Exception as e:
156
  raise ValueError(f"Error inesperado: {str(e)}")
 
91
  except Exception as e:
92
  raise ValueError(f"Error al generar el dataset: {str(e)}")
93
 
94
+ # Funci贸n inteligente para generar el encabezado usando IA de HuggingFace
95
  # Funci贸n inteligente para generar el encabezado usando IA de HuggingFace
96
  def generar_encabezado_inteligente(tareas_seleccionadas, api_key):
97
  try:
98
  if not tareas_seleccionadas:
99
  raise ValueError("Debes seleccionar al menos una tarea.")
100
 
 
101
  if not api_key:
102
  raise ValueError("API Key no proporcionada. Ingresa una clave v谩lida.")
103
 
104
+ # Prompt optimizado para claridad <button class="citation-flag" data-index="3">
105
  prompt = f"""
106
+ Eres un experto en datasets. Genera un encabezado CSV para las tareas: {', '.join(tareas_seleccionadas)}.
107
+ Ejemplo de salida para tareas 'Clasificaci贸n de texto' y 'Detecci贸n de objetos':
108
+ id,clasificaci贸n_de_texto_label,detecci贸n_de_objetos_label
109
+
110
  Reglas:
111
+ - Solo responde con el encabezado, sin texto adicional.
112
+ - El primer campo siempre es 'id'.
113
+ - Las columnas deben seguir el formato 'tarea_label' en min煤sculas y sin espacios.
114
+ - Separa las columnas con comas.
115
  """
116
 
117
+ # Usar un modelo especializado en generaci贸n de texto estructurado
118
+ API_URL = "https://api-inference.huggingface.co/models/google/flan-t5-base" # Modelo optimizado <button class="citation-flag" data-index="2">
119
  headers = {
120
  "Authorization": f"Bearer {api_key}",
121
  "Content-Type": "application/json"
 
127
  headers=headers,
128
  json={
129
  "inputs": prompt,
130
+ "parameters": {"max_length": 512, "temperature": 0.1} # Ajustar par谩metros para precisi贸n <button class="citation-flag" data-index="2">
131
  }
132
  )
133
  response.raise_for_status()
 
136
  if response.status_code == 200:
137
  encabezado = response.json()[0]["generated_text"].strip()
138
 
139
+ # Validar formato
140
  if not encabezado.startswith("id,"):
141
+ # Mostrar la respuesta completa para depurar
142
+ print(f"Respuesta del modelo: {encabezado}") # A帽adir para depuraci贸n
143
+ raise ValueError("El modelo no gener贸 un encabezado v谩lido. Int茅ntalo de nuevo.")
144
 
145
  return encabezado
146
  else:
 
149
  except requests.exceptions.HTTPError as e:
150
  if e.response.status_code == 401:
151
  raise ValueError("API Key inv谩lida o sin permisos.")
 
 
152
  elif e.response.status_code == 503:
153
+ raise ValueError("El modelo est谩 ocupado. Intenta m谩s tarde.")
154
  else:
155
  raise ValueError(f"Error HTTP: {str(e)}")
 
 
156
  except Exception as e:
157
  raise ValueError(f"Error inesperado: {str(e)}")