Data e IAEmergentes

Caso de uso: Cómo usamos IA para generar consultas SQL desde lenguaje natural

5 Mins de lectura

Descubre cómo podemos ayudarte a aprovechar el potencial de la IA para impulsar tu negocio.

En un entorno cada vez más orientado a los datos, acceder a la información adecuada de forma rápida y precisa es clave para la toma de decisiones. Sin embargo, muchas organizaciones aún dependen de herramientas técnicas como SQL (Structured Query Language), lo que representa una barrera para personas usuarias sin formación especializada y ralentiza los procesos internos.

Nuestro cliente se enfrentaba a este reto: permitir que perfiles no técnicos pudieran consultar datos de manera autónoma y eficiente. Para resolverlo, desarrollamos una solución capaz de transformar preguntas en lenguaje natural en consultas SQL, eliminando la dependencia de conocimientos técnicos avanzados y agilizando significativamente el acceso a la información.

 

Qué hicimos

Desarrollamos una aplicación que permite a cualquier persona de la organización consultar datos de forma sencilla y autónoma. El proceso comienza con la selección de la tabla sobre la que se desea hacer una consulta.

A continuación, la persona debe elegir si desea realizar la consulta en SQL o a través de una herramienta interna del cliente que opera como una API REST, la cual utiliza una sintaxis específica para construir queries y acceder a los datos. Luego, se selecciona el modelo de lenguaje (LLM) encargado de transformar la pregunta en lenguaje natural en una consulta estructurada. Entre las opciones disponibles se incluyen modelos como GPT-3.5 Turbo, GPT-4o, Gemini Pro o Claude 2.

Después, la persona redacta la pregunta en lenguaje natural (por ejemplo: “¿Dónde trabaja Sofía Martínez Delgado?”).

Una vez completada esta configuración, se activan distintos procesos en el backend. En primer lugar, se recupera desde un vectorstore toda la información contextual relacionada con la tabla seleccionada (nombres y descripciones de tablas y columnas, tipos de datos, etc.). Con esta información, y teniendo en cuenta la herramienta y el modelo seleccionados, se lanza una llamada a una API (FastAPI) que integra los LLM disponibles.

El modelo recibe un prompt completo que incluye:

  • La pregunta en lenguaje natural

  • La información técnica de la tabla

  • La documentación básica de la herramienta seleccionada

  • Las instrucciones sobre la tarea a realizar

El modelo devuelve la consulta ya generada, ya sea en formato SQL o en JSON, según la herramienta escogida.

Antes de ejecutar la consulta, la persona puede revisar y, si lo desea, modificar la query generada. Una vez validada, se lanza el proceso de consulta a la base de datos mediante una petición API.

Finalmente, la información solicitada se muestra en pantalla como respuesta a la consulta realizada.

 

Retos

Durante el desarrollo del proyecto, uno de los principales retos fue la baja calidad de los datos y la escasa documentación de las tablas y vistas, elementos fundamentales para que el modelo de lenguaje (LLM) pudiera construir correctamente las consultas.

Nos encontramos con la ausencia de un estándar claro en los datos. Por ejemplo, en algunas tablas, los valores de las columnas de tipo string podían aparecer en mayúsculas, minúsculas, con o sin tildes, e incluso con nombres propios incompletos o inconsistentes. Esto generaba un problema importante: aunque el modelo generara correctamente la estructura de la consulta, si los valores utilizados para filtrar no coincidían exactamente con los existentes en la base de datos, la API no devolvía ningún resultado.

Para mitigar esta situación, implementamos distintas estrategias.

Estrategia 1: ejemplo de valores (data profiling)

Probamos a enriquecer el prompt del modelo incluyendo, junto a la descripción de la tabla, una muestra de valores típicos por columna (data profiling). Esto ayudaba al LLM a entender mejor cómo estaban representados los datos reales. Sin embargo, esta aproximación tenía una limitación importante: el aumento considerable en el número de tokens, lo cual impactaba en los costes y en la compatibilidad con ciertos modelos.

Estrategia 2: normalización con expresiones regulares

