import gradio as gr import pandas as pd from transformers import pipeline import os # Cargar modelo open source modelo = pipeline("text2text-generation", model="google/flan-t5-base") # Variable global para almacenar el DataFrame df_global = None def subir_csv(file): global df_global if file is None: return "No se ha proporcionado ningún archivo." try: df_global = pd.read_csv(file.name) filas, columnas = df_global.shape return f"Archivo cargado exitosamente con {filas} filas y {columnas} columnas." except pd.errors.ParserError: return "Error al leer el archivo CSV. Verifique que el formato sea correcto." except Exception as e: return f"Ocurrió un error inesperado al cargar el archivo: {e}" def analizar_pregunta(pregunta): global df_global if df_global is None: return "Por favor, primero sube un archivo CSV." if not pregunta or not isinstance(pregunta, str): return "Por favor, ingresa una pregunta válida en texto." try: df_vista = df_global.head(5).to_string() prompt = f"""Este es un resumen de una tabla:\n{df_vista}\n\nPregunta: {pregunta}\nRespuesta:""" respuesta = modelo(prompt, max_new_tokens=100)[0]['generated_text'] return respuesta except Exception as e: return f"Error al generar la respuesta: {e}" gr.Interface( fn=analizar_pregunta, inputs=[ gr.File(label="Sube tu archivo CSV", file_types=[".csv"], file_count="single", type="file", elem_id="file-upload"), gr.Textbox(label="Haz una pregunta sobre la tabla") ], outputs=gr.Textbox(label="Respuesta del modelo"), live=True, title="Análisis Inteligente de CSV (sin OpenAI)", description="Este Space utiliza un modelo open source para interpretar archivos CSV." ).launch()