import gradio as gr import pandas as pd df_global = None def subir_csv(file): global df_global df_global = pd.read_csv(file.name) return f"Archivo cargado con {len(df_global)} filas y {len(df_global.columns)} columnas." def responder_pregunta(pregunta): global df_global if df_global is None: return "Primero debes subir un archivo CSV." pregunta = pregunta.lower() if "promedio" in pregunta: numeric_cols = df_global.select_dtypes(include='number') if numeric_cols.empty: return "No hay columnas numéricas para calcular el promedio." return numeric_cols.mean().to_string() elif "columnas" in pregunta: return f"Las columnas del archivo son: {', '.join(df_global.columns)}" elif "filas" in pregunta: return f"El archivo contiene {len(df_global)} filas." else: return "No entendí la pregunta. Prueba con: ¿Cuál es el promedio?, ¿Cuáles son las columnas?, ¿Cuántas filas hay?" def app_interface(csv_file, pregunta): mensaje = subir_csv(csv_file) respuesta = responder_pregunta(pregunta) return mensaje + "\n\n" + respuesta iface = gr.Interface( fn=app_interface, inputs=[ gr.File(label="Sube tu archivo CSV"), gr.Textbox(label="Pregunta sobre el archivo") ], outputs=gr.Textbox(label="Respuesta"), title="Analizador de CSV", description="Sube un archivo CSV y haz preguntas como '¿Cuál es el promedio?' o '¿Cuáles son las columnas?'" ) if __name__ == "__main__": iface.launch()