Video Summary and Transcription
La IA es un cambio revolucionario que ayuda a las empresas a resolver problemas reales y a hacer las aplicaciones más inteligentes. Los vectores permiten la búsqueda semántica, lo que nos permite encontrar información contextualmente relevante. Construiremos un sitio de documentación impulsado por IA que responde preguntas, proporciona información contextualmente relevante y ofrece enlaces para una exploración más profunda. Para habilitar la búsqueda vectorial con MongoDB, utilizamos el método LingChain para conectarnos a MongoDB, creamos incrustaciones vectoriales para las consultas de los usuarios y encontramos documentos relacionados utilizando la referencia marginal máxima. Únete a la masterclass para una guía completa de principio a fin e integra la Búsqueda Vectorial de MongoDB en tu próxima aplicación de IA basada en React.
1. Introducción a la IA y React
La IA es un cambio revolucionario que ayuda a las empresas a resolver problemas reales y a hacer las aplicaciones más inteligentes. Exploraremos la demanda de aplicaciones inteligentes, las limitaciones de los LLM y cómo superarlas. Utilizando GPT y RAG, podemos mejorar las aplicaciones de React con capacidades más inteligentes utilizando vectores como bloques de construcción para representar datos complejos.
Artificial intelligence. Es solo una moda, ¿verdad? Va a pasar como un blockchain. Bueno, en realidad no lo creo. De hecho, la IA está lejos de ser una moda. Es un cambio revolucionario. Está ayudando a las empresas a resolver problemas reales y a hacer a los empleados e individuos más productivos. Así que hablemos de por qué la IA importa ahora más que nunca y cómo la IA puede llevar tus aplicaciones de react al siguiente nivel. Soy Jesse Hall, un defensor senior de los desarrolladores en MongoDB. También podrías conocerme de mi canal de YouTube, Code Stacker. Así que a lo largo de esta charla, vamos a explorar la demanda de aplicaciones inteligentes, casos de uso prácticos, limitaciones de los LLM, cómo superar estas limitaciones, la pila de tecnología que vamos a usar para construir una aplicación inteligente de react y cómo integrar GPT, hacerla inteligente y optimizar la user experience. Hay una gran demanda de incorporar inteligencia en nuestras aplicaciones para hacer estas aplicaciones modernas, altamente atractivas y para hacer experiencias diferenciadoras para cada uno de nuestros usuarios. Tenemos algo llamado Generative Pretrained Transformers o GPT. Estos grandes modelos de lenguaje realizan una variedad de tareas desde el procesamiento de lenguaje natural hasta la generación de contenido, e incluso algunos elementos de razonamiento de sentido común, y son los cerebros que están haciendo nuestras aplicaciones más inteligentes. Pero hay una trampa. Los GPT son increíbles, pero no son perfectos. Una de sus principales limitaciones es su base de conocimientos estática. Solo saben lo que se les ha enseñado. Hay integraciones con algunos modelos ahora que pueden buscar en Internet información más nueva, pero ¿cómo sabemos que esa información que están encontrando en Internet es precisa? Pueden alucinar. Muy confiadamente, podría añadir. Entonces, ¿cómo podemos minimizar esto? Ahora no pueden acceder o aprender de los datos propietarios en tiempo real, tus data. Y eso es una gran limitación, ¿no te parece? La necesidad de datos en tiempo real, propietarios y específicos del dominio es por lo que no podemos confiar en los LLM tal como están. Bueno, esto nos lleva a el foco de nuestra charla de hoy. No se trata simplemente de aprovechar el poder de GPT en React, se trata de llevar tus aplicaciones de React al siguiente nivel haciéndolas inteligentes y conscientes del contexto. Vamos a explorar cómo mejorar las aplicaciones de React con capacidades más inteligentes utilizando grandes modelos de lenguaje y potenciar aún más esas capacidades con la generación aumentada de recuperación o RAG. Ahora, ¿qué implica la generación aumentada de recuperación? Primero, los vectores. ¿Qué son los vectores? Estos son los bloques de construcción que nos permiten representar datos complejos multidimensionales en un formato que es fácil de manipular y entender. Ahora la explicación más simple es que un vector es una representación numérica de los data. Un array de números y estos números son coordenadas en un espacio de n dimensiones donde n es la longitud del array. Así que, sin embargo, muchos números tenemos en el array es cuántas dimensiones tenemos. Ahora, también escucharás
2. Vectores y Generación Aumentada de Recuperación
Los vectores permiten la búsqueda semántica, lo que nos permite encontrar información contextualmente relevante. Se pueden crear a través de un codificador y utilizarse en la generación aumentada de recuperación. Los datos privados se convierten en incrustaciones y se almacenan en una base de datos vectorial. Las consultas de los usuarios se vectorizan y se utilizan para la búsqueda vectorial para encontrar información relacionada.
a los vectores se les llama incrustaciones vectoriales o simplemente incrustaciones. Así que aquí tienes un ejemplo real de vectores en uso. Cuando vas a una tienda y le preguntas a un trabajador dónde encontrar algo, muchas veces te van a decir que vayas al pasillo 30, bahía 15. Y eso es un vector bidimensional. Y también notamos en las tiendas que los artículos similares se colocan cerca uno del otro para facilitar la búsqueda y el hallazgo. Las bombillas no están simplemente dispersas por toda la tienda, están colocadas estratégicamente para ser encontradas fácilmente. Y entonces, de nuevo, ¿qué hace tan especiales a los vectores? Permiten la búsqueda semántica. En términos más sencillos, nos permiten encontrar información que es contextualmente relevante, no sólo una búsqueda por palabras clave. Y la fuente de data no se limita sólo al texto, puede ser también imágenes, video o audio. Todos estos pueden ser convertidos en vectores.
Entonces, ¿cómo creamos estos vectores? Bueno, esto se hace a través de un codificador. El codificador define cómo se organiza la información en el espacio virtual. Así que ahora vamos a relacionar todo esto con la generación aumentada de recuperación. Así que primero tomamos nuestros data privados o personalizados data, lo que sea, y generamos nuestras incrustaciones utilizando un modelo de incrustación y luego almacenamos esas incrustaciones en una base de datos vectorial database. Y una vez que tenemos nuestras incrustaciones para nuestros data personalizados, ahora podemos aceptar consultas de los usuarios para encontrar información relevante dentro de nuestros data personalizados. Ahora, para hacer esto, enviamos la consulta en lenguaje natural del usuario a un LLM, que vectoriza la consulta, y luego utilizamos la búsqueda vectorial para encontrar información que esté estrechamente relacionada,
3. Construyendo una Aplicación REACT con IA y Next.js
Construiremos un sitio de documentación impulsado por IA que responde preguntas, proporciona información contextualmente relevante y ofrece enlaces para una exploración más profunda. Para empezar, creamos incrustaciones para nuestros datos personalizados escritos en archivos de rebajas. Utilizamos el divisor de texto de la cadena Lang, la tienda vectorial MongoDB Atlas, las incrustaciones de IA abierta, el cliente MongoDB y .env. Después de preparar la conexión MongoDB y procesar los archivos de documentación, almacenamos las incrustaciones en nuestra colección MongoDB. Configuramos un índice de búsqueda en la colección utilizando una configuración JSON. Finalmente, configuramos la aplicación Next.js, utilizando el SDK de IA de Vercel, LingChain y los modelos de chat de OpenAI.
semánticamente relacionado con la consulta del usuario, y luego devolvemos esos resultados. Así que vamos a echar un vistazo a cómo construir una aplicación REACT con estas tecnologías. Y esto es lo que vamos a construir, un sitio de documentación impulsado por IA. Ahora, este sitio no sólo responderá preguntas sino que también proporcionará información contextualmente relevante, resumirá respuestas y proporcionará enlaces a páginas relevantes para profundizar. Ahora, lo primero que necesitamos hacer es crear incrustaciones para nuestros datos personalizados data. Ahora, ya que este chatbot va a referenciar nuestra documentación personalizada, asumiremos que está escrita en archivos de rebajas. Y así esta función de incrustación es sólo una aplicación de nodo, un solo archivo con menos de 60 líneas de código, y vamos a construir nuestra aplicación Next.js. Tenemos el divisor de texto de la cadena Lang, la tienda vectorial MongoDB Atlas, las incrustaciones de IA abierta, el cliente MongoDB, y luego .env. Debajo de eso, prepararemos nuestra conexión MongoDB utilizando nuestra cadena de conexión y obtendremos la colección que queremos usar. Y luego necesitamos procesar nuestros archivos de documentación. Tenemos que dividirlos en trozos que el codificador pueda usar. Así que crearemos un divisor utilizando el divisor de texto de caracteres recursivos de la cadena Lang para dividir los archivos de rebajas que estamos obteniendo. Y luego crearemos nuestra salida, esperando el divisor, creando la función de documentos, pasándole nuestros documentos. Y por último, utilizaremos la cadena Lang para almacenar estas incrustaciones en nuestra colección MongoDB. Estamos pasando a MongoDB Atlas vector search la salida, creando nuevas incrustaciones de IA, y luego dándole los metadatos para la colección, nombre del índice, clave de texto y clave de incrustación. Estas claves son los campos que contienen el texto original y los vectores de incrustación. Y este es un ejemplo de lo que termina en nuestra base de datos. Tenemos nuestro texto original en formato de rebajas, nuestras incrustaciones vectoriales y metadatos que identifican la parte del documento de la que proviene este texto . Y una última cosa que tenemos que hacer para preparar los datos para la búsqueda es configurar un índice de búsqueda en nuestra colección en MongoDB. Puedes hacerlo a través de la interfaz de usuario de Atlas utilizando esta configuración JSON. Así que aquí estamos especificando las dimensiones del modelo de codificador que estamos utilizando. En este caso, es 1536. Y luego también puedes definir la similitud y el tipo a utilizar. Bueno, ahora la parte divertida, vamos a configurar la aplicación Next.js. Si quieres, puedes utilizar el iniciador LingChain de Next.js, que ya tiene todo configurado excepto para el controlador de MongoDB, así que también necesitarás instalar MongoDB con npm. A continuación, añade tu clave de API de OpenAI al archivo de variables de entorno. Ahora esta es la ruta de chat predeterminada proporcionada con la plantilla LingChain de Next.js. Podemos ver que utiliza el SDK de IA de Vercel junto con LingChain, los modelos de chat de OpenAI y algunos ayudantes de esquema de LingChain. Ahora, más abajo en este manejador de rutas, estamos creando un chat de OpenAI, y aquí podemos especificar qué modelo nos gustaría utilizar. También estamos configurando la transmisión en verdadero porque queremos que la respuesta comience a poblarse en la interfaz de usuario lo más rápido posible y se transmita al usuario, y luego devuelve la respuesta de transmisión. Y así en esta ruta es donde necesitamos inyectar nuestros propios datos personalizados data.
4. Uso de la Búsqueda Vectorial de MongoDB con LingChain
Para habilitar la búsqueda vectorial con MongoDB, utilizamos el método LingChain para conectarnos a MongoDB, crear incrustaciones vectoriales para las consultas de los usuarios y encontrar documentos relacionados utilizando la referencia marginal máxima. Incluimos los resultados de la búsqueda, la pregunta del usuario y el contexto en el LLM para recibir una respuesta. La pregunta, '¿Cómo empiezo con MongoDB y Node.js?' se responde con un resumen y enlaces a páginas de documentación relevantes. Únete a la masterclass para una guía completa de principio a fin e integra la Búsqueda Vectorial de MongoDB en tu próxima aplicación de IA basada en React.
Para hacer eso, vamos a utilizar el método de búsqueda vectorial de LingChain MongoDB. En esta ruta, vamos a conectarnos a MongoDB tal como lo hicimos antes, y vamos a pasar a esto la pregunta que hizo el usuario. Y luego usaremos el método de búsqueda vectorial de LingChain MongoDB Atlas para crear incrustaciones vectoriales para la pregunta del usuario. Y luego cuando hacemos la búsqueda, estamos utilizando algo llamado referencia marginal máxima para encontrar los documentos relacionados. Podemos especificar el número de resultados a buscar y cuántos de los mejores resultados a devolver. Esto nos permite refinar cuán precisos queremos ser. Ahora, de vuelta en nuestra ruta de chat, vamos a obtener el último mensaje del usuario y pasarlo a la nueva ruta de búsqueda vectorial que acabamos de crear. Y ahora podemos incluir los resultados de esa búsqueda y pasar todo al LLM estándar. Incluiremos algo de contexto, los resultados de la búsqueda vectorial y la pregunta del usuario. Y finalmente, reemplazamos el último mensaje del usuario con nuestro mensaje actualizado que incluye nuestra información y contexto personalizados. Eso luego se pasa al LLM y recibimos nuestra respuesta de vuelta. Y estos son los resultados. La pregunta es, ¿cómo empiezo con MongoDB y Node.js? Responde con un resumen y enlaces a páginas específicas en la documentación para obtener más ayuda. Ahora, si quieres construir algo como esto desde el principio hasta el final, asegúrate de asistir a mi masterclass. Puedes obtener más detalles sobre cómo inscribirte en eso en el sitio web de la conferencia. Ahora recuerda, el futuro no es sólo acerca de una IA más inteligente, sino también acerca de cuán bien está integrada en plataformas centradas en el usuario, como tu próximo proyecto basado en React. Así que asegúrate de probar la Búsqueda Vectorial de MongoDB en tu próxima aplicación de IA. Gracias, y espero que esto haya sido útil.
Comments