C2MV commited on
Commit
c83148e
·
verified ·
1 Parent(s): f29d404

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -6
app.py CHANGED
@@ -5,6 +5,8 @@ import json
5
  import tempfile
6
  import os
7
  from datetime import datetime
 
 
8
 
9
  # Configuración de clientes
10
  biotech_client = Client("C2MV/BiotechU4")
@@ -36,6 +38,45 @@ def process_biotech_data(file, models, component, use_de, maxfev, exp_names):
36
  except Exception as e:
37
  return None, None, f"Error en el análisis: {str(e)}"
38
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  def download_results_as_csv(df_data):
40
  """Descarga los resultados como CSV desde BiotechU4"""
41
  try:
@@ -65,7 +106,6 @@ def generate_claude_report(csv_file, model, detail_level, language, additional_s
65
  def export_report(format_type, language, analysis, code):
66
  """Exporta el informe en el formato seleccionado"""
67
  try:
68
- # Primero procesamos y almacenamos
69
  result = analysis_client.predict(
70
  format=format_type,
71
  language=language,
@@ -96,13 +136,16 @@ def process_complete_pipeline(
96
 
97
  # Paso 1: Procesar con BiotechU4
98
  progress_updates.append("🔄 Procesando datos biotecnológicos...")
99
- plot, df_data, status = process_biotech_data(
100
  file, models, component, use_de, maxfev, exp_names
101
  )
102
 
103
- if plot is None or "Error" in str(status):
104
  return None, None, None, None, None, status
105
 
 
 
 
106
  progress_updates.append("✅ Análisis biotecnológico completado")
107
 
108
  # Paso 2: Descargar resultados como CSV
@@ -271,7 +314,8 @@ with gr.Blocks(theme=theme, title="BioTech Analysis & Report Generator", css=cus
271
  additional_specs_input = gr.Textbox(
272
  label="📝 Especificaciones adicionales",
273
  placeholder="Añade contexto o requisitos específicos para el análisis...",
274
- lines=3
 
275
  )
276
 
277
  export_format_input = gr.Radio(
@@ -367,8 +411,8 @@ with gr.Blocks(theme=theme, title="BioTech Analysis & Report Generator", css=cus
367
  )
368
 
369
  if __name__ == "__main__":
 
370
  demo.launch(
371
- share=True,
372
  show_error=True
373
- # Removido favicon_path que causaba el error
374
  )
 
5
  import tempfile
6
  import os
7
  from datetime import datetime
8
+ import plotly.graph_objects as go
9
+ import plotly.express as px
10
 
11
  # Configuración de clientes
12
  biotech_client = Client("C2MV/BiotechU4")
 
38
  except Exception as e:
39
  return None, None, f"Error en el análisis: {str(e)}"
40
 
41
+ def parse_plot_data(plot_dict):
42
+ """Convierte el diccionario del plot en un objeto visualizable"""
43
+ if not plot_dict:
44
+ return None
45
+
46
+ try:
47
+ # Si es un diccionario con tipo y plot
48
+ if isinstance(plot_dict, dict) and 'type' in plot_dict and 'plot' in plot_dict:
49
+ plot_type = plot_dict['type']
50
+ plot_data = plot_dict['plot']
51
+
52
+ # Si es plotly, intentar deserializar
53
+ if plot_type == 'plotly':
54
+ if isinstance(plot_data, str):
55
+ # Intentar parsear como JSON
56
+ try:
57
+ import json
58
+ plot_obj = json.loads(plot_data)
59
+ return plot_obj
60
+ except:
61
+ pass
62
+ return plot_data
63
+
64
+ # Para otros tipos, devolver el plot_data directamente
65
+ return plot_data
66
+
67
+ # Si ya es un objeto de plot válido, devolverlo
68
+ return plot_dict
69
+ except Exception as e:
70
+ print(f"Error parsing plot: {str(e)}")
71
+ # Crear un plot vacío de emergencia
72
+ fig = go.Figure()
73
+ fig.add_annotation(
74
+ text="Error al cargar la visualización",
75
+ xref="paper", yref="paper",
76
+ x=0.5, y=0.5, showarrow=False
77
+ )
78
+ return fig
79
+
80
  def download_results_as_csv(df_data):
81
  """Descarga los resultados como CSV desde BiotechU4"""
82
  try:
 
106
  def export_report(format_type, language, analysis, code):
107
  """Exporta el informe en el formato seleccionado"""
108
  try:
 
109
  result = analysis_client.predict(
110
  format=format_type,
111
  language=language,
 
136
 
137
  # Paso 1: Procesar con BiotechU4
138
  progress_updates.append("🔄 Procesando datos biotecnológicos...")
139
+ plot_data, df_data, status = process_biotech_data(
140
  file, models, component, use_de, maxfev, exp_names
141
  )
142
 
143
+ if plot_data is None or "Error" in str(status):
144
  return None, None, None, None, None, status
145
 
146
+ # Parsear el plot correctamente
147
+ plot = parse_plot_data(plot_data)
148
+
149
  progress_updates.append("✅ Análisis biotecnológico completado")
150
 
151
  # Paso 2: Descargar resultados como CSV
 
314
  additional_specs_input = gr.Textbox(
315
  label="📝 Especificaciones adicionales",
316
  placeholder="Añade contexto o requisitos específicos para el análisis...",
317
+ lines=3,
318
+ value="Proporciona un análisis detallado de los modelos ajustados, incluyendo métricas de bondad de ajuste, comparación entre modelos y recomendaciones prácticas."
319
  )
320
 
321
  export_format_input = gr.Radio(
 
411
  )
412
 
413
  if __name__ == "__main__":
414
+ # En Hugging Face Spaces, share=False es lo correcto
415
  demo.launch(
416
+ share=False, # Cambiado a False para Hugging Face Spaces
417
  show_error=True
 
418
  )