alexacido commited on
Commit
5a4be74
·
verified ·
1 Parent(s): fffc7c9

Upload 3 files

Browse files
Files changed (3) hide show
  1. README.md +35 -14
  2. app.py +42 -0
  3. requirements.txt +4 -0
README.md CHANGED
@@ -1,14 +1,35 @@
1
- ---
2
- title: Asistente4
3
- emoji: 🌍
4
- colorFrom: pink
5
- colorTo: gray
6
- sdk: gradio
7
- sdk_version: 5.32.1
8
- app_file: app.py
9
- pinned: false
10
- license: apache-2.0
11
- short_description: Subir un csv y analizarlo
12
- ---
13
-
14
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # CSV Analyst Space (sin OpenAI)
2
+
3
+ Este Space permite:
4
+
5
+ - Subir un archivo `.csv`
6
+ - Hacer preguntas sobre su contenido
7
+ - Obtener respuestas interpretadas por un modelo de lenguaje **open source** (`flan-t5-base`)
8
+
9
+ ## Tecnologías utilizadas
10
+
11
+ - [Gradio](https://www.gradio.app/)
12
+ - [Transformers de Hugging Face](https://huggingface.co/docs/transformers/)
13
+ - Modelo: `google/flan-t5-base` (sin dependencia de OpenAI)
14
+ - Pandas para lectura de archivos CSV
15
+
16
+ ## Instrucciones
17
+
18
+ 1. Sube un archivo `.csv`
19
+ 2. Escribe una pregunta, por ejemplo:
20
+ - ¿Cuáles son las columnas del archivo?
21
+ - ¿Qué producto tiene mejor desempeño?
22
+ 3. El modelo procesará una vista de los primeros datos y responderá en lenguaje natural.
23
+
24
+ ## Requisitos
25
+
26
+ El archivo `requirements.txt` incluye:
27
+
28
+ ```
29
+ gradio
30
+ transformers
31
+ pandas
32
+ torch
33
+ ```
34
+
35
+ ¡Este Space es completamente libre de OpenAI!
app.py ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import pandas as pd
3
+ from transformers import pipeline
4
+ import os
5
+
6
+ # Cargar modelo open source (elige uno según rendimiento y tamaño)
7
+ modelo = pipeline("text2text-generation", model="google/flan-t5-base") # modelo ligero, sin OpenAI
8
+
9
+ # Variables para almacenar el DataFrame
10
+ df_global = None
11
+
12
+ def subir_csv(file):
13
+ global df_global
14
+ try:
15
+ df_global = pd.read_csv(file.name)
16
+ return f"Archivo cargado exitosamente con {df_global.shape[0]} filas y {df_global.shape[1]} columnas."
17
+ except Exception as e:
18
+ return f"Error al cargar el archivo: {e}"
19
+
20
+ def analizar_pregunta(pregunta):
21
+ global df_global
22
+ if df_global is None:
23
+ return "Por favor, primero sube un archivo CSV."
24
+
25
+ # Convertimos una vista simple del dataframe a texto para enviarla al LLM
26
+ df_vista = df_global.head(5).to_string()
27
+ prompt = f"""Este es un resumen de una tabla:\n{df_vista}\n\nPregunta: {pregunta}\nRespuesta:"""
28
+
29
+ respuesta = modelo(prompt, max_new_tokens=100)[0]['generated_text']
30
+ return respuesta
31
+
32
+ gr.Interface(
33
+ fn=analizar_pregunta,
34
+ inputs=[
35
+ gr.File(label="Sube tu archivo CSV", file_types=[".csv"], file_count="single", type="file", elem_id="file-upload"),
36
+ gr.Textbox(label="Haz una pregunta sobre la tabla")
37
+ ],
38
+ outputs=gr.Textbox(label="Respuesta del modelo"),
39
+ live=True,
40
+ title="Análisis Inteligente de CSV (sin OpenAI)",
41
+ description="Este Space utiliza un modelo open source para interpretar archivos CSV."
42
+ ).launch()
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ gradio
2
+ transformers
3
+ pandas
4
+ torch