Agente conversacional avanzado que permite consultar y analizar datos de un e-commerce real utilizando lenguaje natural en español, abstrayendo por completo la complejidad técnica.
El sistema ejecuta un flujo dual en menos de 1 segundo: genera y ejecuta la query SQL automáticamente sobre una base de datos de más de 100.000 registros, limpia los datos, renderiza visualizaciones interactivas y, en paralelo, deduce y escribe las fórmulas DAX nativas y la maquetación visual necesarias para replicar el informe de manera inmediata en Power BI.
Usuario escribe consulta analítica en español
↓
LLM (LLaMA 3.3 70B via Groq API)
↓
┌──────────────┴──────────────┐
▼ ▼
[Pipeline SQL & Python] [Pipeline Business Intelligence]
Genera query SQL Abstrae la lógica de negocio
↓ ↓
SQLite ejecuta Traduce a medidas DAX exactas
en >100k filas ↓
↓ Recomienda visual nativa Power BI
Pandas limpia ↓
tipos y nulos Expone bloque listo para copiar
↓ ↓
└──────────────┬──────────────┘
↓
Dashboard unificado en Streamlit
+ CSV listo para Power BI
| Herramienta | Capa | Uso |
|---|---|---|
| Python | Core | Lenguaje base del ecosistema analítico |
| Groq API + LLaMA 3.3 70B | Inteligencia | Generador de queries SQL y motor de traducción a DAX |
| SQLite | Almacenamiento | Base de datos relacional local con datos indexados |
| Pandas | Procesamiento | Pipeline automático de data cleaning (tipos, nulos) |
| Plotly | Visualización | Gráficos interactivos dinámicos embebidos en el chat |
| Streamlit | Frontend | Interfaz web conversacional e interactiva |
| python-dotenv | Seguridad | Gestión de variables de entorno y credenciales API |
Brazilian E-Commerce Public Dataset by Olist
| Tabla | Registros | Descripción |
|---|---|---|
| orders | 99.441 | Estado de pedidos y timestamps |
| order_items | 112.650 | Precios, fletes y relaciones logísticas |
| order_payments | 103.886 | Métodos de pago y montos financieros |
| order_reviews | 99.224 | Puntuaciones y comentarios de clientes |
| customers | 99.441 | Ubicación geográfica de consumidores |
| products | 32.951 | Dimensiones, pesos y categorías |
| sellers | 3.095 | Datos operativos de vendedores |
| geolocation | 1.000.163 | Prefijos postales y coordenadas lat/long |
| category_names | 71 | Diccionario Portugués - Inglés |
Tiempos de procesamiento empíricos sobre el dataset de Olist (+100k registros):
| Consulta | LLM | SQL | Total |
|---|---|---|---|
| Top 5 productos más vendidos | 0.35s | 0.26s | 0.61s |
| Estado con mayor densidad de clientes | 0.15s | 0.07s | 0.22s |
| Ratio pedidos entregados vs cancelados | 0.22s | 0.02s | 0.24s |
| Top 5 estados con más volumen | 0.23s | 0.77s | 1.00s |
| Ticket medio por pedido | 0.30s | 0.09s | 0.39s |
git clone https://github.com/David-Simon-Soler/Agente-SQL-Analisis-IA.git
cd Agente-SQL-Analisis-IApip install -r requirements.txtCrea un archivo .env en la raíz del proyecto:
GROQ_API_KEY=tu_api_key_aqui
Consigue tu API key gratuita en console.groq.com
Descarga los CSVs desde Kaggle y colócalos en Data/raw/
python src/load_data.pystreamlit run app.pyEn Windows puedes hacer doble clic en
iniciar.batpara lanzarla directamente.
- ¿Cuáles son las 5 categorías más vendidas?
- ¿Cuál es el estado con más clientes?
- ¿Cuántos pedidos fueron entregados vs cancelados?
- ¿Cuál es el ticket medio de los pedidos?
- ¿Qué métodos de pago se usan más?
- ¿Cuál es la puntuación media de las reseñas?
- ¿Cuáles son los 5 vendedores con más ventas?
Agente-SQL-Analisis-IA/
├── Data/
│ └── raw/ # CSVs originales de Kaggle
├── assets/ # Capturas de pantalla y demos
├── outputs/ # CSVs limpios generados por el usuario
├── src/
│ ├── load_data.py # ETL: carga CSVs a SQLite
│ ├── agente.py # Agente conversacional CLI
│ ├── limpieza.py # Pipeline de normalización con Pandas
│ ├── visualizar.py # Generación de gráficos con Plotly
│ ├── consultor_bi.py # Módulo IA: traducción a DAX nativo Power BI
│ └── benchmark.py # Evaluador de latencia LLM vs SQL
├── app.py # Dashboard principal en Streamlit
├── iniciar.bat # Lanzador con doble clic (Windows)
├── .env # Credenciales privadas (excluido del repo)
├── .gitignore
├── requirements.txt
└── README.md
David José Simón Soler — Junior Data Analyst · Graduado en Sociología




