Plataforma para cliente
Plataforma de Consulta Geoespacial en Lenguaje Natural
Un producto donde los usuarios preguntan sobre datos geográficos en lenguaje natural y reciben respuestas, gráficos y mapas, generados por un LLM sobre PostGIS.
Trabajo protegido por NDA; el producto, el cliente y los datasets no se nombran intencionadamente.
Arquitectura
- Preguntalenguaje natural, vía app web o SDK
- LLMgeneración de SQL consciente del esquema
- Validaciónesquemas permitidos · consulta restringida
- PostGISejecución espacial
- Respuestatexto · gráfico · mapa · análisis
Trabajo para un cliente bajo NDA, así que nombres y datasets quedan fuera: un motor de consulta texto-a-SQL sobre datos públicos multijurisdiccionales, la plataforma de producto a su alrededor (API, aplicación web, SDKs, facturación) y la infraestructura en la que corre. Lideré su concepción e ingeniería con el equipo de Territorial.
En resumen
- Motor de consulta: lenguaje natural → SQL consciente del esquema → validación → PostGIS → respuesta en lenguaje natural, en una sola llamada
- Dos backends de LLM intercambiables tras una interfaz REST idéntica; restricción por esquema para que una conversación solo toque las fuentes de datos que le fueron concedidas
- Sandbox analítico: un bucle de herramientas acotado para análisis posteriores (razones, rankings, comparaciones), gráficos, mapas y un intérprete de código opcional
- Plataforma de producto con organizaciones, claves de API, medición de uso, rate limits, webhooks, facturación por suscripción, SDKs en TypeScript y Python y sitio de documentación
El motor de consulta
El motor es un servicio FastAPI sobre PostgreSQL/PostGIS con datasets públicos a nivel federal, estatal y municipal: financiación de campañas, demografía censal, registros y licencias de empresas, permisos, criminalidad, impuestos. La parte difícil de texto-a-SQL sobre datos así no es el modelo; es darle al modelo un esquema sobre el que pueda razonar. Diseñé la capa de datos: cómo se relacionan jurisdicciones de distintos niveles, cómo se exponen y simplifican las geometrías, qué columnas tienen significado y cómo se describe todo eso para que el SQL generado sea correcto a la primera con más frecuencia. La coincidencia aproximada de nombres usa similitud por trigramas en la base de datos, así que lugares y candidatos mal escritos siguen resolviéndose.
Una pregunta se convierte en un candidato SQL, se valida y restringe (los esquemas se permiten por conversación, los esquemas internos nunca pueden consultarse), se ejecuta y se resume de vuelta en lenguaje. El backend de LLM es intercambiable: una implementación con modelos de OpenAI vía LangChain, otra con el framework de agentes de Google y Gemini, ambas tras el mismo contrato REST con historial de conversación, de modo que comparar proveedores fue configuración y no una reescritura. Un modo analítico añade un bucle de agente acotado sobre datos recién obtenidos, con timeouts por consulta, límites de reintentos y un plazo de extremo a extremo, produciendo porcentajes, rankings, gráficos y mapas.
El producto alrededor
Un motor de consulta no es un producto. También lideré la plataforma que lo convierte en uno: una API Express con PostgreSQL/PostGIS en capas de controllers, services y repositories, una aplicación web React para chat y gestión de conversaciones, SDKs en TypeScript y Python para acceso programático, organizaciones y equipos, claves de API, medición de uso y rate limiting, un sistema de webhooks para notificaciones de eventos, facturación por suscripción vía Stripe y un sitio de documentación.
Infraestructura
Todo corre como stacks de Docker Compose tras Traefik, con entornos separados de desarrollo, beta y producción, actualización automática de imágenes, una capa de métricas y BI y Sentinel vigilando el conjunto. Los secretos están acotados por servicio y se cargan desde un único archivo de entorno para que la configuración siga siendo legible a medida que crece el stack. Las llamadas que llevan datos de clientes a endpoints externos de modelos resuelven sus destinos en modo fail-closed: producción se niega a correr sin un endpoint explícito y nunca recurre a uno público.
Más proyectos
Todos los proyectos
Geo360 LADM
El primer sistema de administración de tierras en Brasil construido sobre el estándar ISO 19152 LADM, liderado mientras estaba en Topocart.
- PostgreSQL
- PostGIS
- GeoServer
- LADM (ISO 19152)
- +4

Dragonfly GeoAnalytics
Una plataforma de geointeligencia que ayuda a los municipios a combatir dengue, Zika y chikungunya con imágenes de dron y mapeo de casos.
- React
- Mapbox
- Highcharts
- Express
- +6

GeoServer Mobile Client
Un cliente móvil con soporte offline para capas de GeoServer: descargar, ver, editar entidades y exportar, construido en tres semanas.
- Ionic
- React
- TypeScript
- OpenLayers
- +2