alexacido commited on
Commit
bde820e
·
verified ·
1 Parent(s): dee0003

Upload 3 files

Browse files
Files changed (3) hide show
  1. README.md +16 -7
  2. app.py +40 -0
  3. requirements.txt +3 -0
README.md CHANGED
@@ -1,14 +1,23 @@
1
  ---
2
- title: Split
3
  emoji: 📊
4
- colorFrom: gray
5
- colorTo: pink
6
  sdk: gradio
7
- sdk_version: 5.33.2
8
  app_file: app.py
9
  pinned: false
10
- license: apache-2.0
11
- short_description: csv
12
  ---
13
 
14
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ title: CSV Analyzer App
3
  emoji: 📊
4
+ colorFrom: indigo
5
+ colorTo: blue
6
  sdk: gradio
7
+ sdk_version: "4.21.0"
8
  app_file: app.py
9
  pinned: false
 
 
10
  ---
11
 
12
+ # Analizador Inteligente de CSV
13
+
14
+ Este Space permite:
15
+ - Subir un archivo .csv de gran tamaño.
16
+ - Hacer preguntas en lenguaje natural sobre el contenido del archivo.
17
+ - Responder con texto continuo, sin tablas.
18
+
19
+ ### Ejemplos de preguntas:
20
+ - ¿Cuáles son las columnas del archivo?
21
+ - ¿Cuál es el promedio de las columnas numéricas?
22
+
23
+ Este proyecto es open-source y puede mejorarse integrando modelos como LLaMA 3 o Mistral vía Hugging Face Transformers + LangChain.
app.py ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import gradio as gr
3
+ import pandas as pd
4
+
5
+ df_global = None
6
+
7
+ def subir_csv(file):
8
+ global df_global
9
+ df_global = pd.read_csv(file.name)
10
+ return f"Archivo cargado con {len(df_global)} filas y {len(df_global.columns)} columnas."
11
+
12
+ def analizar_pregunta(pregunta):
13
+ global df_global
14
+ if df_global is None:
15
+ return "Primero debes subir un archivo CSV."
16
+
17
+ if "promedio" in pregunta.lower():
18
+ numeric_cols = df_global.select_dtypes(include='number')
19
+ if numeric_cols.empty:
20
+ return "No hay columnas numéricas para calcular el promedio."
21
+ return numeric_cols.mean().to_string()
22
+ elif "columnas" in pregunta.lower():
23
+ return f"Las columnas del archivo son: {', '.join(df_global.columns)}"
24
+ else:
25
+ return "Pregunta no reconocida. Prueba con: ¿Cuál es el promedio de las columnas?"
26
+
27
+ demo = gr.Blocks()
28
+
29
+ with demo:
30
+ gr.Markdown("# Analizador Inteligente de CSV")
31
+ archivo = gr.File(label="Sube tu archivo CSV")
32
+ salida = gr.Textbox(label="Resultado de carga")
33
+ pregunta = gr.Textbox(label="Haz una pregunta sobre el CSV")
34
+ respuesta = gr.Textbox(label="Respuesta del análisis")
35
+
36
+ archivo.upload(subir_csv, archivo, salida)
37
+ pregunta.change(analizar_pregunta, pregunta, respuesta)
38
+
39
+ if __name__ == "__main__":
40
+ demo.launch()
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+
2
+ gradio==4.21.0
3
+ pandas