Título: Generación de SQL con Twilio usando modelado de datos en Looker con Amazon Bedrock

Elena Digital López

Las principales empresas de hoy en día confían en la Plataforma de Compromiso con el Cliente (CEP) de Twilio para construir relaciones directas y personalizadas con sus clientes en todo el mundo. Twilio permite a las compañías utilizar comunicaciones y datos para añadir inteligencia y seguridad en cada paso del viaje del cliente, desde ventas y marketing hasta crecimiento, servicio al cliente y muchos más casos de uso de compromiso, de manera flexible y programática. A lo largo de 180 países, millones de desarrolladores y cientos de miles de empresas usan Twilio para crear experiencias personalizadas para sus clientes.

Como uno de los mayores clientes de AWS, Twilio utiliza servicios de datos, inteligencia artificial (IA) y aprendizaje automático (ML) para manejar sus cargas diarias de trabajo. Dado que los datos son la capa fundamental para todas las aplicaciones de IA y ML generativas, administrar y recuperar la información correcta puede ser complejo, especialmente para analistas de datos que trabajan con grandes lagos de datos y consultas SQL complejas. Para abordar esta problemática, Twilio se asoció con AWS para desarrollar un asistente virtual que ayuda a sus analistas de datos a encontrar y recuperar datos relevantes del lago de datos de Twilio al convertir preguntas de usuario formuladas en lenguaje natural a consultas SQL.

Este asistente virtual utiliza Amazon Bedrock, un servicio de IA generativa totalmente gestionado que proporciona acceso a modelos fundamentales de alto rendimiento y capacidades como Generación Aumentada por Recuperación (RAG). RAG optimiza las salidas de los modelos de lenguaje ampliando las capacidades de los modelos a dominios específicos o datos internos de una organización para respuestas personalizadas.

Twilio quería proporcionar un asistente de IA para ayudar a sus analistas de datos a encontrar datos en su lago de datos. Utilizó la capa de metadatos (información de esquemas) sobre su lago de datos, consistente en vistas (tablas) y modelos (relaciones) de su herramienta de informes de datos, Looker, como la fuente de verdad. Looker es una plataforma empresarial para aplicaciones de BI y datos que ayuda a los analistas de datos a explorar y compartir insights en tiempo real.

Twilio implementó RAG usando Anthropic Claude 3 en Amazon Bedrock para desarrollar una herramienta de asistente virtual llamada AskData para sus analistas de datos. Esta herramienta convierte preguntas de analistas de datos formuladas en lenguaje natural en una consulta SQL usando la información del esquema disponible en los modelos y vistas de LookML. Los analistas pueden ejecutar directamente esta consulta SQL generada, ahorrándoles tiempo para identificar las tablas con información relevante y luego escribir una consulta SQL para recuperar dicha información.

La herramienta AskData proporciona facilidad de uso y eficiencia a sus usuarios. Los usuarios necesitan información precisa sobre los datos de manera rápida y accesible para tomar decisiones comerciales. Proporcionar una herramienta que minimice el tiempo que pasan encontrando tablas y escribiendo consultas SQL les permite enfocarse más en los resultados comerciales y menos en tareas logísticas. Los usuarios típicamente recurren al canal de soporte de ingeniería cuando tienen preguntas sobre datos incrustados en el lago de datos o si no pueden acceder a ellos usando diversas consultas. Tener un asistente de IA puede reducir el tiempo de ingeniería dedicado a responder estas consultas y proporcionar respuestas más rápidamente.

La solución consiste en usar una búsqueda semántica en los metadatos de LookML para recuperar las tablas y vistas correspondientes a las preguntas del usuario, utilizar modelos fundamentales en Amazon Bedrock para generar consultas SQL precisas basadas en la información de las tablas y vistas recuperadas, crear una aplicación web usando LangChain y Streamlit, y perfeccionar la aplicación existente usando métodos estratégicos como ingeniería de prompts y optimización de parámetros de inferencia.

El proceso de desarrollo fue facilitado por varios servicios de AWS, particularmente Amazon Bedrock, que facilitó la integración de LLM para respuestas de consultas y Amazon RDS, que sirvió como nuestras tiendas vectoriales.

Para implementar la solución, es necesario tener una cuenta de AWS, acceso a modelos en Amazon Bedrock, y familiaridad con DynamoDB, Amazon RDS y Amazon S3. La solución también requiere la creación de embeddings vectoriales y el uso de modelos fundamentales como Anthropic Claude 3 que puede manejar ventanas de contexto expansivas y demostrar habilidades de razonamiento avanzadas.

El desarrollo de la aplicación web fue realizado usando LangChain y Streamlit, con LangChain simplificando la creación de aplicaciones utilizando LLMs y Streamlit para desarrollar el frontend. La implementación de un engine de chat utilizando DynamoDB para almacenar el historial de chat mejoró la interacción y la fiabilidad del sistema.

A lo largo del desarrollo, se tomaron medidas para asegurar la precisión y minimizar errores, incluyendo ajustes en la configuración del LLM y la incorporación de retroalimentación del usuario.

Finalmente, este artículo ilustra cómo usar la IA generativa para mejorar significativamente la eficiencia de los analistas de datos, construyendo almacenes vectorizados para vistas y modelos usando el marco RAG para recuperar información pertinente y proporcionar contexto al LLM, que luego genera consultas SQL sin problemas.

Scroll al inicio