Conversaciones reales de ChatGPT: Datos y optimización de consultas
En esta serie compartimos conversaciones reales con ChatGPT durante el flujo normal de trabajo en desarrollo de software, con el objetivo de documentar beneficios, aprender de cada intercambio y ayudar a otros desarrolladores a aprovechar mejor las herramientas de inteligencia artificial. En este artículo cuento una sesión concreta en la que procesé la salida de una consulta de base de datos y optimicé la forma de obtener relaciones como historias, etiquetas y párrafos para una generación de texto en un sistema llamado ParaProse.
Contexto y reto inicial El endpoint que estaba desarrollando debía recopilar contexto de un capítulo para disparar una generación LLM. La consulta original hecha con el ORM Drizzle devolvía filas planas donde cada combinación de capítulo, etiqueta y párrafo generaba duplicados y obligaba a desduplicar y agrupar en TypeScript. En lugar de escribir a mano una función de agrupamiento, pedí a ChatGPT una implementación usando reduce o Map para transformar el arreglo de filas en un arreglo de capítulos con su historia y arrays de tags y párrafos.
Solución práctica propuesta ChatGPT propuso primero una versión con reduce que busca capítulos existentes en el acumulador, añade la historia y agrupa las etiquetas evitando duplicados. Tras ampliar el requerimiento para incluir párrafos, el asistente sugirió usar Map para agrupar en O n y mantener listas de tags y párrafos con ordenación opcional por valor o posición. Esa solución es funcional y evita la lógica repetitiva de búsqueda para cada fila.
Optimización de la consulta Después de revisar el agrupamiento, pedí alternativas para reescribir la consulta y evitar el problema de la explosion de filas causado por joins múltiples. ChatGPT propuso dos patrones válidos: 1 realizar tres consultas acotadas cuando se busca un solo capítulo, una para el capítulo y su historia, otra para las etiquetas y otra para los párrafos, evitando duplicaciones y simplificando la lógica en el servidor; 2 usar una sola consulta con agregados JSON por relación para devolver una fila por capítulo con arrays embebidos, lo que reduce a un solo viaje a la base de datos y escala mejor cuando se procesan muchos capítulos a la vez. Ambas opciones tienen pros y contras y la elección depende del caso de uso y del volumen esperado.
Tipo nullable en joins y lección aprendida Un punto interesante fue por qué la historia venía tipada como nullable cuando la clave foránea en capítulos es no nullable. La explicación fue que un left join obliga al ORM a tipar la tabla derecha como posiblemente nula porque SQL permite NULLs en resultados de left join, aunque la integridad referencial del esquema garantice la existencia. La solución simple y correcta en este caso fue usar inner join para que el ORM tipara la historia como no nula, además de evitar resultados inesperados si existiera RLS u otras reglas de visibilidad.
Reflexión sobre el uso de LLMs Para mí la conversación con ChatGPT aceleró mucho el desarrollo y me simpleficó tareas repetitivas. Sin embargo, también fue un recordatorio de que hay que validar las recomendaciones y reforzar conocimientos básicos, como tipos de joins y patrones de consulta, para no aceptar soluciones sin comprender sus implicaciones. Conversar con un LLM funciona muy bien cuando se combina con un espíritu crítico y pruebas concretas.
Cómo lo aplicamos en Q2BSTUDIO En Q2BSTUDIO ayudamos a empresas a materializar soluciones robustas y eficientes, ofreciendo desarrollo de aplicaciones a medida y software a medida, así como servicios de inteligencia artificial y ciberseguridad. Si buscas implementar integraciones entre bases de datos, optimizar consultas o construir pipelines de datos para alimentar modelos de lenguaje, nuestro equipo puede acompañarte. Con experiencia en arquitecturas cloud y servicios cloud aws y azure, ofrecemos soluciones escalables y seguras.
Servicios relacionados y palabras clave Ofrecemos desde desarrollo de aplicaciones a medida y software a medida hasta proyectos de inteligencia artificial para empresas, agentes IA, y servicios de inteligencia de negocio y power bi para transformar datos en decisiones accionables. También atendemos necesidades de ciberseguridad y pentesting, automatización de procesos y despliegues en servicios cloud aws y azure.
Conclusión Este caso práctico muestra cómo combinar herramientas modernas como ORMs y LLMs con buenas prácticas de ingeniería para obtener resultados rápidos y mantenibles. Si necesitas asesoramiento para optimizar consultas, diseñar APIs que alimenten modelos de IA o construir soluciones a medida con enfoque en seguridad y escalabilidad, en Q2BSTUDIO estamos listos para ayudarte.