Asistente2 / app.py
alexacido's picture
Upload 2 files
9157f83 verified
import gradio as gr
import pandas as pd
from transformers import pipeline
import os
# Cargar modelo open source (elige uno segΓΊn rendimiento y tamaΓ±o)
modelo = pipeline("text2text-generation", model="google/flan-t5-base") # modelo ligero, sin OpenAI
# Variables para almacenar el DataFrame
df_global = None
def subir_csv(file):
global df_global
try:
df_global = pd.read_csv(file.name)
return f"Archivo cargado exitosamente con {df_global.shape[0]} filas y {df_global.shape[1]} columnas."
except Exception as e:
return f"Error 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."
# Convertimos una vista simple del dataframe a texto para enviarla al LLM
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
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()