Un sistema de análisis en lenguaje natural.
Una pregunta de entrada, SQL sobre el esquema real, un resultado, un gráfico. Lo difícil no es generar la consulta: es ser lo bastante seguro para apuntarlo a una base de datos de producción y lo bastante legible para que una respuesta equivocada se pueda depurar.
Una consulta generada es una consulta no confiable.
Un modelo de lenguaje que escribe SQL es un programa que acepta instrucciones de un usuario y emite código que se ejecuta contra una base de datos. Planteado así, la cuestión de seguridad se responde sola: el SQL generado es una entrada no confiable y hay que tratarlo exactamente igual de hostil que cualquier otra cosa que cruce una frontera de confianza, por razonable que parezca.
El segundo problema es una confianza de otro tipo. Un gráfico con una cifra y sin derivación visible no se puede refutar. El lector no puede distinguir una respuesta correcta de una errónea dicha con aplomo, y esta última es el modo de fallo real de esta categoría.
Los dos empujan en la misma dirección: la consulta es el producto, no un detalle de implementación. Se valida como código no confiable y se muestra como un resultado.
Los requisitos que salieron de ahí.
Cada uno da por hecho que el modelo acabará produciendo algo incorrecto, porque con suficientes consultas lo hará.
- El SQL generado, comprobado antes de llegar a la base de datos y no después
- Ejecución de solo lectura, con un límite a lo que puede costar una consulta
- La consulta mostrada al lector, no oculta detrás del gráfico
- Un proveedor de modelos que se pueda sustituir sin tocar a quien lo llama
Lo que tenía que ser cierto antes de ejecutar una consulta.
Cuatro decisiones, todas más caras cuanto más tarde se toman.
Presentadas como decisiones y no como funcionalidades, porque cada una tiene un contrario defendible. Esto es hacia qué lado se inclinó esta y por qué.
Validar la consulta analizada, no la cadena de texto
El SQL generado se analiza y se inspecciona como un árbol sintáctico antes de ejecutarse, de modo que lo que se comprueba es la sentencia que la base de datos ejecutará de verdad y no un texto que casualmente coincide con un patrón. Buscar patrones en SQL generado falla en cuanto un modelo formula algo de una manera que el patrón no anticipó, que es el único tipo de caso que importa.
Solo lectura, acotado, siempre
La ejecución va por una vía de solo lectura con un tiempo máximo por sentencia, de modo que en el peor caso una mala consulta es una consulta fallida y no una tabla modificada o una base de datos bloqueada por un recorrido descontrolado. Es la propiedad que hace defendible apuntar el sistema a datos reales.
Mostrar el SQL
La consulta generada se muestra y se puede editar junto a su resultado. Convierte una respuesta equivocada en una depurable, y es la diferencia entre una herramienta de la que un analista puede responder y una caja negra en la que tiene que confiar por completo o no usar.
El modelo queda detrás de una interfaz
La generación pasa por una abstracción de proveedor y no por el SDK de un fabricante al que se recurre directamente. Los modelos son la dependencia que más rápido cambia en el stack y la que más probablemente cambie de precio, quede obsoleta o sea superada; la interfaz es lo que convierte eso en un cambio de configuración en vez de una reescritura.
La decisión que importó.
Una decisión por proyecto, tomada con una alternativa real sobre la mesa. Aquí se nombra la alternativa, y también lo que costó decidir en su contra.
Mostrar la consulta, aunque el producto resulte menos mágico.
El SQL generado se muestra junto a su resultado y se puede editar y volver a ejecutar. El sistema no presenta el gráfico como la respuesta y se guarda la derivación para sí.
Es la decisión que importó porque determina qué es el producto. Ocultar la consulta hace una mejor demostración; mostrarla hace una herramienta de la que se puede responder.
- La alternativa
- Ocultarla. Pregunta de entrada, gráfico de salida, nada en medio. Es la interfaz más limpia, es lo que anuncia la categoría y es la versión que luce ante alguien que no escribe SQL, que es precisamente el comprador al que se vende este tipo de producto.
- Lo que costó
- La ilusión, y parte del público con ella. Una consulta visible recuerda que una máquina ha escrito código contra tu base de datos, y para un lector que no puede evaluarlo el panel es, en el mejor de los casos, ruido y, en el peor, una alarma. También deja a la vista cada unión torpe que produce el generador, así que el producto se juzga por una salida que preferiría no mostrar.
- Por qué la contrapartida se sostiene
- El modo de fallo de esta categoría no es un error, es una respuesta equivocada dicha con aplomo, y una cifra sin derivación visible no se distingue de una correcta. Ocultar la consulta elimina el único mecanismo con el que un lector podría llegar a darse cuenta. El coste se paga en pulido; la alternativa se paga la primera vez que alguien toma una decisión sobre una cifra que nunca fue correcta.
Aquí no aparece ninguna tasa de acierto, latencia ni cifra de éxito. El README del repositorio incluye números de ese tipo y nada los respalda, por lo que deliberadamente no se repiten en este sitio. Una contrapartida expuesta sin medición es un argumento, y esta página solo pretende ser un argumento. Lo mismo vale para su estado: es software que se ha construido y está en desarrollo, no un producto alojado, y /products indica su estado actual junto a su nombre.
El razonamiento, publicado.
Esta página describe una clase de problema y no un encargo para un cliente. Estos son los textos donde se desarrolla por completo el mismo razonamiento.
- ArtículoScripts de shell que escalanFallar con ruido en lugar de en silencio, a nivel del código de unión. Un sistema que se traga un error y devuelve una cifra de todos modos es exactamente el fallo alrededor del cual está escrito este proyecto.
- ServicioInfraestructura de IA y orquestación de agentesLa oferta permanente en la que encaja este proyecto, con lo que se entrega y lo que te aporta, oferta por oferta.
Pregúntanos por cualquiera de ellos.
Los detalles no están en esta página. Pídelos directamente, o envíanos el problema que de verdad necesitas resolver.