Asistente5 / app.py
alexacido's picture
Upload 3 files
ce016ff verified
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()