Volver a Plataformas Completas
En producciónEquipo con ScrumGitHub

DataLitics

Plataforma de analítica empresarial donde cualquier persona pregunta en lenguaje natural y recibe la consulta SQL, los datos y el análisis. Multi-tenant, con una capa de seguridad que bloquea los intentos de inyección antes de que toquen la base de datos.

DataLitics — recorrido completo por la plataforma — subí el volumen para escuchar la narración

> Sobre el proyecto

DataLitics salió de una situación que se repite en toda empresa: los datos están en la base de datos y las preguntas están en la cabeza de gente que no sabe SQL. Entre las dos cosas siempre hay alguien haciendo de traductor, y ese alguien se vuelve un cuello de botella. La plataforma saca ese intermedio del camino: escribís tu pregunta como se la harías a un compañero y recibís la consulta generada, los datos y el análisis de lo que significan.

Lo que se ve en este recorrido es el modelo base sobre el que se construyó todo — la arquitectura, el pipeline de agentes y la capa de seguridad tal como quedaron definidos. El producto está en producción y siguió evolucionando desde ahí, pero esta es la base que sostiene todo lo demás, y es la parte que puedo mostrar completa.

Por dentro no es un modelo respondiendo solo: son seis agentes encadenados, cada uno con una única responsabilidad. El de intención lee la pregunta y determina qué tablas, métricas y período hacen falta. El de SQL arma la consulta con un grafo de LangGraph que la genera, la valida sintácticamente, la pasa por los controles de seguridad y recién entonces la aprueba. El de ejecución la corre contra la base del cliente. El de insights lee los resultados y escribe los hallazgos junto con el tipo de gráfico que mejor los representa. Se suman uno de clarificación, que ante una pregunta ambigua devuelve preguntas en lugar de adivinar, y uno de analítica que responde sobre los datos de auditoría de la propia plataforma.

La parte que más trabajo me dio, y de la que más conforme quedé, es la seguridad. Cada consulta atraviesa tres controles: Prompt Shields de Azure AI Content Safety, que detecta intentos de inyección y jailbreak; un filtro de contexto que corta cualquier consulta que toque tablas o columnas fuera del rol de quien pregunta; y un clasificador que le asigna un nivel de riesgo. Si alguien intenta que el sistema borre una tabla o se lleve datos que no le corresponden, la consulta queda bloqueada antes de llegar a la base y el intento aparece registrado en el panel del administrador con su tipo de bloqueo y su nivel de riesgo.

Es multi-tenant de verdad: cada empresa tiene su identificador, su configuración de acceso y sus datos aislados del resto. El administrador conecta su base desde un asistente que prueba la conexión, inspecciona el esquema y genera la configuración de acceso sola, y desde ahí decide qué tablas ve cada rol y suma a su equipo con códigos de invitación que él mismo aprueba.

Funcionalidades

  • Preguntas en lenguaje natural que devuelven el SQL, los datos y el análisis con su gráfico
  • Pipeline de seis agentes: intención, SQL, ejecución, insights, clarificación y analítica
  • Modo extendido: ante una pregunta ambigua devuelve preguntas de aclaración en vez de adivinar
  • Detección de inyección de prompts y jailbreak con Azure AI Content Safety
  • Filtro de contexto que bloquea toda consulta fuera de las tablas autorizadas del rol
  • Clasificación automática de riesgo de cada consulta en bajo, medio y alto
  • Auditoría completa: historial de consultas, bloqueos, motivo y exportación a CSV
  • Panel de seguridad con métricas de amenazas y desglose por tipo de ataque
  • Arquitectura multi-tenant con aislamiento total de datos entre empresas
  • Onboarding que prueba la conexión, inspecciona el esquema y genera la configuración de acceso
  • Control de acceso por tabla y por rol desde el panel de administración
  • Gestión de equipo con códigos de invitación y aprobación del administrador
  • Inventario de habilidades de los agentes, con asistente para proponer nuevas
  • Protección ante caídas del servicio de datos con patrón circuit breaker

Stack técnico

Frontend

Next.js 15React 19TypeScriptTailwind CSSRechartsAxios

Backend

Python 3.12FastAPIPydanticUvicornpytest

IA y agentes

Azure OpenAI GPT-4oSemantic KernelLangGraphAzure AI SearchRAG

Seguridad

Azure AI Content SafetyPrompt ShieldsFiltro de contexto por rolClasificador de riesgoFirebase Auth

Datos

SQL ServerData API BuilderPermisos por rolCircuit breaker

Despliegue

Azure Container AppsDockerCI/CD con GitLab CI

Organización

Metodología

Equipo con Scrum

Equipo

5 personas

Duración sprint

1 semana

Control de versiones

GitHub

Desarrollado en equipo. Partimos el producto en módulos y cada uno se trabajó como un issue independiente con su criterio de aceptación, lo que nos permitió avanzar en paralelo sin pisarnos: agentes, seguridad, capa de datos y frontend se movían al mismo tiempo. Ramas por feature, revisión por pull request antes de integrar y una demo funcional al cierre de cada iteración.

ScrumGitHubTablero de issuesCode reviewPull RequestsDailiesRetrospectivas
Ver todos los proyectos de Plataformas Completas
ROBO