Ya ejecuté NPX create next app utilizando el ejemplo de next lane chain. Instalé MongoDB, la integración de lane chain MongoDB, React markdown para darle estilo y .env porque vamos a usar un script de nodo para ejecutar nuestra ingestión.
También tengo una clave de API abierta de AI y mi cadena de conexión de MongoDB Atlas en mis variables de entorno. Así que vamos a ver esta aplicación. Esto es el ejemplo tal cual, sin ninguna alteración. Bueno, agregué el modo oscuro para no deslumbrar a todos, así que de nada. Vamos a probar para asegurarnos de que funcione, digamos qué es MongoDB y con suerte el Wi-Fi funciona, y bien, ahí vamos. Y AI nos responde con una respuesta bastante buena. Así que funciona de inmediato. Genial.
Echemos un vistazo al code. Tengo este directorio de documentos falsos aquí, y usé chat GPT para ayudarme a crear una documentación falsa para una biblioteca de JavaScript falsa llamada fancy widget.js. Así que tenemos el readme, el uso, la licencia, la instalación, la contribución, el registro de cambios, la referencia de la API. Tenemos toda la documentación que esperarías de una biblioteca de JavaScript. Entonces lo que vamos a hacer es tomar estos archivos de markdown y vamos a transformarlos en vectores, embeddings de vectores, y luego los vamos a guardar en nuestra base de datos de vectores. Vamos a usar MongoDB para la base de datos de vectores. Y luego podemos usar, durante la búsqueda de vectores, esto para mejorar las capacidades de LLM para que pueda responder preguntas basadas en esta información.
Muy bien, vamos a empezar a hacer eso. Así que aquí en la raíz, voy a crear un nuevo archivo. Lo vamos a llamar create embeddings.mjs, y luego vamos a escribir algo aquí. Vamos a importar nuestras promesas del sistema de archivos desde recursive character text splitter, y luego importar los embeddings de AI abiertos desde lang chain open AI, y luego nuestro cliente de Mongo desde MongoDB, y luego nuestra búsqueda de vectores de MongoDB Atlas desde lang chain, y luego configuraremos nuestros clientes de Mongo, obteniendo nuestra variable de entorno para nuestra cadena de conexión.
El nombre de nuestra base de datos será documentos, el nombre de la colección será embeddings. Configuraremos nuestra colección, luego obtendremos nuestro directorio de documentos, esos documentos falsos, y luego obtendremos los archivos de esos documentos, y luego console loguearemos los nombres de los archivos, y luego el nombre del archivo, recorreremos esos nombres de archivo, obtendremos cada documento. Después de leer cada documento, luego console loguearemos que estamos vectorizando el documento, y luego nuestro separador usará nuestro separador de texto de caracteres recursivos de lang chain, y los dividiremos en diferentes partes, y luego los guardaremos y almacenaremos en MongoDB usando la búsqueda de vectores de MongoDB Atlas. Crearemos esos embeddings, le diremos qué colección, qué nombre de índice, qué clave de texto y qué clave de embedding usar, y luego console loguearemos que hemos terminado, cerraremos la conexión a MongoDB.
Y hay un pequeño error tipográfico aquí. Por supuesto, eso no sucedió en la práctica. Y por supuesto, no estaba escribiendo porque eso era una extensión de VS code. Esto debería ser import recursive character text splitter. Así que voy a copiar eso.
Comments