Para evitar el problema del límite de tokens, diseñamos una solución basada en la generación de filtros más tolerantes mediante expresiones regulares (regexp), que permitieran ignorar diferencias en mayúsculas, minúsculas y tildes. Por ejemplo:

nombreCompleto REGEXP '.*[Ss][OoÓó][Ff][IiÍí][AaÁá].*'

Esta expresión permite recuperar registros con variaciones ortográficas o de capitalización en el valor “Sofía”, aumentando así la robustez de la consulta.

No obstante, esta solución también presentaba retos: la complejidad de las expresiones hacía que los prompts exigieran una precisión muy alta por parte del modelo. Tuvimos que invertir tiempo en ajustar las instrucciones y entrenar bien los prompts para lograr que el modelo generara queries eficaces de forma consistente.

Finalmente, tras varias iteraciones, logramos alcanzar una tasa de accuracy satisfactoria, donde en la mayoría de los casos el modelo generaba consultas válidas y efectivas, incluso en contextos con datos inconsistentes o escasamente documentados.

 

Beneficios obtenidos

  • Acceso simplificado a datos: permite que cualquier persona, independientemente de sus conocimientos técnicos, interactúe con bases de datos y APIs de manera autónoma.
  • Ahorro de tiempo: automatiza la generación de consultas y APIs, eliminando la necesidad de escribir código manualmente y agilizando el acceso a información clave.
  • Precisión y confiabilidad: la generación automatizada minimiza los errores humanos, garantizando que las consultas y los datos expuestos sean precisos.
  • Flexibilidad y personalización: la posibilidad de revisar y ajustar las instrucciones generadas asegura que el sistema se adapte a las necesidades específicas de cada usuario.

 

Resultados del proyecto

Rendimiento del modelo

  • Aumento de la precisión en queries generadas automáticamente.
  • Mayor tasa de éxito en la ejecución de consultas.
  • Reducción de errores semánticos en los resultados.
  • Disminución de fallos por problemas de calidad del dato.

Rendimiento técnico

  • Mejora en el tiempo de respuesta end-to-end.
  • Optimización del uso de tokens por prompt.
  • Coste controlado por consulta generada.
  • Reducción de rechazos por exceso de tokens.

Experiencia de uso

  • Menor necesidad de modificar las consultas generadas.
  • Aumento en la satisfacción tras el uso de la herramienta.
  • Crecimiento sostenido en la adopción y uso recurrente de la solución.

Desempeño operativo

  • Ampliación de la cobertura de tablas documentadas.
  • Reducción del esfuerzo necesario para documentar nuevas tablas.
  • Uso equilibrado entre SQL y API interna según contexto.

Testing y evolución

  • Alta tasa de éxito en pruebas de regresión ante cambios.
  • Disminución del tiempo dedicado a ajustes de prompts.

 

La capacidad de convertir preguntas en lenguaje natural en instrucciones SQL o llamadas a APIs REST representa un cambio significativo en la forma en que las organizaciones acceden y gestionan sus datos. Esta solución elimina barreras técnicas, permitiendo que perfiles no técnicos interactúen de forma autónoma con la información.

Gracias a esta herramienta, las empresas pueden agilizar sus procesos, reducir la dependencia de equipos especializados para tareas repetitivas y fomentar un entorno más colaborativo y orientado a datos. En un contexto empresarial cada vez más competitivo, disponer de un acceso ágil y fiable a la información se traduce en mejores decisiones y mayor eficiencia operativa.

 

¿Quieres aprovechar el poder de los LLMs para afrontar tus retos de democratización de la información en tu empresa? Contamos con un equipo experto en IA Generativa y Data que han desarrollado GenIA Ecosystem, un ecosistema de soluciones propias de IA para afrontar cualquier desafío. ¡Cuéntanos tu proyecto!

behind the AI

¿Quieres más información sobre nuestros servicios de inteligencia artificial?

Contacta con nuestro equipo experto de Data e IA

    1 posts

    Data Scientist & AI Engineer
    Artículos relacionados

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    ¡No te pierdas nada!

    Te mantenemos al dia de tendencias y novedades sobre el futuro del trabajo, formas de hacer crecer tu negocio, liderazgo digital y muchas cosas más..

    Newsletter