Report Manager
ENES

← Todos los articulos

¿Qué necesita saber la IA de tu base de datos para acertar con el SQL?

· Toni Martir, arquitecto de software

Alguien pide al asistente de IA el informe de ventas de octubre por cliente. La IA escribe la sentencia SQL (la orden técnica que saca los datos de la base de datos), el informe sale sin un solo error y el total no cuadra con el de contabilidad: la sentencia ha sumado los importes con IVA y ha contado las facturas anuladas.

La IA no ha leído mal: ha leído lo único que tenía, el catálogo de la base de datos, que es la lista de sus tablas y columnas con el tipo de cada columna. Eso no dice qué significa cada dato. Para acertar necesita, sobre todo, tres cosas escritas en palabras: qué es cada columna, cómo se unen las tablas y qué quiere decir cada código.

El informe de ventas de octubre: lo que dice el catálogo y lo que le falta a la IA

FACTURAS.TOTAL El catálogo dice: un número con dos decimales
sin descripción: puede sumar el IVA descrita: «total con IVA; ventas en BASE»
FACTURAS y LINEAS El catálogo dice: nada, la relación no está declarada
sin relación: puede unirlas sólo por el número descrita: «se unen por serie y número»
FACTURAS.EST El catálogo dice: un texto de una letra
sin valores: puede contar las anuladas descrita: «E emitida, A anulada»

Un ejemplo con tres columnas de una base de facturación. Si la factura 125 existe en la serie A y en la serie R, unir las líneas sólo por el número suma a cada factura las líneas de la otra. Las tres sentencias se ejecutan sin error: la cifra sale mal sin avisar.

Lo que la IA recibe

Para escribir la sentencia, la IA parte del esquema: la descripción de la base de datos que recibe con cada pregunta. Oracle detalla lo que su asistente, Select AI, manda a la IA: el nombre de cada tabla, sus columnas y los comentarios que tengan escritos. Sin comentarios quedan los nombres, y en las bases de datos con las que se montó BIRD, una prueba pública de estos asistentes, los nombres de tablas y columnas «van a menudo abreviados» y cuesta entenderlos.

Unas líneas de explicación, veinte aciertos más

BIRD midió también cuánto pesa lo que falta. Reúne 95 bases de datos grandes, de 37 ámbitos profesionales, y cada pregunta trae una pista escrita por expertos: por ejemplo, que en su base de baloncesto un pívot se guarda como pos = C. En las pruebas que publicaron sus autores en 2023, GPT-4 dio el resultado correcto en 34,88 de cada 100 preguntas sin las pistas, y en 54,89 con ellas. Es el mismo modelo, con veinte respuestas buenas más de cada cien.

Qué hay que escribirle

Databricks compara su asistente con un analista nuevo que llega a la empresa: para entender qué representan los datos, se apoya en las descripciones de las tablas y de las columnas. Oracle enumera lo que conviene describir, entre otras cosas: para qué es cada columna, qué significa en el negocio, en qué unidades va y qué valores admite, y por qué claves se unen unas tablas con otras.

Esas descripciones pueden guardarse en la propia base de datos, como comentarios de cada tabla y columna: Oracle los añade a lo que recibe la IA si se activa una opción. Se escriben una vez y llegan con cada pregunta. Basta con describir las tablas del área de la pregunta, porque la base entera no cabe en lo que la IA lee de una vez, como expliqué a propósito de RAG.

Describir el esquema reduce los errores, pero la cifra se sigue comprobando; cómo hacerlo sin ser informático lo conté en cómo saber si la cifra de la IA es cierta.

Entonces, ¿qué necesita saber?

Lo que los nombres no dicen: qué es cada columna, cómo se unen las tablas y qué significa cada código. Si se escribe en palabras, la IA lo recibe con el esquema y acierta más.


El diseñador de Report Manager tiene, desde la versión 4.0.22 (notas en inglés), esquemas locales para su copiloto de IA: un archivo en tu ordenador, leído del catálogo de cada conexión, donde se describen las tablas, las columnas, las relaciones y los valores permitidos. Si la base de datos es de Odoo, SAP Business One, SAP R/3, Business Central o Dynamics 365 Finance and Operations, el esquema se importa ya hecho de la biblioteca de esquemas, que reconoce el sistema por las tablas de la base de datos. En el editor SQL de cada conjunto de datos del informe se elige el esquema local o uno de la nube de Reportman AI.

Fuentes

Toni Martir, arquitecto de software · · fuentes comprobadas el