Así que podemos generar una estructura similar basada en los datos disponibles y los componentes de UI a mano. Vamos a explorar cómo podemos hacer eso usando un framework llamado LangChain.
LangChain es un framework de código abierto para construir aplicaciones de modelos de lenguaje. Con LangChain, podemos interactuar con varias fuentes de datos, modelos y herramientas, orquestando el flujo de datos y generación. También funciona bien junto con el paquete de AI.
Por fuente de datos, básicamente podemos referirnos a diferentes cosas. Puede ser una API, un punto final gráfico, una base de datos, un archivo, o incluso una herramienta de terceros. LangChain puede leer la estructura de datos de diferentes fuentes de datos, interactuar con ellas a través de una interfaz uniforme, y pasarlas al modelo de lenguaje.
Ahora, consultemos la base de datos y proporcionemos datos a nuestros componentes. Primero, necesitamos crear un objeto de fuente de datos que se usará para conectar a nuestra base de datos. Aquí, estamos usando solo una base de datos local. A continuación, necesitamos crear una plantilla de prompt que guiará al modelo para generar la salida correcta. Describiremos la entrada y salida usando marcadores de posición para todos los parámetros.
Nuestro objetivo aquí es incitar al modelo a producir una consulta SQL basada en la pregunta del usuario. El contexto para el prompt es proporcionado automáticamente por el esquema de la base de datos. Así que, si el usuario pide los dos álbumes más vendidos, el modelo sabrá qué tablas consultar. Una vez que eso esté configurado, podemos crear una cadena que tome el prompt entrante, lo convierta en una consulta SQL la ejecute, y devuelva el resultado.
Finalmente, podemos invocar esta cadena usando una pregunta y obtener la respuesta de vuelta como una cadena. Es bastante obvio, pero tengo que mencionar que dado que estamos interactuando directamente con la base de datos, necesitamos asegurarnos de que el modelo tenga permisos limitados. Las operaciones de base de datos no siempre son predecibles, y el modelo a veces puede ser incitado. Sin embargo, podemos mejorar los resultados usando un prompt más detallado, estricto y específico.
Nuestro último paso es agregar otro enlace en la cadena que convierta la salida en un objeto JSON Ahora, tenemos una cadena completa que toma la pregunta del usuario, crea una consulta SQL, la ejecuta y devuelve los resultados en formato JSON. Su enlace en la cadena es modular y puede ajustarse según sea necesario. Una vez que estemos satisfechos con el analizador de datos, podemos combinar todo y usar el adaptador correcto para conectar nuestra cadena con el módulo de AI. La pieza final del rompecabezas es forzar al modelo a mapear la respuesta de datos con la intención del usuario.
Por intención, nos referimos al resultado esperado de la consulta de base de datos mostrado en la interfaz visual, ampliamente aceptado por el usuario final. Por ejemplo, si estamos consultando múltiples filas, esperaríamos ver una vista de tabla. Para datos de series temporales, por otro lado, un gráfico sería más apropiado, y así sucesivamente. Esta vez, estamos dirigiendo al modelo a trabajar como un diseñador.
Comments