SQL Agent es una aplicación web que permite convertir consultas en lenguaje natural a consultas SQL utilizando modelos de inteligencia artificial. Diseñada para facilitar el acceso a bases de datos sin necesidad de conocer SQL en profundidad.
SQL Agent es un sistema completo que combina:
- Frontend web intuitivo donde escribes en español natural
- Backend inteligente que traduce tu consulta usando IA
- Base de datos de ejemplo (SAKILA) lista para usar
Ejemplo de uso:
- Tú escribes: "Los 5 clientes que más han gastado"
- SQL Agent genera:
SELECT c.nombre, c.apellidos, SUM(p.cantidad) as total... - Ves los resultados en una tabla clara
- 🗣️ Consultas en español natural - Escribe como hablas
- 🤖 IA avanzada - Utiliza OpenAI GPT-4 o modelos locales
- 📊 Resultados visuales - Tablas claras con los datos
- 💡 Explicaciones detalladas - Entiende qué hace cada consulta
- 🔒 Seguridad - Solo consultas SELECT (lectura)
- 🐳 Fácil instalación - Todo con Docker
- 🌐 Base de datos incluida - SAKILA en español lista para usar
- Descargar Docker Desktop: https://www.docker.com/products/docker-desktop/
- Instalar y ejecutar Docker Desktop
- Habilitar Docker Model Runner:
- Ve a
Settings→Beta features - Activa
Enable Docker Model Runner - Activa
Enable host-side TCP support
- Ve a
Si quieres usar modelos locales sin API keys:
- Abre Docker Desktop
- Ve a la pestaña "Models (beta)"
- Busca y descarga:
ai/gpt-oss:latest- Ve a "Docker Hub"
- Busca "ai/gpt-oss"
- Haz clic en "Pull" para descargar
git clone https://github.com/tu-usuario/sql-agent.git
cd sql-agent# Copiar archivo de configuración
cp .env.example .env
# Editar .env con tu editor favorito
notepad .env # Windows
nano .env # Linux/MacPara usar OpenAI API (Recomendado):
LLM_PROVIDER=openai
OPENAI_API_KEY=tu_api_key_de_openai_aqui
OPENAI_MODEL=gpt-4Para usar modelo local (Gratis):
LLM_PROVIDER=docker_runner
DOCKER_RUNNER_MODEL=ai/gpt-oss:latestCon OpenAI API:
docker-compose up -dCon modelo local:
docker-compose --profile with-llm up -d- Frontend: http://localhost:8080
- Backend API: http://localhost:5000
- Base de datos: localhost:3307
- Abre tu navegador en http://localhost:8080
- Escribe tu consulta en español natural:
- "Los actores de la película Titanic"
- "Cuánto ha gastado cada cliente"
- "Las películas más alquiladas"
- Haz clic en "Traducir a SQL"
- Revisa la consulta generada y haz clic en "Ejecutar SQL"
- Ve los resultados en la tabla
El proyecto incluye la base de datos SAKILA completamente configurada en español. SAKILA es una base de datos de ejemplo que simula un sistema de videoclub con:
- actor - Actores de las películas
- pelicula - Catálogo de películas
- cliente - Clientes del videoclub
- alquiler - Registros de alquileres
- pago - Historial de pagos
- inventario - Stock de películas
- categoria - Géneros cinematográficos
- Esquema en español: https://gist.github.com/josejuansanchez/b44d3d1f84800eb07e188958e99de9bc
- Datos en español: https://gist.github.com/josejuansanchez/122675071cdacce7f7ba61051707dae3
- Host: localhost
- Puerto: 3307
- Base de datos: sakila_es
- Usuario: root
- Contraseña: sakila_password
Solución 1: Reintentar
docker-compose up -dSolución 2: Revisar desde Docker Desktop
- Abre Docker Desktop
- Ve a la pestaña "Containers"
- Busca los contenedores parados
- Haz clic en "Start" para levantarlos manualmente
Solución 3: Revisar logs
docker-compose logs -f nombre-del-servicioLimpieza completa de Docker (empezar desde cero):
# Detener todos los servicios
docker-compose down
# Limpiar todo Docker
docker builder prune -af
docker container prune -f
docker network prune -f
docker volume prune -f
# Volver a ejecutar
docker-compose up -dSi los puertos 8080, 5000 o 3307 están ocupados:
# Ver qué está usando los puertos
netstat -tulpn | grep :8080
netstat -tulpn | grep :5000
netstat -tulpn | grep :3307
# Detener el proceso o cambiar puertos en docker-compose.yml- Verifica que Docker Model Runner esté habilitado
- Asegúrate de haber descargado
ai/gpt-oss:latest - Revisa que el archivo .env tenga
LLM_PROVIDER=docker_runner
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │ │ Backend │ │ Base de │
│ (Node.js) │◄──►│ (Python) │◄──►│ Datos │
│ Puerto: 8080 │ │ Puerto: 5000 │ │ (MySQL) │
│ │ │ │ │ Puerto: 3307 │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ Modelo IA │
│ (OpenAI/Local)│
└─────────────────┘
Frontend:
- Node.js + Express
- HTML5 + CSS3 + JavaScript
- Interface web responsive
Backend:
- Python + FastAPI
- OpenAI API / Docker Model Runner
- Parsing inteligente de JSON
Base de Datos:
- MySQL 8.0
- Base de datos SAKILA en español
- Esquema optimizado con índices
Infraestructura:
- Docker + Docker Compose
- Contenedores aislados
- Variables de entorno seguras
Si tienes problemas:
- Revisa la sección de Troubleshooting arriba
- Verifica que Docker Desktop esté ejecutándose
- Comprueba los logs con
docker-compose logs -f - Asegúrate de tener la última versión de Docker Desktop
Este proyecto está bajo la Licencia MIT. Puedes usarlo libremente para proyectos personales o comerciales.
⭐ ¡Dale una estrella si te gusta el proyecto! ⭐