Deja que la IA Sea Tus Documentos

Rate this content
Bookmark

Desata el poder de la IA en tu documentación con esta masterclass práctica. En esta sesión interactiva, te guiaré a través del proceso de crear un sitio de documentación dinámica, potenciado con la inteligencia de la IA (ChatGPT).

Imagina un mundo donde no tienes que buscar en páginas de documentación para encontrar esa línea de código esquiva. Con esta solución impulsada por la IA, obtendrás respuestas precisas, resúmenes concisos y enlaces relevantes para una exploración más profunda, todo al alcance de tu mano.

Esta masterclass no es solo sobre aprender; es sobre hacer. Ensuciarás tus manos con algunas de las tecnologías más buscadas en el mercado hoy en día: Next.js, shadcn-ui, OpenAI, LangChain y MongoDB Vector Search.

135 min
17 Nov, 2023

AI Generated Video Summary

Esta masterclass explora la demanda de construir inteligencia en las aplicaciones y las limitaciones de los modelos de lenguaje. Cubre la integración de GPT con aplicaciones React utilizando generación aumentada de recuperación (RAG) y búsqueda vectorial. La masterclass proporciona orientación sobre cómo configurar MongoDB Atlas y OpenAI, crear incrustaciones y configurar la aplicación. También se proporcionan consejos para solucionar problemas y ejemplos de código. En general, la masterclass enfatiza la importancia de la ingeniería de prompts, la búsqueda semántica y los resultados personalizados en aplicaciones impulsadas por IA.

1. Introducción a la IA y React

Short description:

Bienvenidos a la masterclass sobre el desarrollo de aplicaciones de IA y React. Exploraremos la demanda de aplicaciones inteligentes, casos de uso prácticos, limitaciones de los LLMs y cómo integrar GPT para optimizar la experiencia del usuario. Acompáñame mientras incorporamos IA en una aplicación React y aprendemos cómo puede llevar tu aplicación al siguiente nivel.

Bienvenidos a todos. Así que, artificial intelligence, de eso estamos aquí para hablar. Es solo una moda, ¿verdad? Bueno, en realidad, no creo que sea una moda. Han habido muchas cosas que han venido y se han ido, y ha habido modas, por supuesto, pero artificial intelligence, en realidad está ayudando a las empresas. Está ayudando a resolver problemas reales, y me atrevo a desafiarte a encontrar una situación o una industria donde artificial intelligence no pueda ayudar en algún grado.

Así que de eso es de lo que vamos a hablar hoy, por qué la IA es ahora más importante que nunca, y cómo puede ayudarte a llevar tu aplicación React al siguiente nivel. Así que a lo largo de esta masterclass, vamos a construir e incorporar IA en una aplicación React que solo responde preguntas de la documentation que le proporcionamos. Así que nuestros propios data.

Así que soy Jesse Hall, un defensor principal de los desarrolladores en MongoDB. También puedes conocerme por mi canal de YouTube, CodeStacker. y así que si no tuviste la oportunidad de ver la charla que di el miércoles, que fue transmitida, el comienzo de esto va a ser una versión más corta de eso, solo para asegurarnos de que todos estamos en la misma página, sabemos de qué estamos hablando, y qué vamos a estar construyendo a lo largo del resto de esta masterclass. Así que vamos a ver la demanda de aplicaciones inteligentes casos de uso prácticos, limitaciones de los LLMs, cómo podemos superarlas, la tecnología que vamos a usar en esta aplicación react y luego cómo integrar GPT y hacerla más inteligente y optimizarla para la experiencia específica de nuestros usuarios y luego para mostrarles el horario de lo que va a suceder a lo largo de esta masterclass la introducción va a ser de unos 15 minutos y luego vamos a ver nuestros prerrequisitos que necesitamos para empezar a asegurarnos de que todos están al día de nuevo, esto es una masterclass, así que definitivamente te animo a que sigas y hagas lo

2. Resumen de la Masterclass

Short description:

En esta parte, nos aseguraremos de que todos estén al día y ayudaremos a configurar la aplicación. Cubriremos la búsqueda en Atlas, la búsqueda vectorial, la creación de incrustaciones utilizando OpenAI, la implementación de RAG y dejaremos tiempo para preguntas y respuestas.

trabajo real en la masterclass. La experiencia práctica es la forma en que me gusta aprender. Por eso es que amo las masterclasses. Así que vamos a asegurarnos de que todos estén al día. Nuevamente, daré a todos tiempo para asegurarse de que su entorno esté configurado. Y luego vamos a configurar la aplicación. Vamos a entender la búsqueda en Atlas porque eso es lo que vamos a usar para buscar, usar la búsqueda vectorial. Y vamos a crear nuestras incrustaciones utilizando OpenAI. Vamos a crear un índice de búsqueda y luego implementar RAG en nuestra aplicación. Y luego al final, dejaré algo de tiempo para preguntas y respuestas. Por supuesto, nuevamente, haga preguntas durante todo el proceso. Pero luego al final, si tienes alguna pregunta extra, me quedaré por eso.

3. Demanda de Construcción de Inteligencia

Short description:

Existe una gran demanda de construcción de inteligencia en las aplicaciones para crear experiencias modernas y atractivas. Los modelos impulsados por IA aumentan la participación del usuario y permiten decisiones empresariales más rápidas y precisas. La IA se utiliza en diversas industrias como el comercio minorista, la atención médica, las finanzas y la fabricación para trabajar con datos frescos y lograr objetivos en tiempo real.

Entonces, existe una gran demanda de construcción de inteligencia en nuestras aplicaciones para hacer estas aplicaciones modernas y altamente atractivas que crean experiencias diferenciadoras para cada uno de nuestros usuarios. Experiencias personalizadas. Podrías usarlo para la detección de fraudes, chatbots, recomendaciones personalizadas y muchas más situaciones. Y para competir y ganar, necesitamos hacer nuestras aplicaciones más inteligentes y descubrir información más rápidamente.

Las aplicaciones más inteligentes utilizan modelos impulsados por IA para actuar de forma autónoma para el usuario. Y los resultados son dobles. En primer lugar, tus aplicaciones impulsarán una ventaja competitiva al profundizar la participación y satisfacción del usuario a medida que interactúan con tu aplicación. En segundo lugar, tus aplicaciones desbloquearán una mayor eficiencia y rentabilidad al tomar decisiones empresariales inteligentes más rápidamente con data más frescos y precisos. Casi todas las aplicaciones en el futuro van a utilizar IA de alguna manera. La IA no va a esperar a nadie. Para mantenernos competitivos, necesitamos construir inteligencia en nuestras aplicaciones para obtener estos ricos conocimientos de nuestros data.

Y entonces la IA se está utilizando para alimentar tanto ese aspecto de nuestra aplicación orientado al usuario como esos data frescos y los conocimientos que obtenemos de estas interacciones van a impulsar un modelo de decisión empresarial más eficiente. Entonces, hay muchos, muchos casos de uso, pero aquí hay solo algunos casos de uso para la IA. Comercio minorista, atención médica, finanzas, fabricación. Y aunque estos son diferentes casos de uso, todos tienen un enfoque unificado por su necesidad crítica de trabajar con los data más frescos para lograr sus objetivos en tiempo real. Entonces, todos consisten en aplicaciones impulsadas por IA que impulsan la experiencia orientada al usuario y luego conocimientos predictivos, haciendo uso de esos data frescos y para impulsar automáticamente procesos empresariales más eficientes.

4. Evolución de la IA e Introducción a RAG

Short description:

Comenzamos con análisis y AI por lotes, luego pasamos a AI en tiempo real y ahora a AI generativa. Los GPT tienen limitaciones debido a su base de conocimientos estática e incapacidad para acceder a datos propietarios en tiempo real. Para superar estas limitaciones, necesitamos hacer que los modelos sean adaptables y estén alineados con nuestras necesidades. En esta masterclass, exploraremos cómo aumentar las aplicaciones de React con modelos de lenguaje grande y mejorarlos con generación aumentada de recuperación (RAG). RAG implica entender vectores, que representan datos multidimensionales complejos en un formato manipulable.

Pero, ¿cómo llegamos a este punto en la IA? Así que vamos a tener una pequeña lección de historia aquí en la IA. Comenzamos con solo análisis. En los primeros días de la informática, las aplicaciones dependían principalmente de los análisis para dar sentido a los data. Y esto implicaba analizar grandes conjuntos de data y extraer información de esto que podría informarles de las decisiones empresariales. A medida que aumentaba la potencia de cálculo, se hizo más fácil analizar estos grandes conjuntos de data en menos tiempo. Y así es donde entra la AI por lotes. A medida que la potencia de cálculo continuaba aumentando, el enfoque se desplazó hacia el machine learning. Y así, el machine learning tradicional por lotes implica entrenar modelos en data históricos y usarlos para hacer predicciones o inferencias sobre eventos futuros. Y así, cuanto más data tenemos con el tiempo que estamos alimentando ese modelo, mejor se vuelve y más puedes ajustarlo y más precisas se vuelven las predicciones futuras. Pero, como puedes imaginar, esto es realmente poderoso porque puede predecir lo que va a suceder mañana y podemos tomar algunas decisiones empresariales realmente buenas a partir de eso. Entonces, la AI por lotes, como su nombre indica, generalmente se ejecuta sin conexión y en un horario. Por lo tanto, está analizando data históricos para hacer predicciones sobre eventos futuros. Pero aquí es donde está el problema, porque la AI por lotes está trabajando en data históricos, y no puede interactuar con eventos que ocurren rápidamente en tiempo real. Entonces, aunque es realmente genial para industrias como las finanzas y la atención médica, donde podemos tener estos data sobre cosas que suceden ahora es lo que estamos buscando. Y así es donde entra la AI en tiempo real. La AI en tiempo real representa un avance significativo en la AI tradicional. Y este enfoque implica entrenar modelos en data en vivo y usarlos para hacer predicciones o inferencias en tiempo real. Entonces, esto es particularmente útil para la detección de fraudes, por ejemplo, donde las decisiones deben tomarse rápidamente en función de lo que está sucediendo en tiempo real. Y entonces, quiero decir, ¿de qué sirve la detección de fraudes si una persona que te está defraudando ya se ha salido con la suya? Necesitamos poder detectar eso en tiempo real. y ahora el siguiente paso después de eso es la ai generativa y esto es lo que nos lleva a la vanguardia de la ai en este momento y este enfoque implica entrenar modelos para generar nuevo contenido algo que nunca se ha producido antes esto podría ser imágenes texto música videos no es simplemente hacer predicciones ya está creando el futuro y un dato curioso aquí todas estas imágenes en la diapositiva fueron creadas por DALI. Y así, a lo largo de los años, hemos visto cómo la IA evoluciona desde los análisis hasta el machine learning en tiempo real y ahora hasta la AI generativa. Y estos no son cambios incrementales. Cada uno de estos son transformadores, y dan forma a cómo interactuamos con la tecnología todos los días, y van a seguir haciéndolo. Y así, vamos a acercarnos un poco. Tenemos esta cosa llamada GPT, Transformadores Preentrenados Generativos. Entonces, estos grandes modelos de lenguaje realizan una variedad de tareas desde el procesamiento del lenguaje natural hasta la generación de contenido e incluso algunos elementos de razonamiento de sentido común. Y son los cerebros que hacen que nuestras aplicaciones sean más inteligentes. Pero hay una trampa en estos GPT, no son perfectos. Hay limitaciones clave limitaciones en el mundo, la limitación clave es su base de conocimientos estática. Solo saben en qué se han entrenado. Sabemos que ha habido algunas actualizaciones recientemente con GPT donde han actualizado el conocimiento base, pero aún así hay un punto final a su conocimiento. Y también hay algunas otras integraciones con algunos modelos que tienen motores de búsqueda incorporados en ellos ahora para que puedan buscar en Internet para encontrar información adicional. Pero, ¿cómo sabemos que la información que están encontrando en Internet es precisa? Tal vez no es exactamente lo que normalmente querríamos incluir en nuestro conjunto de datos. Y también pueden alucinar con mucha confianza. Entonces, ¿cómo podemos minimizar todo esto? Dado que no pueden acceder o aprender de los data propietarios en tiempo real, nuestros data, y eso es una gran limitación. Entonces, la necesidad de data de dominio propietario en tiempo real es por qué no podemos simplemente confiar en los LLMs tal como están. Y esto es especialmente cierto en el contexto empresarial donde la información actualizada puede ser un cambio de juego.

Entonces, ¿cuál es la solución para esto? ¿Cómo hacemos que estos modelos sean adaptables en tiempo real y más alineados con nuestras necesidades específicas? Bueno, esto nos lleva al enfoque de la masterclass de hoy. No se trata simplemente de aprovechar el poder de los GPT en React, sino de llevar tus aplicaciones React al siguiente nivel haciéndolas inteligentes y conscientes del contexto. Vamos a explorar cómo aumentar las aplicaciones React con capacidades más inteligentes utilizando modelos de lenguaje grande, pero luego potenciando esas capacidades aún más con la generación aumentada de recuperación o RAG. Entonces, no solo estamos integrando AI en React. Lo estamos optimizando para que sea lo más inteligente y consciente del contexto posible. Entonces, ¿qué implica la generación aumentada de recuperación? Lo primero que tenemos que entender son los vectores. Entonces, ¿qué son los vectores? Estos son los bloques de construcción que nos permiten representar data multidimensionales complejos en un formato que es fácil de manipular y entender para la computadora.

5. Vectores, RAG y Stack Tecnológico

Short description:

Un vector es una representación numérica de datos, utilizada en diversas aplicaciones como la organización de tiendas, videojuegos y direcciones de Stargate. Los vectores permiten la búsqueda semántica y pueden ser creados usando codificadores. La generación aumentada de recuperación (RAG) aprovecha los vectores para mejorar los LLMs y mejorar el rendimiento del modelo GPT. Los datos privados pueden ser utilizados para generar incrustaciones y almacenarse en una base de datos de vectores. Las consultas de los usuarios se vectorizan y se emparejan con información relevante utilizando la búsqueda de vectores. RAG y las incrustaciones de vectores mejoran las aplicaciones de React, haciéndolas adaptables y conscientes del contexto. La masterclass cubrirá Next.js, OpenAI, LanChain, Vercel AI SDK y MongoDB para el almacenamiento y búsqueda de vectores.

La explicación más sencilla es que un vector es una representación numérica de data. Es un array de números. Y estos números son coordenadas en un espacio indimensional. Así que, aquí está la longitud del array. Así que cuantos más números tengamos en el array, más dimensiones tendremos. Y también puedes escuchar que a los vectores se les llama incrustaciones vectoriales o simplemente incrustaciones. Así que es lo mismo.

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, puede que te diga que vayas al pasillo 30, bahía 15. Y eso es un vector bidimensional justo ahí. Y te darás cuenta en una tienda que los artículos similares se colocan cerca uno del otro para facilitar la búsqueda y el hallazgo. Así que no vamos a tener bombillas esparcidas por la tienda al azar. Todas están en un lugar, y están colocadas estratégicamente allí para ser encontradas fácilmente.

Otro ejemplo son los videojuegos, 2D, 3D coordenadas donde los objetos están ubicados en el mundo del juego. estas coordenadas pueden ser calculadas, pueden calcular la proximidad entre objetos y detectar colisiones, por ejemplo. Y así, el mismo tipo de matemáticas se utiliza para calcular la similitud entre vectores en la búsqueda de vectores. Y no sé si tenemos aquí algún fan de Stargate, pero yo soy un gran fan de Stargate. Las direcciones de las puertas, componen siete dimensiones, al menos siete dimensiones. estas son como vectores cuando introduces estas diferentes coordenadas para localizar otra galaxia y es como un número de teléfono también como un código de área esos son vectores también te lleva a un cierto lugar y así de nuevo lo que hace especiales a los vectores es que permiten la búsqueda semántica vamos a hablar más sobre la búsqueda semántica un poco más tarde pero en términos más sencillos nos permiten encontrar información que es contextualmente relevante y no solo una coincidencia de palabras clave. Y así, estos data también no, no se limitan solo al texto. Pueden ser imágenes, video, audio, todos estos pueden ser convertidos en vectores. Y así, ¿cómo creamos estos vectores? Bueno, esto se hace a través de un codificador. Un codificador define cómo se organiza la información en este espacio multidimensional virtual original. Y así, hay diferentes tipos de codificadores. Podemos organizar estos vectores de diferentes maneras, dependiendo de los casos de uso. Hay diferentes codificadores para texto, para audio, para imágenes, y así sucesivamente. Y muchos de los codificadores más populares pueden ser accedidos a través de Hugging Face, OpenAI, y muchos otros. Vamos a estar usando OpenAI hoy. Así que vamos a relacionar todo esto con la generación aumentada de recuperación. RAG aprovecha los vectores para incorporar data relevantes en tiempo real para aumentar las capacidades de un LLM, y las capacidades de búsqueda de vectores pueden aumentar el performance de la precisión de los modelos GPT proporcionando una memoria o una verdad fundamental para reducir las alucinaciones, proporcionando información actualizada, y permitiendo el acceso a data privados. Así que lo primero que necesitamos para aprovechar es tener nuestros data privados, lo que sea, y generar nuestras incrustaciones a partir de esos data privados utilizando uno de los modelos de incrustación y luego almacenar esas incrustaciones en una base de datos de vectores. Y esto podría ser documentation de nuestro sitio web, artículos de blog, videos, imágenes, PDFs, tantos medios diferentes. Y así, no tienes que usar langchain. En este ejemplo, usa link chain pero no tienes que usar un link chain pero es muy útil y vamos a ver cómo nos ayuda en nuestra masterclass y una vez que tenemos estas incrustaciones para nuestros data personalizados podemos ahora aceptar consultas de usuarios para encontrar información relevante dentro de nuestros data personalizados y así para hacer esto enviamos la consulta en lenguaje natural del usuario lo que sea que hayan tecleado en el prompt al LLM, que vectoriza la consulta, y luego usa la búsqueda de vectores para encontrar información que está estrechamente relacionada o semánticamente relacionada con la consulta del usuario que se encuentra en nuestra base de datos de vectores. Así que, podemos hacer cualquier cosa que queramos con esos resultados. Podríamos resumir la respuesta a su pregunta basada en nuestros data personalizados. Podríamos responder con enlaces a páginas específicas de documentation o videos o lo que sea. Y así, imagina que tu aplicación React tiene un chatbot inteligente en ella. Y con RAG y las incrustaciones de vectores, el chatbot podría incorporar data en tiempo real, tal vez el último inventario de productos, y tal vez el historial de pedidos del cliente y ofrecer ciertos productos a un cliente en esa interacción en tiempo real. Con RAG y las incrustaciones de vectores, tu aplicación React no es solo inteligente, sino que es adaptable, en tiempo real, e increíblemente consciente del contexto. Y así, hablar es barato. Vamos a ver cómo funciona esto en acción. Y así, echemos un vistazo a las tecnologías que vamos a utilizar en esta masterclass. Lo primero que el stack tecnológico va a comenzar con Next.js. Por supuesto, vamos a estar Usando la última tecnología aquí, vamos a usar el enrutador de aplicaciones en Next.js. Next.js y Vercel facilitan mucho la construcción de estas tecnologías de IA. La siguiente parte del rompecabezas aquí es OpenAI. OpenAI ha estado liderando los avances en los grandes modelos de lenguaje con GPT 3.5, 4, 4 Turbo, y así sucesivamente. Así que mientras hay muchos otros modelos de lenguaje por ahí, Hoy, nos vamos a centrar en OpenAI, y vamos a usar eso para nuestras incrustaciones y generar las respuestas. Y luego, LanChain. Así que, esta es otra parte crucial de nuestro stack tecnológico. Nos ayuda en el preprocesamiento de data, enrutando data al almacenamiento adecuado, y haciendo la parte de IA de nuestra aplicación más eficiente. Y luego, está el Vercel AI SDK. Esta es una biblioteca de código abierto diseñada para construir interfaces de usuario de streaming conversacionales. Así que abstrae mucho código de plantilla que de otra manera tendríamos que escribir. Realmente hace que escribir la aplicación sea muy rápido y fácil. Y por último, vamos a usar MongoDB para almacenar nuestras incrustaciones de vectores. Vamos a usar la búsqueda de vectores de MongoDB para encontrar las incrustaciones relevantes basadas en el prompt del usuario. Y así esto es un cambio de juego para las aplicaciones de IA, permitiéndonos proporcionar una experiencia de usuario más contextual y significativa almacenando nuestras incrustaciones de vectores directamente en la base de datos de nuestras aplicaciones en lugar de añadir otro servicio externo de terceros. Y no es solo una búsqueda de vectores, sino que MongoDB Atlas en sí mismo aporta un nuevo nivel de potencia a nuestras capacidades de IA generativa. Y así cada una de estas tecnologías aquí en el stack es elegida por una razón específica. Y cuando combinamos estas, nos permiten construir aplicaciones React más inteligentes, más potentes. Así que déjame revisar el chat muy rápido. Y mientras lo hago, puedes ir a este enlace. Este es el enlace para comenzar nuestra masterclass. Hay algunos chats. Veamos. ¿Estará disponible la grabación? Sí, sí. Bueno, eso ya ha sido respondido. De acuerdo, déjame abrir la ventana del chat aquí para poder mantenerla abierta.

6. Configuración de MongoDB Atlas y OpenAI

Short description:

Para comenzar la masterclass, asegúrate de tener una cuenta y base de datos de MongoDB Atlas, una cuenta de OpenAI y Node.js versión 18 o posterior. También se recomienda tener conocimientos básicos de Next.js y MongoDB. No dudes en hacer cualquier pregunta, ya que este no es un curso avanzado. La masterclass puede ser autoguiada y todos los recursos necesarios están disponibles en el sitio web de la masterclass. A continuación, cubriremos MongoDB Atlas, una versión alojada en la nube de MongoDB con características adicionales como servicios de aplicaciones, disparadores, autenticación, Atlas Search, Atlas Data Federation y búsqueda de vectores. MongoDB puede ser desplegado en los principales proveedores de nube, y se recomienda configurar tu cluster en la región más cercana a ti. MongoDB Atlas ofrece un cluster gratuito que es excelente para el aprendizaje y el desarrollo. Después de crear tu cuenta y base de datos de MongoDB Atlas, necesitarás crear un usuario y poner en lista blanca tu dirección IP para un acceso seguro. Una vez que hayas completado estos pasos, puedes proceder a la parte de OpenAI de la masterclass, donde crearás una cuenta de OpenAI y obtendrás una clave de API. OpenAI es un proveedor líder de modelos de IA, incluyendo GPT-3, y ofrece créditos para completar la masterclass. Las llamadas a la API son rentables y puedes encontrar más detalles de precios en la página de precios de OpenAI.

Nuevamente, si alguien tiene alguna pregunta y le gustaría usar audio o video, simplemente levante la mano. Y no dudes en desactivar el silencio y también usar el chat si tienes alguna pregunta.

Así que déjame ir a este enlace también yo mismo. y esto es lo que deberías ver cuando llegas a la masterclass seguro que tengo todo aquí bien, entonces vamos a entrar a la masterclass y hay algunos requisitos previos con los que vamos a comenzar, así que necesitarás una cuenta de mongodb atlas y una database vamos a pasar por la configuración de eso si aún no tienes una, necesitarás una cuenta de open ai y node.js versión 18 o posterior y voy a asumir que tienes algunos conocimientos básicos de next.js configurando un entorno de node.js quizás un conocimiento básico de mongodb pero no tienes que tener esto no es un curso advanced así que al menos tener los conceptos básicos es un requisito previo de nuevo también volviendo a las preguntas si alguien tiene alguna pregunta no hay preguntas estúpidas así que por favor si estás pensando en una pregunta y tienes miedo de hacer la pregunta adelante y hazla porque estoy seguro de que alguien más está pensando lo mismo, así que no seas tímido aquí por favor haz cualquier pregunta que tengas y así esta masterclass aquí está diseñada para ser presentada por un instructor pero también puede ser autoguiada así que todo lo que necesitas para crear para completar esta masterclass está aquí en este sitio así que pasemos a la primera parte um Sí. ¿Algún enlace para compartir? OK, el enlace estaba allí atrás. Un segundo. Déjame agarrar ese enlace. Debería haberlo puesto en el chat, ¿no? Ahí vamos. OK, gracias. Gracias, Derek. Sí, déjame darle a todos solo un minuto para llegar al sitio web de la masterclass. Y luego, una vez que entres, pasaremos a la siguiente sección, MongoDB Atlas. De nuevo, vamos a completar los requisitos previos, asegurándonos de que el entorno de todos está configurado y tienes las cuentas necesarias para completar este proyecto. Así que si no estás familiarizado con MongoDB Atlas, MongoDB en sí es una database open-source. MongoDB Atlas es la versión alojada en la cloud de MongoDB, de la database, y tiene algunas características adicionales. Está completamente auto-alojado. Tiene servicios de aplicaciones, que es un back-end completamente administrado para tus aplicaciones web. Tiene disparadores, funciones serverless, authentication, un montón de otras cosas allí. Luego tenemos Atlas Search, que básicamente vamos a hablar más sobre eso en un momento, pero te da una búsqueda de texto completo. Atlas Data Federation, que te permite almacenar data en AWS S3, Google Cloud Storage, y consultar esa data como si estuviera en MongoDB. Y luego la búsqueda de vectores, que va a ser el punto principal que vamos a ver en MongoDB para esta masterclass. Y entonces, ¿dónde se despliega MongoDB? Se despliega prácticamente en todas las nubes principales. Así que AWS, Azure, Google Cloud, muchas, muchas regiones en todo el mundo. Así que cuando configures tu cluster, te sugiero que lo configures en una región lo más cerca posible de ti para que sea más rápido. Y luego, si estás acostumbrado a usar AWS, por ejemplo, puedes registrarte para MongoDB Atlas en el panel de control de AWS. De esa manera puedes tener una facturación unificada y hacer que todo pase por AWS. Lo mismo para Azure y Google Cloud también. Y eso cubre un poco cuánto cuesta. Lo que vamos a usar hoy es un cluster completamente gratuito. No se requiere tarjeta de crédito. Puedes usarlo todo el tiempo que quieras. De hecho, puedes crear tantos clusters gratuitos como quieras. Es un nivel gratuito muy generoso también. Es genial para el aprendizaje y el desarrollo. Así que vamos a seguir adelante, pasemos a la siguiente sección aquí de crear tu cuenta. Así que si aún no tienes una cuenta, voy a hacer una pausa aquí por unos cinco minutos más o menos para que sigas adelante y pases por esto. Crea tu cuenta. Vas a recibir un correo electrónico de verificación. Y luego pasaremos a la siguiente parte. Vamos a usar las reacciones aquí en Zoom mucho. Así que cuando hayas completado esta parte, si puedes react. ¿Dónde están las reacciones? Es tan diferente cuando estás compartiendo tu pantalla. Ahí vamos. Reacciones. Sí. Así que cuando hayas completado este paso, dame un pulgar hacia arriba o un saludo o cualquier reacción que quieras un cheque verde lo que quieras hacer para hacerme saber que estás listo para pasar a la siguiente parte para aquellos de ustedes que um que han creado su cuenta voy a pasar a esta siguiente parte aquí que es bastante simple también vamos a crear nuestro cluster así que si acabas de registrarte entonces ya te van a presentar esto para crear un cluster o para crear un despliegue. Si ya tienes una cuenta de MongoDB, te has conectado. Si ya tienes un proyecto y un cluster, técnicamente podrías usar eso, pero yo sugeriría simplemente crear un nuevo proyecto. Dato curioso, puedes crear tantos clusters gratuitos como quieras, pero solo uno por proyecto. Así que si quieres empezar de cero, te recomendaría hacer eso simplemente crea un nuevo proyecto y crea un nuevo cluster gratuito. Así que ve a crear despliega tu database vas a seleccionar el cluster gratuito M0 selecciona cualquier proveedor que quieras cualquier proveedor de cloud y cualquier región que esté más cerca de ti. Puedes nombrarlo como quieras no importa y luego presiona crear después de hacer eso te va a pedir que crees un usuario. Así que lo que elijas aquí escríbelo sabes abre tu aplicación de notas y copia y pega el nombre de usuario y la contraseña podrías querer hacer la contraseña algo fácil de recordar en lugar de una contraseña locamente segura solo para esta masterclass por supuesto así que lo genial de monga to be atlas de nuevo es cloud managed database para ti y así inicialmente justo fuera de la puerta está completamente bloqueado nadie puede acceder a él ni siquiera tú así que esa es la razón por la que tenemos que crear este usuario y luego incluso después de que hemos creado este usuario este usuario todavía no puede acceder a la database hasta que hagas el siguiente paso que es poner en lista blanca tu dirección ip así que puedes agregar tu dirección ip o podrías hacer el 0.0.0.0 que lo abre al mundo cualquiera puede acceder a él realmente no lo recomiendo pero Pero adelante y pon en lista blanca tu dirección IP. Así que no solo es seguro en la red, es authentication, usuario authentication seguro también. Así que una vez que ingreses esas dos cosas, deberías estar listo en el lado de MongoDB. ¿Dónde lo marcas como gratis? Así que justo aquí arriba, cuando estás creando tu database, M10 serverless, M0. M0 es el que quieres, y este es el gratuito. Así que esta es la parte donde eliges tu proveedor y ubicación región. El M0 está limitado a 512 megabytes de almacenamiento. Y es una RAM compartida y CPU compartida. Y e

7. OpenAI y Configuración de la Aplicación

Short description:

Después de verificar tu identidad, crea una nueva API o clave secreta. Copia y guarda la clave de forma segura. Si no la copias, puedes eliminar el secreto y crear uno nuevo. Para crear una clave API, inicia sesión y selecciona la opción API. Si ya tienes un secreto, puedes crear uno nuevo. Ahora estamos en la parte de OpenAI, creando claves API. Si tienes algún problema, avísanos antes de continuar. A continuación, pasaremos a la configuración de la aplicación, donde clonaremos y configuraremos nuestra aplicación de demostración utilizando Next.js, Tailwind CSS, OpenAI, LinkedIn, Vercel SDK y MongoDB. Comenzaremos con una plantilla de inicio de Next.js que incluye toda la configuración necesaria. También incluiremos MongoDB en el siguiente paso. El repositorio de GitHub para la aplicación de demostración se puede encontrar en la masterclass. Clona el repositorio y realiza una instalación de NPM. Si encuentras algún problema, asegúrate de tener los permisos necesarios y considera usar la versión HTTPS del repositorio. Tómate tu tiempo para completar este paso.

Después de que hayas verificado tu identidad allí, entonces se te presentará el trabajo para crear una nueva API o nueva clave secreta. Y luego se te presentará esa clave. Y querrás copiar esto. Cuando llegues a esta parte aquí donde te da tu clave, cópiala porque nunca volverás a ver esto. Así que cópiala y guárdala en algún lugar seguro. Y luego si todos pudieran quitar sus marcas de verificación verdes y luego agregarlas de nuevo cuando hayan completado esta parte. Y si por alguna razón haces clic fuera de esto sin copiarlo, no te preocupes, puedes eliminar ese secreto y puedes crear un nuevo secreto. Así que no es el fin del mundo. Oh, API. Sí, así que si inicias sesión. Hay una pregunta allí. ¿Es esto API o ChatGPT? Inicia sesión, te pregunta si quieres ir a chatgpt o OpenAI. Olvidé eso. O API. Así que haz clic en la API. Y eso debería llevarte a esta parte aquí, donde probablemente te pedirá que verifiques tu número de teléfono. Y luego puedes crear la clave API. No estoy viendo la página de crear tu cuenta después de hacer clic en la opción de API. Solo me lleva a una especie de resumen. Bienvenido a la plataforma de desarrolladores de OpenAI. Hay como una opción para un tutorial, como ejemplos. Bueno, vamos, entonces si vas a, déjame abrir el mío y puedo compartir el mío contigo. Veamos si estamos en la misma página. Puede que me haya iniciado sesión automáticamente en mi cuenta actual. Tal vez por eso. Podría ser, y si ya tienes una cuenta, eso también está bien. Sí, el hola puesto en el chat, Su plataforma.openai.com slash claves API. Eso debería ser correcto, sí. Eso debería llevarte a esta parte aquí donde creas claves API. Muchas gracias. Esto es probablemente lo que estás viendo. Y luego en el lado izquierdo, hay un menú aquí para ir a las claves API. Y luego deberías poder crear un nuevo secreto aquí. Bueno, entonces si ya tengo un secreto, ¿Podría simplemente crear uno nuevo para esto? Sí, sí. Sí, podrías simplemente crear un nuevo. Eso está bien. Genial. Gracias. Tenemos un par de personas que acaban de unirse, vamos a poner el enlace de la masterclass en el chat de nuevo. Y estamos en la parte de OpenAI. Así que solo estamos repasando los requisitos previos de crear la cuenta de MongoDB Atlas y la cuenta de OpenAI esas son las dos cuentas que vamos a usar en esta masterclass así que solo te pondrás al día pasando por la parte de MongoDB Atlas y OpenAI déjame solo obtener un censo de ¿alguien más está teniendo algún problema aquí antes de seguir adelante Bueno, voy a asumir que estamos listos para pasar al siguiente paso. Muy bien, entonces vamos a pasar a la configuración de la aplicación. Así que esta es la sección donde vamos a clonar y configurar nuestra aplicación de demostración. Así que vamos a crear una aplicación utilizando Next.js, Tailwind CSS, OpenAI, LinkedIn, Vercel SDK, MongoDB, todas estas tecnologías. Pero todo tiene sentido cuando las juntas todas. De hecho, facilita mucho la creación de estas aplicaciones. Y vamos a empezar con esta plantilla de inicio de Next.js. Así que la plantilla en realidad ya tiene todas estas cosas en ella, configuradas, listas para ir. Y puedes ver esa plantilla aquí, pero no tienes que ir aquí. Esto es solo para tu referencia. si quieres verlo más tarde. Así que además de esta plantilla, también vamos a incluir MongoDB, pero tengo todo eso listo para ti en el siguiente paso aquí donde realmente clonamos la aplicación. Así que el repositorio de GitHub se puede encontrar aquí. Abre eso. Así que esto es Docs Vector Search Demo. Este es el repositorio que vamos a clonar. Puedes clonarlo de la forma que te sientas más cómodo haciendo eso. Puedes usar la terminal, get clone, CD en él y luego hacer una instalación de NPM en este repositorio la forma en que me gusta hacerlo voy al repositorio y copio el https y luego déjame abrir vs code y luego voy a mi control de fuente y clono el repositorio desde aquí solo voy a seleccionar mi ubicación donde quiero clonarlo Luego lo abro. Muy bien. Entonces el último paso es hacer una instalación de NPM. Muy bien. Así que déjame volver a la masterclass y darle a todos un minuto para completar esto. Probablemente estaba haciendo algo tonto aquí, pero me está diciendo que dice permiso denegado cuando intenté clonar. Podría estar ejecutando, si no tienes una clave SSH para tu cuenta de git, entonces puedes ir al repositorio y obtener la versión HTTPS en su lugar. Luego puedes instalarlo a través de eso. Hmm. Sí, así que podría ser también la ubicación a la que estás tratando de clonar puede que no tenga permisos para escribir en esa ubicación. He visto eso antes de que estés en un Mac.

8. Configuración de la Aplicación y Solución de Problemas

Short description:

Para configurar la aplicación, ingresa tu clave de OpenAI y la cadena de conexión de MongoDB Atlas en el archivo .env. Prueba la aplicación ejecutando NPM run dev y abriendo localhost:3000. Si encuentras problemas, verifica tu clave de API, asegúrate de que el archivo .env esté correctamente guardado y considera eliminar los módulos de nodo y ejecutar la aplicación de nuevo. Si has excedido tus créditos de OpenAI, es posible que necesites agregar una tarjeta de crédito o crear una nueva cuenta de OpenAI.

Sí, es mi carpeta normal en la que tengo esto. Sí. Así que, en el peor de los casos, podrías simplemente ir aquí y descargar el zip y luego simplemente descomprimirlo y luego hacer una instalación de npm allí. También puedes probar el git clone y luego la versión https la versión que está en los documentos del ssh es la que me funcionó, ah sí, lo entiendo y luego otra sugerencia de Casper en el chat hmm De nuevo, no hay preguntas tontas. No quiero que nadie se quede atrás, habla si tienes algún problema.

Vale, pregunta tonta. ¿Cómo hago para que aparezca la marca de verificación verde en mi Zoom? Sí, claro. No, veo que mucha gente también está poniendo marcas de verificación verdes en el chat. Para mí es diferente porque estoy compartiendo mi pantalla, pero tengo que hacer clic en más y luego ir a reacciones. Así que eso es lo que estás buscando, son las reacciones. En las reacciones, hay un montón de diferentes y la marca de verificación verde está ahí. Puedes escribir en check. ¿En serio? Nunca... Una vez que escribes en la cara feliz. Ah, vale. Lauren está teniendo Fatal no pudo leer del repositorio remoto. Eso es interesante. ¿Has probado el git clone que Casper sugirió arriba también? Debería cambiar los documentos para sugerir eso, si todos los demás están teniendo problemas con eso. Creo que es algo sobre cómo has configurado tu Git localmente para las cosas de autenticación de GitHub. Así que para el HTTPS debería funcionar para todos, el SSH sólo funcionará para las personas que lo hayan configurado a través de la configuración SSH. Sí. Buen punto. Manténgase con el HTTPS para las masterclass. Lo hace más fácil. Lo haré la próxima vez. ¿Eso te pudo ayudar, Lauren, o todavía? Vale. Vale. Bien, bien. Así que creo que todos hablan si no, pero creo que todos están en este punto. Así que pasaremos a configurar la aplicación. Bien. Así que en la aplicación, vas a encontrar un archivo de ejemplo de fin. Y aquí es donde necesitamos introducir la clave de OpenAI que acabas de crear y tu cadena de conexión de MongoDB Atlas. ¿Y dónde puedes encontrar eso? Si, si vuelves a Atlas, deberías ver un botón de Conectar. Y aquí, puedes elegir muchas opciones diferentes para conectarte a MongoDB. Lo más fácil para este caso, te sugeriría que elijas Compass, no vamos a usar la aplicación QMPASS pero la cadena de conexión que da es lo que necesitamos así que esto es lo que estás buscando MongoDB más SRV slash un montón de cosas después de eso va a ser diferente para todos pero tiene tu nombre de usuario y un lugar para tu contraseña en esta cadena de conexión así que una vez que encuentres esto lo pegarás en el archivo .env y luego asegúrate de reemplazar, si tiene nombre de usuario, reemplaza eso con tu nombre de usuario. Quita el menor y mayor que los corchetes, y lo mismo con la contraseña. Reemplaza todo eso con tu contraseña. Y luego después de eso, guarda el archivo y renómbralo, quitando el .example, por lo que debería ser sólo .env. así que voy a hacer lo mismo en el mío ir al s code y dot env dot example y voy a mover esto fuera de la pantalla y completar esto bien así después de eso pasaremos a probar la aplicación sólo queremos asegurarnos en este punto de que todo está funcionando como debería así que correremos NPM run dev y deberías ser capaz de abrir en localhost 3000 y verlo funcionar así que vale así que Cedric dice que Langchain se está quejando ¿qué está diciendo Langchain así que asegúrate de que estoy saliendo de mi cuota de chunk no sé de qué backend se están quejando si es chat GPT o si es MongoDB o si necesitamos crear una cuenta en el link chain no no no no se necesita cuenta para link chain así que si link chain se está quejando en este punto MongoDB no está en la mezcla aún no lo hemos añadido así que sería un problema con tu clave de API de open AI así que revisa la clave de API Asegúrate también de que tu archivo .env está guardado como .env y no como .envexample. Así que déjame pasar por el proceso yo mismo aquí. Así que de nuevo, necesito renombrar esto aquí a .env. y luego deberíamos ser capaces de ejecutar esto. Así que hagamos npm run dev, y luego local host 3000. Vamos a volver y asegurarnos... Wow, la codificación en vivo es muy divertida. Esto literalmente funcionó ayer. Hdfs no tiene un diseño raíz. ¿Qué pasó? Funciona en mi máquina. Bueno, eso es genial. Me alegro de que funcione para ti. Um, no tiene un diseño raíz. ¿Qué? Oh, tan divertido. Vale. Bueno, intentémoslo de nuevo. Ejecutar, dev, ¿está funcionando esta vez? Vale, ¿alguien más está teniendo este problema? Esto es tan divertido. Oh, Halil está teniendo el mismo problema. Vale. Bien. Así que es divertido. Pantalla blanca, sin error. Así que en tu, cuando ejecutaste NPM run dev. Oh, error de cuota insuficiente. Vale, eso va a ser, Eso va a ser un problema de open AI allí, Natasha. Parece que has excedido tus créditos de open AI. Halil, ¿puedes revisar tu registro en tu terminal? ¿Estás obteniendo el mismo problema de HTXS, TSX? Así que, Natasha, desafortunadamente, si te has quedado sin créditos tendrás que añadir una tarjeta de crédito a open AI y literalmente no va a costar más de cinco centavos completar esta masterclass así que eso depende completamente de ti puedes ver cómo avanzamos pero si quieres participar esa sería la única forma de solucionarlo a menos que crees una nueva cuenta de open AI con una dirección de correo electrónico diferente podrías ser capaz de obtener más créditos de esa manera Vale. Así que déjame simplemente averiguar esto. Quizás intenta borrar los módulos de nodo y ejecutar en Pyramid Store de nuevo. Teníamos una versión diferente. Lo ejecuté desde un inicio limpio y funcionó.

9. Solución de Problemas y Gestión de Créditos

Short description:

Vamos a eliminar nuestros módulos de nodo y empezar de nuevo. Si te has quedado sin créditos o no tienes una tarjeta de crédito registrada, puedes encontrar problemas. Asegúrate de revisar tu cuota y métodos de pago en el panel de OpenAI. Es extraño que una clave nueva esté excediendo la cuota. La codificación en vivo es divertida, pero es importante asegurarse de que todos pueden seguir el ritmo. Añadir créditos a tu cuenta de OpenAI es asequible, y puedes establecer límites para controlar el gasto. Si estás experimentando límites de cuota, revisa tus créditos disponibles y el uso en el panel de OpenAI.

Sí. Quiero decir, sé que hice todos los pasos que acabas de hacer. Pero vamos a hacerlo. Vamos a eliminar nuestros módulos de nodo y darle otra oportunidad. Sí. Continuar eliminando. Um, Natasha, pero yo he pagado con esto. Así que aunque tienes una, um, eso es un buen punto. No sé si están vinculados. Los créditos son algo separado que necesitas comprar por separado. Sabes, tienes la descripción plus, no puedes usar la API. Mm-hmm. OK. OK. Entonces, Halil, todo funciona bien en la terminal. También, console.log está bien, pero no veo. Entonces, OK. Así que la aplicación por defecto en realidad es una página blanca, pero en la parte inferior, hay una entrada para un prompt. ¿No estás viendo esa entrada, Halil? ¿Y por qué mis módulos de nodo no se están eliminando? Esto es muy divertido. Abrir el explorador de archivos. Sabes qué, déjame simplemente... Voy a empezar de nuevo. Vamos a cerrar esto. Vamos a empezar de nuevo. Eliminar la otra instalación. Vale, entonces está funcionando para, entonces nadie más está teniendo este problema que estoy teniendo. Vale, eso es genial. Quiero decir, no es genial, pero está bien. Vale, vamos a intentarlo de nuevo. Repositorio de Chrome. Seleccionar mi ubicación. Bien, abrirlo y añadir mis variables de entorno fuera de la pantalla. Luego renombrar a dot env quitando el dot example. Y luego npm install. La codificación en vivo es muy divertida, ¿verdad? Supongo que nadie más está teniendo ningún otro problema. No veo ningún chat al respecto. Sería bueno si el instructor también pudiera hacer que todo funcionara. ¿Sabes dónde podrías añadir más créditos en la API abierta? Sí, creo que se recargará automáticamente siempre que tengas una tarjeta de crédito añadida y también puedes establecer un límite. Así que si has establecido, por ejemplo, un límite de $10, se detendrá después de esos $10. Pero si tienes, sí, siempre que tengas una tarjeta de crédito en el archivo, debería continuar añadiendo. Si creas una nueva apertura, déjame ver, sí, algunos buenos enlaces allí en el chat. Oh, vale. Oh, vale. Todavía me parece muy extraño que nunca haya usado la API de OpenAI. La clave nunca ha sido usada, es la única clave y dice que la cuota se ha gastado. Así que dice que nunca gasté ningún dólar en ella. Entonces, lo siento. Vale. ¿Y eso fue... Quizás . ¿Y esa es una clave nueva que acabas de crear? Sí, sí. Eso es extraño. Vale. Cuota excedida en una clave nueva. Sólo. Y en tu panel de control. ¿Lo hace? ¿Tienes algún crédito disponible? Así que me parece que como si te hubieras quedado sin créditos y quizás no tengas un. Una tarjeta de crédito. En el archivo o quizás la API no está habilitada por alguna razón. Déjame ver si el mío está funcionando. Hey, está funcionando. Vale. Vale. Entonces, déjame ir a OpenAI. y veamos qué podemos encontrar aquí así que sí las claves ¿cuál era este otro enlace? resumen de la facturación de la cuenta métodos de pago vale entonces entonces desde desde todas las pruebas que tuve que hacer para esta masterclass me costó literalmente tres centavos y pasé por esta masterclass varias veces así que muy barato um entonces tenemos métodos de pago si no tienes ningún crédito disponible entonces entonces uh necesitarás tener un método de pago en el archivo uh límites de uso uh así que si si nadie aquí está usando activamente open AI o usando sus claves de API, entonces no deberías haber alcanzado ningún límite. Y aquí es donde puedes establecer tus presupuestos. Me parece muy extraño que estés alcanzando un límite de cuota. ¿Alguien más está teniendo ese problema? uh sí no creo que haya usado nunca el mío um pero yo uh sabes que llegué al límite de la cuota pero está bien uh dijiste que probablemente va a tomar como tres centavos como podríamos poner como un dólar o dos allí y eso es sí seguro mínimo de cinco ¿hay es un mínimo de cinco dólares que tienes que añadir? sí y luego hice eso y todavía uh no sé cuando añades créditos tomará como dos o tres minutos para que el las APIs podrán usarlos, al menos mi experiencia. Genial. Entonces, en uso es donde puedes ver realmente si tienes algún crédito disponible.

10. Solución de Problemas y Problemas Clave

Short description:

Algunos participantes tuvieron problemas con créditos y claves expirados. Añadir créditos y recrear o crear nuevas claves pareció resolver el problema para la mayoría. También hubo discusiones sobre posibles cambios en los procedimientos de OpenAI y la necesidad de verificar las cuentas de organización vs. personales. Katelyn experimentó un error en tiempo de ejecución, posiblemente debido a una instalación desactualizada de Next.js. Actualizar el entorno local debería resolver el problema. Derrick encontró un problema con la respuesta de la IA, y se sugirió revisar la consola para detectar errores.

Y no, todos los míos están caducados. Vale, lamento cualquier inconveniente. No estoy seguro porque me parece muy extraño porque nunca he comprado o tenido o comprado, ya sabes ningún token antes, simplemente se factura automáticamente a mi tarjeta de crédito la cantidad que sea vale um entonces Natasha lo consiguió, um puedes compartir qué te ayudó Natasha Añadido al crédito, de 18 a 23. Vale, entonces parece que ella también añadió $5. Y luego oh, lo pagué. Vale. Entonces Natasha, ¿añadiste los $5 en crédito y luego recreaste la clave? Vale. Quizás después de añadir los créditos, recrea tu clave, quizás Cedric. No hay daño en recrear la clave. Sí, vale, inténtalo. Mientras lo haces, voy a ¿Recrear la clave o simplemente crear una nueva clave? Crea una nueva clave. Sí, puedes eliminar la clave antigua, crear una nueva clave y luego poner la nueva clave en tu archivo ENV. Permíteme hacer una pausa ahora por otros 2 minutos antes de continuar. No sé si alguien está en una organización también en su cuenta de OpenAPI. En la esquina inferior izquierda, puedes ver tu organización o personal. Así que si estás en una organización y les diste dinero o pusiste el crédito en la organización, pero creaste la clave y eso es personal, no funcionará. También dará el mismo error de falta de créditos. Sí, parece que todos están logrando hacerlo y hacerlo funcionar parece que crear esa clave por alguna razón cuando no tenías créditos la invalidó porque era, no sé, es un poco extraño, parece que la clave funcionaría después de haber añadido créditos um pero añadir los créditos y luego recrear o crear una nueva clave parece estar funcionando para la mayoría aquí. Sí. Y de nuevo, voy a tener que investigar esto para la próxima vez que haga esta masterclass porque he hecho esta masterclass en el pasado y nunca he tenido... Quizás OpenAI cambió sus procedimientos porque nunca he tenido este cargo de $5 antes. Siempre son solo unos centavos en mi tarjeta de crédito. Creo que podrían haberlo cambiado. No pude poner una tarjeta de crédito cuando hice esto la última vez sin también prepagar algunos créditos. Interesante. Vale. Me pregunto si han cambiado su proceso. Quiero decir, he estado usando OpenAI desde que estaba en alfa. Así que, quizás estoy, como, atrapado en un plan antiguo o algo así. Vale. Entonces, vale. Parece que eso funcionó para todos. Vale. Vamos a pasar a la siguiente parte aquí, solo quiero dar, lo siento, adelante, iba a decir para el futuro creo que lo que pasó fue que abrí mi cuenta de ocho hace mucho tiempo y creo que los créditos gratuitos expiraron porque algunas cosas simplemente decían que las cosas habían expirado vale oh veo veo um buen feedback lo aprecio y de nuevo lamento los problemas aquí um Entonces sí. Sí, sí, lo siento por interrumpir. Creo que es lo mismo que pasó. Me doy cuenta de que todo había expirado. Todo, los dólares de actuación gratuitos, se habían ido, supongo, en el . Entonces sí. Entendido. OK. Sí, todavía está funcionando, debería decir. OK. Katelyn está teniendo un problema en localhost manejando runtime error. El prompt original ya ha sido declarado, ¿dónde estás viendo eso en tu terminal o en la consola del navegador um eso es una cosa que olvidé pasar por aquí así que una vez que veas este prompt esto debería ser básicamente como chat gpt así que debería poder hacerle una pregunta aquí y debería responder uh si todo si tu clave de la i a tu um tu tu clave es correcta y todas estas cosas están resueltas. Entonces digamos, ¿qué es ChatGPT? Y deberíamos esperar obtener. Ahí vamos, vale. Así que obtuvimos una respuesta. Así que esto está funcionando, básicamente como ChatGPT. Va a responder a cualquier pregunta que hagas. Y entonces, volvamos a Katelyn en el navegador. Todavía puedo hacer una pregunta y responde, pero hay un cuadro de error rojo, abajo a la izquierda. Sí, creo que es un problema de obsolescencia de la versión. Como si hago clic en aprender más, está diciendo que el Next.js está desactualizado. Así que podría simplemente actualizar Next.js. Oh, sí, tu instalación local podría estar desactualizada, sí. O veamos. Permíteme abrir mi consola. Sí, no estoy viendo ningún problema aquí. Sospecharía que es un problema de entorno, quizás actualizándolo, pero no debería impedirte completar la masterclass. Espero. Genial. Gracias. Derrick no está obteniendo ninguna respuesta de la IA. Derrick, intenta mirar en tu consola, en tu terminal para ver si estás teniendo algún error allí y también en la consola de tu navegador. Nada en el navegador. Déjame ver. Déjame ver si está bien. Ahora estoy obteniendo las cosas de la cuota aquí.

11. Búsqueda: Texto Completo y Vector

Short description:

Pasemos a la siguiente parte donde discutiremos la búsqueda de texto completo y la búsqueda vectorial. MongoDB Atlas proporciona una búsqueda de texto completo integrada, que es similar a Elasticsearch, y permite una búsqueda eficiente basada en palabras clave. La indexación juega un papel crucial en hacer las búsquedas más rápidas y eficientes. Por otro lado, la búsqueda vectorial se centra en la búsqueda semántica y en encontrar significado en las palabras. Utiliza incrustaciones vectoriales para entender las relaciones entre las palabras y encontrar términos relevantes. Se pueden utilizar diferentes algoritmos de búsqueda como el euclidiano y el coseno para encontrar los vectores más cercanos. La creación de vectores implica vectorizar documentos y almacenarlos en una base de datos vectorial para futuras búsquedas.

Vale. No vi. Vale. Vale. Volveremos a ello. Vale. Sí. Sí. Sí. Sí. Entonces, cuando creé esta demostración, estaba usando la versión 13.4. Ahora estamos en la 14. Actualizaré el repositorio muy pronto. Pero esto no debería causar ningún problema. Vale. Vale. Entonces, Laura también está obteniendo el error de cuota. Así que el error de cuota va a ser el problema al que se enfrentan los demás donde no hay créditos. Así que parece que tu opción es comprar créditos para poder seguir, o podrás ver mientras avanzamos, pero preferiría que pudieras seguir. Sí, sí, eso es correcto. De... De, Caitlin allí. Vale, de nuevo, lamento estos problemas. Estoy tomando estas notas para la próxima vez que imparta esta masterclass.

Pasemos a la siguiente parte aquí. Quiero darles un poco de antecedentes sobre la búsqueda. Ahora, lo que estamos haciendo es usar OpenAI y estos LLMs para responder preguntas y para buscar, pero vamos a usarlos un poco diferente en esta aplicación. Y para entender esto, quiero repasar la búsqueda de texto completo, las diferencias entre la búsqueda de texto completo y la búsqueda vectorial. Y así, Atlas, de nuevo, MongoDB Atlas es MongoDB la database alojada en la cloud, pero con características adicionales. Una de esas características es la búsqueda de texto completo. Es algo muy similar a, tal vez has oído hablar de Elasticsearch. Pero en lugar de tener tu database y tu Elasticsearch en dos lugares diferentes y tener que gestionar las conexiones entre los dos, sincronizando los data y toda esa infraestructura con Atlas search, todo está integrado allí para ti. No hay gestión. No hay sobrecarga para que te preocupes. Y está construido sobre Lucene. Así que, de nuevo, y también Elasticsearch o Solr, de los que quizás también hayas oído hablar. Esos también están construidos sobre Lucene. Así que, de nuevo, esto está construido sobre Atlas. Y Atlas search, de nuevo, te permite hacer una búsqueda de texto completo o incluso una búsqueda difusa. Pero está buscando palabras clave. No está buscando nada más que eso. Así que si estás buscando una palabra clave en particular, creo que eso se explica aquí, encontrará exactamente el término que estás buscando. Y luego también tenemos esto llamado indexación, que nos permite buscar nuestro texto de una manera muy eficiente. Así que si estás buscando una palabra clave y tienes que recorrer cada documento, cada fila y columna de una database para esa palabra, llevaría mucho tiempo recorrer todo y buscar esta palabra. Ahí es donde entra la indexación. Crea un índice en palabras, frases, símbolos, y los convierte en tokens y nos permite buscar de manera muy eficiente, muy rápida. Y esto es en lo que se basa también la búsqueda vectorial.

Pasando a la búsqueda vectorial, no es una búsqueda de palabras clave, sino una búsqueda semántica. Así que semántica es la forma de encontrar significado en una palabra en lugar de una palabra clave. Y así, si usas la búsqueda semántica, puedes encontrar términos relevantes y no sólo palabras clave. Así que, por ejemplo, si buscamos cómo hacer un pastel, podríamos encontrar resultados sobre cómo hornear un pastel o cómo hacer un pastel. Y eso es porque el pastel y el pastel son ambos postres y lo sabe. Así que es capaz de encontrar el significado detrás de las palabras que estás buscando. Y de nuevo, volviendo a cómo lo hace. Lo hace creando las incrustaciones vectoriales. y las incrustaciones le permiten ver que un pastel y un pastel están muy cerca uno del otro en este espacio multidimensional y así sabe que están muy cerca del mismo significado y así es donde entra la búsqueda vectorial de MongoDB nos permite buscar estos data de manera muy eficiente y muy fácil no vamos a repasar todo esto de nuevo como dije esta masterclass es todo lo que necesitas si quisieras hacerlo a tu propio ritmo, pero ya hemos hablado de muchas de estas cosas aquí, como ¿qué son los vectores? Aquí hay una buena explicación o una buena visualización de vectores en un espacio multidimensional. Y lo que estamos haciendo es que estamos buscando algo en este espacio multidimensional, y lo que hace VectorSearch es que encuentra la cosa más cercana a esa otra cosa que estamos buscando. Y así hay diferentes tipos de búsquedas. Euclidiana es una, y esta encontrará los vectores más cercanos. Defines cuántos de los más cercanos quieres encontrar. En este caso, estamos encontrando dos de los vectores más cercanos a la cosa que estamos buscando. Y otra forma de hacerlo es el coseno. Ahora, el coseno hará lo mismo, excepto que sólo en la misma dirección. Así que el coseno, en lugar de encontrar el uno y el cuatro, técnicamente el cuatro está más cerca. Pero queremos que sea una coincidencia más cercana a una coincidencia más relevante con la cosa que estamos buscando. Y así en este caso, estamos encontrando el uno y el tres porque técnicamente son una coincidencia más cercana. Así que el coseno es generalmente el que elijo. Pero hay otros que también se pueden usar. Y así la siguiente parte es ¿cómo podemos crear estos vectores? Entender los diferentes tipos de vectores que necesitan ser creados es crucial. Así que vamos a tener nuestro conjunto de datos, que va a ser un montón de documentos falsos para un sitio web de documentation, así que tenemos que vectorizar nuestros documentos, y almacenarlos en algún lugar en una database vectorial para ser buscados en algún momento futuro. Cuando el usuario hace una consulta y pide o solicita algo, entonces tenemos que tomar su consulta y vectorizar su consulta.

12. Creando Incrustaciones y Abordando Problemas

Short description:

Convertimos las indicaciones del usuario en vectores y los comparamos con los vectores en nuestra base de datos para encontrar las coincidencias más cercanas. A continuación, creamos incrustaciones para nuestros datos personalizados utilizando Langchain y MongoDB. Nos conectamos a MongoDB, obtenemos documentos falsos, los dividimos en fragmentos y los guardamos en la base de datos. Finalmente, cerramos la conexión y abordamos cualquier problema.

Entonces, en tiempo real, las indicaciones del usuario, y las convertimos en un vector. Y luego comparamos su vector con los vectores en nuestra database. Y ahí es donde encontramos las coincidencias más cercanas y devolvemos esos resultados.

Muy bien, entonces la siguiente parte va a ser la creación de las incrustaciones. Permíteme echar un vistazo rápido al chat aquí, uh Casper acaba de hacer una prueba, parece que crear una nueva cuenta de OpenAI con un correo electrónico no utilizado te dará cinco dólares en crédito gratis, sí, um Casper creo que alguien más también lo intentó, pero si usas el mismo número de teléfono para verificar esa nueva dirección de correo electrónico entonces sabrá que estás intentando engañar al sistema, tal vez um, así que necesito varios teléfonos números también, sí, varios números de teléfono, sí, sí, sí, sí, así que si tienes un nuevo correo electrónico dirección y un nuevo número de teléfono, entonces puedes obtener cinco dólares de crédito, sí, um necesitamos teléfonos desechables para la clase, sí, teléfonos desechables para la clase Lo pondré en mi próxima masterclass. Genial. Vale. Así es como, cómo vamos a hacer esto es que ahora tenemos una aplicación que está funcionando. Y está usando básicamente el chat GPT, está respondiendo a cualquier pregunta que queramos. Pero sólo queremos que responda a preguntas de nuestro sitio web de documentation de nuestros datos personalizados. Así es como vamos a hacer eso. Primero necesitamos crear las incrustaciones para nuestros datos personalizados um vas a notar un guion bajo talleres la carpeta de activos del taller todo lo que necesitas está en esa carpeta también está aquí en esta masterclass, así que también vamos a ir a la vamos a explorar un poco muy rápido déjame Déjame abrir esto. Y entonces notarás en nuestro paquete JSON que sólo tenemos unas pocas dependencias. Tenemos AI, que es el Vercel, AISDK.EMV, Langchain, MongoDB, Next, React, y React Markdown, estamos usando eso. Verás eso en acción un poco más tarde. Pero tenemos algunos scripts aquí. Tenemos nuestro Rundev. Y tenemos este otro script aquí, Embed. Así que embed va a ejecutar una aplicación Node llamada Create Embeddings, no MJS. Así que vamos a ir a ese create embeddings, MJS. Y vamos a mirar y ver qué está haciendo. Así que estamos sacando nuestro sistema de archivos de Node JS. Estamos usando langchain para tienen una función de divisor de texto um que nos va a ayudar a dividir nuestros documentos en fragmentos um mongdb atlas vector search tiene una función nativa de cadena de lenguaje que vamos a usar para guardar cosas en nuestra database lang chain también um creará nuestras incrustaciones usando open ai y luego tenemos que conectarnos a nuestra cuenta de mongodb aquí um y luego dot env ahora si estás usando un nodo 20 um dot env no es necesario pero pero lo tenemos en este así que si ves aquí estamos usando principalmente langchain para todo esto porque langchain tiene todas estas capacidades incorporadas y lo hace tan fácil lo siguiente que vamos a hacer es que vamos a conectarnos a mongodb así que vamos a crear nuestro cliente aquí que está sacando de nuestro archivo env nuestro uri atlas estamos le vamos a decir qué database y qué colección queremos usar. Vamos a usar una base de datos de documentos y una colección de incrustaciones. Ahora no tienes que ir a MongoDB y crear estas. Va a crear estas sobre la marcha para nosotros mientras creamos las incrustaciones. Así que al final, estamos obteniendo nuestra colección. Estamos llamando a client.db, diciéndole el nombre de la DB y la colección. Y luego vamos a usar esta colección más tarde para guardar nuestras incrustaciones. A continuación, vamos a obtener nuestros documentos falsos. Así que si vas a los activos del taller, documentos falsos, vas a ver un montón de archivos markdown aquí. Para este falso, déjame ver, dónde está el readme, aquí está el readme. Este falso fancy widget JS, ChatGPT escribió esto para mí. Así que le pedí a chat GPT que escribiera algunos documentos falsos y creó todos estos documentos para esta biblioteca de JS o fancy widget JS. Así que va a volver a esto va a tomar todos estos documentos. Y va a decirnos primero todos los nombres de archivo que va a usar. Vamos a hacer un registro de consola de eso y luego vamos a recorrer esos documentos. Para cada documento, vamos a agarrar el contenido del documento y luego simplemente nos dejará saber en la consola que estamos a punto de vectorizar este documento. Y aquí es donde vamos a usar langchain para dividir recursivamente este documento en fragmentos. Necesitamos ser capaces de hacer eso porque hay limitaciones. Dependiendo de qué modelo uses, sólo puedes poner tanto en él a la vez. Y así vamos a dividir esto en 500. va a ser el tamaño del fragmento. Y luego vamos a añadir algo de superposición. Así que también queremos retener el contexto entre fragmentos. Así que vamos a tener una superposición de 50 en cada fragmento. Así que entonces en nuestra salida, vamos a pasar el documento a este divisor que creamos. Así que aquí, esto va a ser la salida de nuestro divisor, que luego va a ir a MongoDB. Pero de nuevo, estamos usando Langchain para esta conexión. Lang Chain tiene esta función incorporada para MongoDB Atlas Vector Search. Así que le vamos a decir que guarde estos de nuestros documentos. Así que le estamos pasando nuestra salida. Estamos creando una nueva función de incrustaciones de OpenAI, que luego va a tomar nuestra salida, crear nuestras incrustaciones, y guardarlas en esta colección. El resto de esto, nombre del índice, por defecto, clave de texto, La clave de texto es el nombre del campo. Así que el nombre del campo donde queremos que el texto del documento, el texto real para residir va a estar en texto, el campo de texto. Las incrustaciones, las incrustaciones vectoriales van a ir al campo de incrustación. Y lo veremos después de que termine, vamos a pasar y vamos a mirar y veremos dónde puso todo y cómo lo hizo. Por último, vamos a cerrar nuestra conexión a MongoDB. Así que cuando ejecutes este archivo, deberías ver la lista de nombres de archivo. vectorizando cada nombre de archivo, y luego hecho. Muy bien, volvamos a esto. Básicamente, eso es lo que acabo de repasar. Acabo de hablar de todo eso. Así que vamos a ejecutar el script, así que npm run embed.

13. Solución de problemas de conexión con MongoDB

Short description:

Regrese y termine el proceso actual y ejecute npm run embed. Verifique la cadena de conexión en el archivo .env. Compruebe si hay errores de símbolos en la contraseña. Si el problema persiste, intente crear una nueva contraseña. Si está utilizando la extensión MongoDB, intente conectar de nuevo o use el controlador Node.js. Verifique el URI e intente diferentes opciones de conexión.

Entonces, déjame volver atrás, y sí necesitas seguir adelante y terminar el proceso actual y ejecutar npm run embed. Y ahí va vectorizando cada documento y ya está hecho. Así que déjame hacer una pausa aquí y asegurarme de que nadie está teniendo problemas. No veo ningún chat, así que déjame ir a. Oh, está bien. Así que hay un problema. Error de saludo. Hm. Error de escritura masiva. Hm. Debe incluir el nombre del host, el nombre de dominio. OK. Entonces, está bien, déjame ir a MongoDB en mi pantalla. Error de escritura masiva. Hm. Veamos. Segundo. Está bien, entonces. Sí. Entonces vamos aquí. Este es el primer problema, creo. Así que tenemos en mi base de datos aquí, voy a ir a conectar. Y luego brújula. Y luego esta es la cadena de conexión. Este es mi específico. El tuyo va a ser diferente, pero se verá igual. Así que esta primera parte aquí es mi nombre de usuario. La contraseña, necesitas reemplazar los corchetes aquí con tu contraseña. Así que toda esta parte. Así que dos puntos, tu contraseña. Y luego en va a ser, debería ser el nombre de tu cluster, lo que sea que lo hayas nombrado. Algunos números aleatorios. Y luego mongodb.net. Así que solo verifica en tu archivo .env que esto es correcto. Así que tu usuario, tu contraseña, el resto de eso. Va a ser un poco diferente para ti. Eso debería solucionar el problema de Caitlin. Derek, errores de símbolos. ¿Estás bien, Derek? Sí, estoy bien. Está bien, está bien, está bien. Natasha dice que está bien. Entonces, si funcionó correctamente, deberías poder ir a tu cluster aquí, explorar colecciones, y deberías ver una docs y luego una colección de incrustaciones. Deberías ver un montón de documentos que se añadieron. Y entonces tenemos un campo de texto aquí, que incluye el fragmento de texto real del fragmento que creó de este archivo, y luego un array de incrustaciones. Y si expandimos el array de incrustaciones, deberíamos ver, podría tardar un minuto porque hay 1,536 cosas en este array. Entonces, deberíamos ver las incrustaciones reales y todas esas deberían estar aquí. En, ahí vamos. Todavía obteniendo el error de saludo, Matthew. conectar. Tu extensión de VS Code pudo conectarse. ¿Estás hablando de la extensión de MongoDB o Matthew. Está bien. Y luego Caitlin confirmó que el URI coincide. Está bien. Pero utilicé un símbolo en Mi contraseña, oh. Símbolo y contraseña, sí. Podría ser eso. Sí, tal vez intenta crear una nueva contraseña. Cambias la contraseña. Siempre que cambias la contraseña, tarda solo unos segundos. Así que solo cambia la contraseña, dale unos segundos e intenta de nuevo. Matthew, extensión de MongoDB, entonces puedes conectarte a tu cluster. Puedes conectar tu cluster usando la extensión de MongoDB, pero estás obteniendo el error de saludo. Veamos. ¿Alguien más está obteniendo el error de saludo? Sabes, también podrías intentar algo. Volvamos a las bases de datos y luego conectemos de nuevo. Y podrías intentar esto, los controladores, el controlador de Node.js uno. Es un poco diferente. Agrega algunos parámetros extra, pero también debería funcionar.

14. Creando Índices de Búsqueda Vectorial

Short description:

Para crear el índice, vaya a su base de datos en Atlas y haga clic en 'Crear Índice'. Elija el editor JSON y seleccione la colección 'Embeddings'. Reemplace el JSON existente con el fragmento de JSON proporcionado para especificar los campos a indexar. Establezca las dimensiones en 1536, la similitud en coseno y el tipo en vector K-n-n. Haga clic en 'Siguiente' y luego en 'Crear' para crear el índice de búsqueda. Puede tardar un minuto en crear el índice. Una vez hecho esto, podemos pasar a la siguiente parte, que es la ruta de la API.

Y también pruebe esto. De nuevo, asegúrese de cambiar su contraseña aquí. Reemplace también los corchetes. Y pruebe esto y vea.

Bien, ahora deberíamos tener nuestras incrustaciones en nuestra database. Además, no, quiero decir, no debería hacer daño, pero no ejecute el comando, el comando de incrustación dos veces porque simplemente duplicará continuamente las incrustaciones en su database. Si, por alguna razón, lo ejecutó más de una vez, puede ir a sus colecciones, y puede eliminar esta base de datos de documentos y ejecutar el comando de nuevo, y simplemente agregará data frescos.

Richard, mi computadora es una Mac, pero estoy usando mi PC personal, y hice clic en el equivocado. Oh, está bien. ¿Entonces estás bien, creo? Vale. Sí, estoy bien. Vale. bien, entonces creo que tal vez solo matthew todavía tiene problemas, prueba eso esa nueva cadena de conexión y ve si eso ayuda um entonces siguiente dónde estamos así que creamos nuestras incrustaciones las vemos en nuestra database real cómo funciona así que ahora vamos a crear uh así que caitlin estoy cambiando contraseñas en mi cuenta oh en el usuario sí así que regresa a mongodb en el lado izquierdo irás a um cómo cambiaron está bien, así que esto debería ser acceso a database y luego aquí estarán tus usuarios de database así que sí Sí, no tu usuario con el que iniciaste sesión en MongoDB, pero podemos crear múltiples usuarios de database aquí con diferentes roles y permisos. Así que adelante y edita este y cambia la contraseña, el que creaste, y cambia la contraseña en eso. Aquí también es donde puedes cambiar tu acceso a la red. Entonces, si por alguna razón tu dirección IP en casa cambia, querrás ir al acceso a la red y actualizar tus direcciones IP para que te permita acceder a ella. Vale. Está bien. Entonces, pasemos a crear nuestros Índices de Búsqueda Vectorial. Entonces lo siguiente que necesitamos hacer es, como hablamos antes, hacer una búsqueda simplemente yendo a través de cada campo manualmente en un bucle llevaría una eternidad. Así que por eso creamos índices, para que podamos buscar muy rápidamente. Entonces, lo que vamos a hacer es crear este índice. Entonces, si usted a su database en Atlas, debería ver hacia la parte inferior derecha, crear índice. Matthew's todavía obteniendo error de saludo. Prueba el compás del conductor, contrabandea a V, las URL de VS Code, todas las mismo error. En este punto, honestamente no sé qué más para probar estás diciendo que la misma cadena de conexión funciona en um en la extensión de vs code um solo diría que revisa tu archivo env para asegurarte de que debería ser mongodb subrayado atlas subrayado uri igual y luego tu cadena de conexión sin espacios no es nada más, solo eso en tu archivo dotenv. Lamento que estés teniendo esos problemas. Dale un par de intentos más, solo revisa todo y luego volveré a revisarte en un segundo. Sí, no zanahorias, no corchetes ni nada en tu contraseña o, está bien. Bien, vamos a crear nuestro índice. Así que bajo Bases de datos, abajo a la derecha, Crear Índice, y luego Crear Índice de Búsqueda, y luego vamos a elegir el editor JSON para crear esto, y luego haz clic en Siguiente. En el lado izquierdo, verás tus bases de datos y colecciones. Expande Documentos y elige Incrustaciones. Esa es la colección que queremos indexar. Para el Nombre, déjalo por defecto. Está bien. Y luego volvamos al tutorial aquí, la masterclass. Vamos a tomar este fragmento de JSON aquí, copiar eso. Y simplemente vamos a reemplazar lo que está aquí con eso. Entonces, lo que esto está haciendo es que nos está diciendo qué indexar, qué campos queremos indexar. Así que le estamos diciendo que indexe el campo de incrustación. Así que recuerda en nuestra colección, teníamos un campo de texto, que tiene el texto plano, y luego teníamos un campo de incrustación, que tiene todos nuestros vectores. Así que le estamos diciendo que los vectores es lo que queremos, el campo de incrustación. Le vamos a decir cuántas dimensiones, así que esto depende de qué modelo usaste. Hoy, usamos el modelo de OpenAI, que tiene 1536 es las dimensiones que crea. Así que hay 1,536 vectores en el array. Eso es cuántas dimensiones, La similitud, vamos a usar coseno. Recuerda que hablamos de que hay diferentes tipos de búsquedas de similitud que podemos realizar. Vamos a usar coseno aquí y luego el tipo es vector K-n-n. Voy a saltar sobre esto. Hay diferentes tipos de nuevo de búsqueda de vectores. El vector K-n-n es el vecino más cercano K. Hay muchos tipos diferentes también, pero para esto vamos a usar K-n. Así que desplázate hacia abajo después de eso y haz clic en siguiente, y luego crear. Crea el índice de búsqueda y luego estás listo. Depende de, en tu conjunto de data. Nuestro conjunto de datos es realmente pequeño, por lo que no debería llevar mucho tiempo indexar, pero podría tardar hasta un minuto o así en crear este índice. Así que mientras está haciendo eso, pasaremos a la siguiente parte. En realidad, me detendré aquí para asegurarme de que todos estén bien y no tengan ningún problema con esto. Nadie está hablando, así que eso es bueno. Eso significa que todo está bien. Bien, pasemos a nuestra ruta de la API. Así que ahora, echemos un vistazo a nuestra ruta de la API. Déjame abrir VS Code. Así que actualmente, estamos usando el directorio de la aplicación en Next.js. Y en el directorio de la aplicación, ahora no estamos usando – sí quiero eventualmente mover esto para usar acciones del servidor. Pero ahora, todavía estamos usando las rutas de la API. Y esta es la forma predeterminada en la que está en la plantilla de ejemplo de Next.js también. Así que tenemos esta ruta de chat de la API.

15. Usando Vercel AI SDK y Vector Search

Short description:

El SDK de Vercel AI se utiliza para crear respuestas en streaming, permitiendo experiencias de chat en tiempo real. Se utiliza el modelo de chat open AI de Langchain, junto con esquemas para mensajes de AI y humanos. La ruta de búsqueda vectorial intercepta los mensajes del usuario, contacta a MongoDB, recupera las incrustaciones relevantes, las envía a OpenAI y devuelve la respuesta al usuario. La conexión a MongoDB se gestiona utilizando una promesa reutilizable para evitar sobrecargar la base de datos. El almacén de vectores se crea utilizando Langchain para conectarse a MongoDB Atlas Vector Search. La búsqueda se puede ajustar para encontrar las coincidencias más cercanas y devolver un número deseado de resultados.

Esto es, de nuevo, no algo que yo creé. Esto es simplemente el predeterminado aquí en esta plantilla. Así que está utilizando el SDK de Vercel AI para crear respuestas en streaming. Esto es lo que hace. El SDK de AI nos ayuda a crear estas experiencias de chat realmente geniales en nuestro documento en nuestras aplicaciones. Y entonces está haciendo un montón de ese código de plantilla, donde cada vez que escribes algo, le das un prompt, y la AI te responde. Está transmitiendo todo eso de vuelta en lugar de esperar los 30, 60 segundos, dos minutos que tarda en responderte. Te lo está enviando de vuelta en un stream para que veas el mensaje que te llega en tiempo real.

Luego vamos a usar el modelo de chat open AI de Langchain. Y tenemos un par de esquemas aquí de Langchain, esquema de AI y mensaje humano. Vamos a usar el runtime Edge. Esto es Vercel Edge. En realidad utiliza Cloudflare workers detrás de escena. Así que aquí está nuestro post. Y lo que vamos a hacer aquí es que vamos a obtener nuestro mensaje o prompt de nuestro usuario de nuestra solicitud. y luego vamos a obtener nuestro stream y nuestros manejadores del stream de cambio de carril que es del SDK de AI. Y luego vamos a crear este chat open AI y establecer el streaming a verdadero para que, de nuevo, obtengamos esa respuesta en tiempo real. Luego vamos a llamar. Vamos a decir que tenemos nuestros mensajes. Entonces, vamos a llevar un registro de todos los mensajes, los mensajes del usuario, los mensajes de la AI, y vamos a mapear todos los todos los mensajes que tenemos hasta ahora, y vamos a asignarles roles. Así que si el rol actual, así que la persona que está haciendo el prompt va a ser el usuario, vamos a decir que su mensaje es un mensaje humano y el mensaje de la AI es el mensaje de la AI. Y luego pasamos nuestros manejadores y luego devolvemos ese stream. Así que todo esto está manejando el prompt del usuario, enviándolo a OpenAI para manejar la pregunta del usuario y luego enviando la respuesta de vuelta a la aplicación en este único archivo, que tiene 30 líneas. Así que bastante simple. Vamos a alterar esto ahora porque queremos interceptar la pregunta del usuario e inyectar nuestros data personalizados y luego hacer que la AI responda al contexto de lo que el usuario está solicitando. Así que volvamos a la documentation. Así que expliqué todo esto. Creo, déjame ver. Bueno. Así que lo que vamos a hacer ahora es además de esta ruta de chat, vamos a añadir una nueva ruta. Así que bajo la carpeta API, vamos a crear búsqueda vectorial y luego el archivo route.ts. Así que voy a volver a VS Code. Y luego bajo API, voy a crear una nueva carpeta llamada búsqueda vectorial Search, y luego un archivo allí llamado route.ts. Bueno, así que ahora deberíamos tener una ruta de chat y una ruta de búsqueda vectorial. Y aquí, volvamos a, vamos a copiar esto. Tengo todo el trabajo hecho para ti. No espero que escribas nada de esto a mano. Así que esta va a ser nuestra ruta de búsqueda vectorial, que va a interceptar nuestro mensaje, contactar a MongoDB, mirar a través de todas nuestras incrustaciones, encontrar la documentation correcta que el usuario está referenciando, enviar eso a OpenAI, y luego enviar la respuesta de vuelta al usuario. Eso es básicamente lo que hace todo esto.

Ahora, para hacer esto, en nuestra función de incrustación que usamos anteriormente, usamos directamente el driver de MongoDB. En esto, no vamos a hacer eso. La razón por la que no vamos a hacer eso es porque esto está en una función serverless. Así que esta es una ruta de API usando Next.js que es una función serverless que simplemente se activa, funciona durante un minuto, y luego se apaga. Así que si fuéramos a usar MongoDB, el driver, directamente aquí, cada vez que se activa y se apaga, crearía una nueva conexión. Y si tuviéramos un millón de usuarios todos a la vez, nuestra database simplemente estaría sobrecargada. No podemos hacer eso. Así que necesitamos reutilizar nuestra conexión a la database. Así que esta es una forma de crear una especie de pool. Así que lo que estamos haciendo aquí es que vamos a usar esta promesa de cliente Mongo, que viene de app.lib.mongodb. Así que echemos un vistazo rápido a eso. Tenemos una carpeta lib, mongodb.ts. Así que aquí es donde se está utilizando nuestro driver, y vamos a tomar nuestra cadena de conexión aquí y crear nuestro cliente y una promesa. Si estamos en desarrollo, vamos a asignar esta promesa de cliente global al cliente y conectarlo. Y luego si estamos en producción, entonces crearemos la conexión. Y luego esta promesa reutilizable se va a utilizar en nuestra aplicación para que sólo estemos conectando una vez. y eso es lo que estamos trayendo aquí estamos trayendo esa promesa para que pueda ser reutilizada estamos definiendo de nuevo nuestra database nuestra colección y luego vamos a sacar nuestra pregunta de nuestra solicitud y luego crear nuestro almacén de vectores de nuevo esto está usando el langchain para conectarse a MongoDB Atlas Vector Search vamos a usar el mismo modelo que usamos para crear nuestras incrustaciones la incrustación 8th-02 modelo de OpenAI. Le vamos a decir qué colección y qué índice. Recuerda, acabamos de crear ese índice. Dejamos el nombre por defecto. Así que, si cambiaste el nombre a algo más para ese índice, cambiarías eso aquí para que use el índice correcto. Le estamos diciendo qué clave es el campo de texto que tiene el fragmento de texto y cuál tiene el fragmento de incrustación. Y luego estamos haciendo la búsqueda real aquí. Así que estamos tomando nuestro almacén de vectores que creamos aquí arriba, y estamos recuperando nuestra información. Así que aquí, en realidad podemos decirle cuántas coincidencias más cercanas debemos encontrar y cuántas devolver realmente. Así que aquí es donde realmente puedes afinar lo que estás buscando. Así que en esto, le estoy diciendo que encuentre 20 de los documentos más cercanos que coinciden de manera un poco difusa con lo que el usuario está buscando, pero sólo devuelve el 10% de esos 20. Así que está encontrando 20 de los más cercanos, pero luego de esos más cercanos, está buscando de nuevo y diciendo, envíame los dos que están más cerca. Así que realmente, puedes jugar con estos números y cambiarlos para afinar realmente cuán preciso o cuán preciso quieres que sea tu modelo. Así que al final, estamos obteniendo esa salida del recuperador, esperándola y enviándola de vuelta al cliente. Así que esta es la parte de búsqueda vectorial donde estamos enviándole la pregunta. Estamos encontrando la información relevante en nuestra database y la estamos devolviendo.

16. Código para la Búsqueda Vectorial y Tema Personal de VS Code

Short description:

¿Alguna pregunta sobre el código para agregar la ruta de búsqueda vectorial? MongoDB transforma el texto del usuario en incrustaciones y las compara con la base de datos. Mi tema personal de VS Code se llama CodeStacker.

¿Alguna pregunta? Eso es mucho. Siento que es mucho. Entonces, ¿alguna pregunta sobre eso? Antes de seguir adelante. ¿Dónde estaba el código para copiarlo? Sí, hay dos lugares. En los activos de la masterclass. Tenemos este documento de búsqueda vectorial y el documento de ruta de chat de la API, pero también en la masterclass. Así que aquí, este es el código. Así que estamos en este paso aquí. Añadir la ruta de búsqueda vectorial. Así que añadí el archivo, la ruta aquí, y luego simplemente copié este código aquí en ese archivo. Entonces, ¿MongoDB está aquí transformando tu texto en incrustaciones y luego comparándolo con la database? Exactamente. Exactamente. Sí. Pasé línea por línea, lo cual, no sé, tal vez eso sea demasiado profundo en una explicación. Pero sí, eso es básicamente lo que está haciendo. Está tomando la pregunta del usuario en el sitio web. Está creando una incrustación a partir de esa pregunta. Está buscando en MongoDB las incrustaciones existentes en MongoDB y luego las devuelve. Pregunta no relacionada, ¿qué tema? Mi tema de VS Code, sí. Ese es mi tema personal que creé. Se llama CodeStacker. Puedes buscarlo.

17. Actualización de la Ruta de Chat y Personalización de Prompts

Short description:

En esta parte, actualizaremos la ruta de chat existente para interactuar con la ruta de búsqueda vectorial. Crearemos una plantilla para inyectar información adicional en los prompts del usuario antes de enviarlos a OpenAI. La plantilla incluye la búsqueda vectorial en formato de cadena y la pregunta del usuario. Al reemplazar el último mensaje en la cola de mensajes con la plantilla actualizada, podemos enviar el prompt modificado a OpenAI para responder. El resto del código permanece igual, utilizando GPT 3.5 Turbo y configurando el streaming en verdadero. Después de reiniciar el servidor, se pueden hacer preguntas específicas sobre la biblioteca de widgets elegantes, y la ruta de chat responderá con respuestas relevantes. También se admite el formato Markdown, y la plantilla se puede personalizar para incluir información adicional o enlaces a la documentación.

Bien. Entonces, pasemos a la siguiente parte que es actualizar la ruta existente. Así que actualizamos la ruta de chat. Así que simplemente copiamos esto y vamos a actualizar algunas cosas en la ruta de chat existente esta vez. Ahora, esta ruta de chat, ya la vimos, 30 líneas, bastante simple. Simplemente está enviando un prompt a OpenAI y enviando de vuelta la respuesta. Muy simple. Así que simplemente reemplazo el código aquí, y señalaré las actualizaciones. Entonces, las actualizaciones son, en primer lugar, la línea nueve, estamos obteniendo el mensaje actual. De nuevo, recuerda, estamos llevando un registro de todos los mensajes, y tenemos una cola de mensajes. mensajes. Así que vamos a sacar el último mensaje. Así que sabemos que esto es lo último que el usuario envió. Así que vamos a sacar ese último mensaje, y luego vamos a buscar en esa ruta que acabamos de crear, esa ruta de búsqueda vectorial, y le vamos a enviar el mensaje actual. Así es como estamos interactuando con esa ruta que acabamos de crear. Estamos sacando la pregunta, enviándola a esa ruta. Vamos a recibir una respuesta de vuelta como la constante de búsqueda vectorial. Ahora vamos a crear una plantilla. Así que eres un representante de widgets elegantes muy entusiasta a quien le encanta ayudar a la gente. Dadas las siguientes secciones de la documentation de los widgets elegantes, responde la pregunta utilizando solo esa información. Lo pondré en formato Markdown. Si no estás seguro de la respuesta y no está explícitamente escrito en la documentation, di, lo siento, no sé cómo ayudarte con eso. Bien, así que todo esto aquí es la plantilla que vamos a enviar. Dentro de esto, estamos enviando nuestra búsqueda vectorial en formato de cadena, que es lo que MongoDB nos está devolviendo en esa ruta de búsqueda vectorial. Y luego estamos enviando la pregunta, la pregunta real, el prompt que el usuario envió. Así que de nuevo, estamos interceptando ese prompt. Estamos encontrando información adicional y la estamos inyectando de nuevo en ese prompt antes de enviarlo a OpenAI para responder a la pregunta. Entonces, de nuevo, tomamos ese último mensaje y reemplazamos ese último mensaje con esta plantilla. Así que sacamos su pregunta de la cola de mensajes y ponemos el mensaje actualizado. Y luego el resto de esto es igual que antes. Estamos enviando a OpenAI. Estamos usando GPT 3.5 Turbo. Puedes cambiar esto a lo que quieras, configurando el streaming en verdadero y luego haciendo lo mismo que hicimos antes. Así que si guardamos eso y volvamos atrás y asegurémonos de que no me perdí ninguna parte aquí. Sí, pruébalo. Así que adelante y reinicia tu servidor y luego puedes hacerle una pregunta y puede que te responda o no, porque las preguntas deben ser específicamente sobre la biblioteca de widgets elegantes. En los activos de la masterclass, hay un archivo questions dot TSX con algunas preguntas de muestra que podrías querer hacerle. Así que volvamos a VS Code y esperemos que esto funcione en team run dev y veamos. Abre un local host 3000 ya lo tengo abierto creo. Sí, simplemente refrescaremos esto. Y voy a volver a, eso se ve bien. Así que déjame ir aquí a preguntas, y aquí hay algunas preguntas que deberían funcionar. ¿Cuál es el último cambio hecho en la biblioteca de widgets elegantes? Voy a hacer esa pregunta. Y ahí vamos. El último cambio se hizo, versión 1.1, los cambios incluyen, etcétera, etcétera. Pero veamos qué pasa si digo ¿qué es chat GPT? Lo siento, no sé cómo ayudarte con eso. Bien, el mío está funcionando como se esperaba. Richard, estás obteniendo un error de servidor. ¿Qué error de servidor estás obteniendo? Así que en realidad creo que es porque estoy simplemente diciendo que está publicando en API chat. Pero cuando copié y pegué ese código, era API vector search. Sí, así que asegúrate de que. Así que, API, deberías tener un chat. luego route.ts y luego uh vector camel case vector search y luego route.ts y asegúrate de que todo está guardado y reinicias el servidor i i puse vector search en una carpeta de chat oh sí sí así que tenemos la forma en que las rutas de next.js funcionan así que tenemos una carpeta api y luego en esa carpeta tenemos nuestras diferentes rutas así que puedes verlo de esta manera así que tenemos una ruta de chat y luego una ruta de búsqueda vectorial cada una de esas tiene un archivo route.ts pero estas son nuestras rutas así que si realmente miras en el navegador sería slash api slash chat y luego también tenemos slash api slash vector search y así que si miras en la ruta de chat verás donde está llamando eso así que logo 3000 api slash vector search es lo que estamos buscando. Así que técnicamente todavía funcionaría de la manera que lo hiciste. Tendrías que alterar esta ruta aquí para ser chat chat slash vector search y luego eso funcionaría. Pero si simplemente mueves esa carpeta de búsqueda vectorial a la carpeta API, debería empezar a funcionar para ti. Genial, gracias. Bien, entonces, volvamos aquí. Así que, ahora, en lugar de responder a cualquier pregunta aleatoria, solo está respondiendo preguntas específicamente sobre nuestra documentation. Y así que si le pregunté, déjame volver a las preguntas, y. ¿Cómo instalo la biblioteca de widgets elegantes? Va a responder exactamente cómo hacer eso. Y también el formato Markdown debería estar formateando correctamente aquí también. Y así para esto, podríamos alterar esto. De nuevo, estamos interceptando este prompt, y estamos haciendo básicamente lo que queramos. Así que podríamos decir que podríamos añadir a esa plantilla que enviamos. Podríamos decir que resumimos la respuesta de cierta manera. Podríamos decir que añadimos enlaces relevantes adicionales a la documentation. Así que por ejemplo, me está diciendo cómo instalarlo. Pero tal vez después de esto, quiero añadir para más información, ve aquí y luego añadir un enlace. Así que podría hacer todo eso en esa plantilla y tenerlo, ya sabes, personalizado para mi caso de uso.

18. Solución de problemas con el token inesperado de JSON

Short description:

Estoy obteniendo un error de token inesperado de JSON. Parece estar relacionado con la conexión a MongoDB. Asegúrate de que VectorSearchRoute esté en la carpeta correcta y de que la conexión a MongoDB no se esté cerrando. Verifica el código y busca cualquier error tipográfico. Intenta usar el código de los activos de la masterclass como referencia.

Derek, tengo que irme. Muchas gracias. Oh, gracias. Aprecio que hayas venido. ¿Alguien tiene algún problema? ¿Todo está funcionando bien para ti en este punto? Estoy obteniendo un JSON token inesperado. Básicamente es un 404 en mi nivel host 3000. Vale. Así que he visto ese problema token inesperado en JSON antes. Y creo que el problema era algo con la conexión a MongoDB. Así que si desplazas hacia arriba en ese error, debería estar muy cerca de la parte superior. ¿Tiene algo que ver con MongoDB? y si es así creo que la solución va a estar en la ruta de búsqueda vectorial no, no la búsqueda vectorial, no, la ruta de chat va a estar en el chat no, no, ¿cuál era? creo que era el vector, parece que nunca llama a mi la función post en la VectorSearchRoute. Así que verifica de nuevo que tu VectorSearchRoute está... esa carpeta VectorSearch está bajo la carpeta API y no en la carpeta de chat. Además, verifica que no estás cerrando la conexión MongoDB en ningún lugar. ¿Funciona una vez y luego no funciona después de eso? No, no funciona en absoluto. ¿O no funciona en absoluto? Solo puedo mostrar la parte superior de esa función de ruta, La función post en el router T como otra gran búsqueda y no llama a esa consola. Así que debe ser algo con la ruta. Por alguna razón. parece correcto para mí. Christopher Cameron Rainey-P Christopher Cameron Rainey-P Christopher Cameron Rainey-P Christopher Cameron Rainey-P Christopher Cameron Rainey-P Sí. Vale. Bien, lo copié y pegué de los que están en los activos de la masterclass, tal vez debería tomar las cosas de allí. Deberían ser los mismos, pero es muy posible que puedas encontrar un error tipográfico en algún lugar. Intenta de la otra manera y solo verifica.

19. Ingeniería de Prompts y Especificidad

Short description:

La ingeniería de prompts es una cosa. Se trata de usar el prompt diseñado que necesitas crear para hacer que haga lo que quieres que haga.

Entonces, hay algunas preguntas aquí, ¿qué podrías hacer con una plantilla, persona de efecto? Sí, definitivamente podrías. Así que le dije, eres, ¿qué le dije que no puedo recordar? chat. Eso es otro chat. Muy entusiasta. Podrías decir que eres una persona muy sarcástica y lo que sea. Sí, definitivamente podrías afectar la personalidad allí. Podrías ser muy específico. Entonces, la ingeniería de prompts es una cosa. Es algo que todos vamos a tener que aprender para ser realmente buenos en ello. Podrías añadir tanto detalle como quieras y hacerlo muy específico si quieres que lo sea. Se trata de esto es Usa el prompt diseñado que necesitas crear para hacer que haga lo que es lo que quieres que haga. Y luego...

20. Beneficios Semánticos y Resultados Personalizados

Short description:

La búsqueda semántica encuentra cosas estrechamente relacionadas con lo que estás buscando, en lugar de exactamente lo que estás buscando. Utiliza incrustaciones para entender el significado de las palabras y buscar basándose en ese significado. Esto puede ser beneficioso porque puedes descubrir elementos relacionados que nunca habrías visto antes en una búsqueda tradicional por palabras clave. Por ejemplo, en el comercio electrónico, la búsqueda semántica puede ayudarte a encontrar productos relevantes incluso si no estás buscando con palabras clave específicas. Puedes utilizar detalles de la cuenta de un usuario para entregar resultados más específicos, como su rol o recomendaciones personalizadas basadas en su historial de pedidos y búsquedas.

Entonces, Richard, ¿podría pasar una lista de tickets de nuestro... Ejemplo perfecto. Sí. Podrías tener, digamos que tienes un sistema en el que cada vez que entra un ticket, un disparador, eso es lo que llamamos en MongoDB un disparador. Así que digamos que se añade un ticket a la base de datos, podría activarse un disparador y automáticamente llamar a OpenAI para crear una incrustación para ese ticket en tu base de datos. Así que tienes tu ticket, crea un nuevo campo en ese ticket con una incrustación, y luego cualquiera que ahora solicite a tu sistema puede buscar automáticamente esas incrustaciones y encontrar ese ticket, o encontrar información sobre ese ticket o lo que sea. Así que sí, gran ejemplo. Así que además del error de JSON, que generalmente encuentro que se debe a un problema con tu conexión a MongoDB, así que solo revisa todo eso. Déjame volver a... Esto es en realidad, sí, eso fue lo último. Así que estamos al final de la masterclass y estamos en el punto ahora donde puedo responder a cualquier pregunta,

¿Podrías explicar los beneficios semánticos de Vector en estos escenarios? Sí, así que Natasha, la diferencia realmente vuelve a la forma en que estamos buscando. Así que generalmente una búsqueda, si vas a cualquier sitio web y buscas en su sitio web, hará una búsqueda por palabras clave. Así que está buscando palabras clave específicas. Una búsqueda semántica está tomando las palabras que estás buscando y realmente encontrando el significado de esas palabras, y está buscando basándose en ese significado. Y así, lo hace de nuevo creando incrustaciones. Toma este espacio tridimensional, y pone un perro y un gato y una vaca muy lejos aquí, y pone un sofá y una mesa y otros objetos muy lejos de aquí. Están muy lejos el uno del otro. si estás buscando juguetes para gatos, podría mostrarte algunos juguetes para perros. Quizás a los gatos les gusten los juguetes para perros. Así es como funciona una búsqueda semántica. Encuentra cosas que están estrechamente relacionadas con lo que estás buscando y en lugar de exactamente lo que estás buscando. Y eso puede ser beneficioso porque tal vez estás buscando algo y piensas que lo que Sabes lo que estás buscando es exacto pero encuentras estas otras cosas que están relacionadas y es una buena experiencia porque estás viendo estas cosas extra que nunca habrías visto antes en una búsqueda tradicional. Espero que eso lo explique un poco. y los vectores y cómo todo eso está relacionado um so como búsquedas de productos en comercio electrónico sí sí como un producto así que ese es un ejemplo perfecto como duele mucho cuando vas a un sitio web y estás buscando algo que simplemente no puedes encontrar como tú estás intentando todas estas diferentes palabras clave porque uh sabes que ya estamos preentrenados como necesitas buscar exactamente necesitas ser preciso en lo que estás buscando, para que te dé lo que estás tratando de encontrar. Y cuando vas a un sitio web y te frustras porque sigues poniendo estas diferentes cosas, simplemente no puedes encontrar lo que estás buscando, eso es porque está usando una búsqueda por palabras clave y tienes que ser muy específico. Pero con la Búsqueda Semántica, puedes no ser tan específico y vas a encontrar todo tipo de cosas, pero siempre te presentará las cosas más relevantes. déjame revisar algunas más de estas preguntas aquí. ¿Con qué frecuencia tienes que recrear los vectores? ¿Podemos configurarlo para que cualquier cosa recién añadida? Sí, exactamente. Así que el siguiente paso después de esto, creamos nuestras incrustaciones inicialmente para nuestra documentación, pero ¿qué pasa si algunos de nuestros documentos cambian? Tenemos un registro de cambios. Así que eso va a actualizar, ¿verdad? Entonces, ¿cómo actualizamos ese registro de cambios? Ahí es donde tenemos que añadir alguna funcionalidad extra a nuestro script de incrustación. Necesitamos añadir alguna funcionalidad que lleve un registro de qué documentos hemos creado ya incrustaciones para. Y así lo añadiríamos a nuestra base de datos. Crearíamos otro campo que nos diga qué documentos han creado incrustaciones, qué versión del documento ha cambiado. Y así, si ha cambiado, creará una nueva versión de ese documento. Si no ha cambiado y ya hemos creado una incrustación, no creará esa incrustación de nuevo. Pero de nuevo, esta es una funcionalidad que necesitamos crear para llevar un registro de eso. Así que seguro, si tienes un sistema como el sistema de tickets de IT, por ejemplo, nunca querríamos recrear las incrustaciones cada vez. Eso va a costar mucho dinero porque no hay razón para recrear una incrustación si ya la hemos creado. Así que de nuevo, ¿cuáles hemos creado ya? ¿han sido actualizados desde la última vez y luego crear incrustaciones en los que han sido actualizados o son nuevos? No veo ninguna otra pregunta. Casper, ¿sigues teniendo esos problemas? Sí. Vale. Um. Pero creo que es, básicamente está obteniendo un 404 de BitSource. Estoy tratando de averiguar, ya sabes, cuál es el siguiente paso y el paso parece correcto. Y en la parte superior, hacia la parte superior del error en, en la consola o en el terminal, um, ¿qué, qué está referenciando? ¿Está referenciando algo específico, algún archivo específicamente? Um Así que es un token inesperado cuando hacemos el JSON bajo retorno del fetch en el archivo de chat. Y si publico el resultado o el resto en allí, entonces es un 404, básicamente. Me pregunto si viene de la ruta de chat o de la ruta de búsqueda de vectores, porque he tenido ese problema cuando estamos buscando desde la ruta de búsqueda de vectores, y el problema generalmente se remonta a la conexión con MongoDB, pero eso estaba funcionando para ti antes, así que no estoy seguro de por qué no funcionaría ahora. Déjame ver. Ahora mismo, Caitlin, si un usuario tuviera una cuenta, ¿podríamos usar detalles de su cuenta para entregar resultados más específicos? Si ponemos sí, exactamente. Por ejemplo, su rol. Sí. Así que. El cielo es el límite aquí. Tienes tu base de datos. Esto es lo que todo el mundo está intentando hacer ahora es ¿cómo podemos hacer que la IA sea más útil? Y hay chatbots por ahí que saben todo sobre ti, lo cual puede ser una buena cosa. Quizás es una mala cosa. Pero, por ejemplo, te conectas a algún sitio web donde tienes una cuenta y vas al chatbot y le preguntas detalles sobre tu cuenta, sobre ti mismo, sobre cosas, lo que sea. Sabe todas esas cosas sobre ti. Y sabe eso debido a este proceso que acabamos de hacer aquí hoy. Tiene toda esa información disponible para él. Tiene las incrustaciones y es capaz de encontrar todo lo relevante y devolver la información más relevante para ti. Y muy personalizado para ese usuario. Y así, de nuevo, como, por ejemplo, en un sitio de comercio electrónico, y el sitio en sí conoce todo tu historial de pedidos y conoce todo tu historial de búsqueda. Pero de nuevo, podría ser bueno o malo, pero sabe todo eso. Añades algo a tu carrito. Cada vez que añades algo a un carrito en un sitio de comercio electrónico, generalmente aparecerán cosas adicionales que podrías querer añadir, ¿verdad? Bueno, en el pasado, esas han sido codificadas a mano, o podrían ser relevantes para el producto que añadiste. Pero ahora, podría no ser incluso relevante para ese producto. Podría ser relevante para tu historial de búsqueda reciente. Podría ser relevante para cualquier otra cosa que queramos hacer relevante.

21. Incrustaciones, Costos y Funcionalidad de Resumen

Short description:

Las incrustaciones e información utilizadas en esta aplicación se almacenan de forma segura en MongoDB. Sin embargo, se utiliza el SDK de OpenAI, por lo que existe la preocupación de que los datos vayan a OpenAI. Para abordar esto, puedes alojar tu propio modelo. El costo proviene de almacenar las incrustaciones y consultar a través de un modelo. Alojar tu propio modelo también incurre en costos. El costo de consultar a través de OpenAI es una fracción de centavo por cada mil tokens. La funcionalidad de resumen implica encontrar fragmentos de texto relevantes y reorganizar la plantilla para especificar el resumen deseado. La masterclass concluye con agradecimiento a los asistentes y una invitación a conectarse para obtener más apoyo.

Y así es como funciona todo. ¿Qué tan seguro es esto? Bueno, esto es, de nuevo, todas las incrustaciones y toda la información que usamos hoy. Todo se almacena en MongoDB. Así que super seguro allí, pero estamos usando el SDK de OpenAI. Así que esta información va, la información que estás usando, va a OpenAI. Y eso es tu preocupación. OpenAI ha abordado las preocupaciones con eso, pero la alternativa es no usar un modelo de OpenAI. Puedes alojar tu propio modelo. Y así que si te preocupa, si tienes datos de clientes data o data que simplemente no quieres que esté fuera de tu control, entonces te recomendaría alojar tu propio modelo. Y luego de nuevo, la base de datos de MongoDB es super segura. Así que entonces no tendrías preocupaciones de security allí porque todo está controlado por ti.

¿Y de dónde vendría el costo? Entonces, el costo vendría de almacenar las incrustaciones. Así que en tu database, cualquiera que sea tu database de elección, esta es MongoDB. Entonces, tu costo va a venir de cuántos data tienes? ¿Es tu aplicación super popular y tienes toneladas de data que te va a costar un poco? ¿Y cuántas consultas están sucediendo? Así que cada consulta cuesta una fracción muy pequeña de un centavo, pero eso se suma con el tiempo. ¿Estás teniendo miles de millones de consultas que tienen que ir a OpenAI? Entonces, los costos vienen en almacenar tus data y consultar a través de un modelo de algún tipo, ya sea OpenAI o Hugging Face o estás alojando el tuyo para alojar tu propio modelo también cuesta dinero. Así es donde entran todos los costos. No estoy seguro de qué más decir para ayudarte, Casper. Haré algunas depuraciones de chat GPT, sí. Sí, sí. Pregunta a chat GPT, probablemente te responderá. Porque todo estaba funcionando antes de que agregáramos la funcionalidad de búsqueda de vectores ¿Supongo? Sí, creo que es solo algo de servidor cosas, cosas de servidor local llamando a esa ruta de API de búsqueda de vectores por alguna razón. Vale. Lo siento por eso. Laura, ¿hay una estimación de cuánto costaría alojar tu propio modelo por consulta? Hay varios servicios de alojamiento donde puedes crear tu propio modelo y alojarlos Pero tendría que buscar eso. No sé nada de eso de memoria. Pero el hecho de que sea una fracción de un centavo consultar a través de OpenAI, supondría que va a ser similar para otras alternativas. Así que creo que es como 0.0001 centavo por consulta. O no, en realidad por cada mil tokens. y mil tokens son varios párrafos. Así que es muy, muy barato y se está volviendo más barato a medida que pasa el tiempo. Bueno, de nuevo, esto es el final de la masterclass. Me quedaré por aquí unos minutos más para responder a más preguntas, pero realmente agradezco a todos que se detuvieron. Y déjame ir a esta última diapositiva aquí. Puedes encontrar más información sobre la Búsqueda de Vectores de MongoDB aquí. Conéctate conmigo en las cosas y avísame si tienes alguna pregunta más adelante. Estoy feliz de ayudar, feliz de apoyarte en lo que estás tratando de construir. Genial. Gracias por tomarte tu tiempo y hacer esto. Esto es realmente impresionante. Sí, no hay problema. Agradezco tu participación. Gracias. Gracias. Gracias, Caitlin. Así que tengo una pregunta. Entonces, si quieres hacer la funcionalidad de resumen, ¿cómo hace la diferencia? ¿Cómo vectorizas tu documento para que tu database sepa lo que quieres resumir? Sí, eso volvería a la plantilla de nuevo. Entonces, va a encontrar los fragmentos de texto relevantes que son las coincidencias más cercanas, y todo eso se enviará de vuelta desde esa ruta de búsqueda de vectores. Entonces, vas a obtener esta información de vuelta, y luego eso entra en la plantilla. Entonces, puedes reorganizar esa plantilla donde dije que eres un entusiasta, yada, yada, como responder las preguntas basadas en la información y lo que sea. Y luego podrías decir, aquí está la información, resumen. Así que solo en esa plantilla, déjame volver a ella. Así que en esta plantilla aquí, simplemente estamos reformulando esto para ser lo que quieras. Y podrías decir, en lugar de secciones de contexto, podrías decir, resume esta sección de cierta manera, como quieras. Podrías decir, dame una versión de puntos de este. Y luego aquí está la pregunta original. Y luego después de eso, podríamos agregar más. Podríamos decir, agrega cualquier enlace relevante que hayas encontrado en la documentation. Cada una de estas páginas de documentation tiene una URL. Agrega esas URL a la documentation relevante. Entonces, de nuevo, todo vuelve. Todo es como las salsas mágicas aquí en esta plantilla. Espero que eso responda la pregunta. Sí, gracias. Lo hice funcionar. Fue mi proyecto de trabajo que todavía estaba funcionando en segundo plano. Y tenemos un proxy para el local host 3000. Por eso. Ahí lo tienes. Vale. Siempre es un local.

22. Uso de MongoDB y OpenAI

Short description:

Generalmente es un problema del entorno local. VS code con terminales en ejecución es probablemente el primer problema. Los beneficios de usar MongoDB con esto son que no tienes bases de datos separadas. Si tus datos ya están en MongoDB, están justo allí dentro de la base de datos. Para las bases de datos SQL, hay una funcionalidad similar que puedes agregar a ciertas bases de datos como PostgreSQL. Linkchain vector stores también tiene una incrustación de Superbase. MongoDB cumple con HIPAA, pero la seguridad de OpenAI es incierta. Alojar tu propio modelo puede ser una opción más segura. La autenticación en tu aplicación determina diferentes puntos finales para los usuarios y los médicos.

Quiero decir, generalmente es un problema del entorno local. Y eso siempre es lo más difícil de debug. Me alegra que lo hayas solucionado. Por ejemplo, un VS code con terminales en ejecución es probablemente el primer problema. Deberías haberlos cerrado antes de empezar esto. Está bien. Me alegra que lo hayas descubierto.

Permíteme responder a esta pregunta de Matthew. ¿Hay pros y contras particulares de los tipos de database que usamos con esto? Sé que usamos un NoSQL, pero si necesitamos usar una database SQL, lo hace. Funciona más o menos igual, sí. Entonces, los beneficios que vemos al usar esto junto con MongoDB es simplemente que no tienes bases de datos separadas. Porque si haces una búsqueda en Google de vector database, vas a encontrar Pinecone y un montón de otras bases de datos que son como extras añadidos, así que tienes tus datos normales quizás aquí en postgres y luego vas a tener pine cone db por aquí y luego tienes que como encontrar los dos um sincronizar los dos y y tener toda la comunicación de ida y vuelta añade un sobrecoste extra por eso nos gusta si estás guardando tus data ya en algún lugar en en mongodb en lugar de tener ese extra añadido está justo allí dentro de la database ahora para sql específicamente para postgres um hay un ¿cómo se llama? um uh olvidé cómo se llama pero es una funcionalidad similar que puedes añadir a ciertas bases de datos postgres creo que superbase podría tener la funcionalidad también y en general sí funciona más o menos igual Parece que incluso el mismo link chain vector stores también tiene una incrustación de superbase. Correcto. Así es. Sí. Sí. Sigue buscando en eso. Puedes ver las diferentes oportunidades. Sí. Usa este código en producción mañana. Sí, seguro. Sí. Si vas a la documentation de link chains bajo bases de datos vectoriales, hay una lista de todas las bases de datos que son compatibles con link chain. Y los otros, hay otros tipos de data. Bases de datos SQL también. Sí. Um, la idea es que donde sea que estén tus data ahora, la solución ideal es encontrar, um, una forma de usarlo donde está y almacenar las incrustaciones donde tus data todavía están en lugar de otra database en algún otro lugar que simplemente lo hace mucho más rápido y fácil. Um, sí, no, yo, yo entiendo completamente que hay, um, personas por encima de nuestras cabezas que eligen qué bases de datos usamos. Así que. Solo pienso que esto no es ni siquiera yo hablando como un representante de MongoDB. Solo siento que las incrustaciones son como naturalmente hechas para no estructuradas, son no estructuradas. Así que una database no estructurada como una database NoSQL tiene sentido para mí. Pero de nuevo, si tus data ya están en otro lugar, deberías encontrar una solución que funcione donde ya están tus data. Vale, genial. Déjame ver si hay alguna otra pregunta. Me quedaré por aquí unos minutos más, pero, de nuevo, agradezco mucho a todos los que se han unido.

Vale, entonces cumplimiento de HIPAA. Así que MongoDB, totalmente cumple con HIPAA. tenemos cuentas de salud, cuentas gubernamentales. Es completamente seguro en ese aspecto. El aspecto de open AI no es algo de lo que pueda hablar realmente. Sé que están trabajando muy duro para ser lo más seguros posible. No tengo dudas por el lado de MongoDB, pero por el lado de open AI, de nuevo, si tienes preocupaciones allí, alojar tu propio modelo sería el camino a seguir. Creo que hicieron un gran alboroto al decir que, hey, si eres una cuenta de organización o si estás usando nuestras APIs y desactivas la compartición de resultados, no las usan. Pero de nuevo, ellos están diciendo eso, no lo sabemos. Y son una pequeña empresa que avanza muy rápido, así que las cosas pueden salir mal. Exactamente. Puedes tener una cuenta enterprise allí. Puedes desactivar todas las funciones de compartición, y ellos dicen que es seguro. Así que podrías tomarlos por su palabra. Pero depende. Si tus data son super sensibles, podrías alojar tu propio modelo. Y supongo que tendríamos diferentes puntos finales para los usuarios en comparación con los médicos. Sí, seguro. Sí, eso volvería a la authentication en tu aplicación en cuanto a qué rutas ciertos usuarios pueden acceder y cuáles no. Genial. Sí. Sí, Richard y yo trabajamos para la misma empresa, así que tuvimos que cumplir con muchas de nuestras cosas. Pero tenemos alguna documentation que podríamos usar probablemente como esta para eso. No necesariamente creo que vaya a tener ninguna información confidencial. No debería ser un problema demasiado grande, pero quizás buscar nuestro propio modelo sería probablemente la forma correcta de hacerlo para un uso futuro. Seguro. Sí. Sí. Voy a hacer que Matt escriba esto más tarde. Genial. Sí. Tengo que averiguar cómo vender esto ahora. Estábamos buscando específicamente Chatbots para algunas de estas cosas. Es como, bueno, ahora podemos escribir el nuestro propio.

23. Chat de IA y Incrustaciones

Short description:

MongoDB recientemente añadió la función de Chat de IA a nuestros documentos y liberó el código fuente del Chatbot. La documentación de link chain es clave para intercambiar características o bases de datos. Las incrustaciones son la forma convencional de representar el conocimiento. Existen diferentes modelos de incrustaciones para diferentes medios. Se pueden utilizar banderas para eliminar los caracteres de nueva línea y las palabras de relleno. El contexto puede ser costoso, especialmente con mensajes más largos. El chatbot puede devolver diagramas o imágenes además de texto. Mantener las incrustaciones en la base de datos permite devolver el contexto relacionado. La búsqueda vectorial es un concepto interesante. Gracias por asistir a la masterclass.

Así que para eso específicamente, MongoDB recientemente añadió la función de Chat de IA a nuestros documentos, y eso es en lo que se basa gran parte de esto. Pero también liberamos el código fuente del Chatbot. Así que puedes ir a la cuenta de GitHub de manga y ver cómo construimos nuestro chatbot de IA también.

Vale. Y sé que él específicamente es naturalmente como las oficinas como la cumbre de React y todo eso, pero supongo que muchas cosas deberían seguir funcionando igual. Así que como usamos una pila .net para nuestro backend. Eso debería funcionar.

Vale. Sí. Sí. Funcionaría exactamente igual. Como dije, la documentación de link chain va a ser tu clave aquí porque la mayoría de este código se basa en link chain. Y así, de nuevo, si necesitas intercambiar características, intercambiar database, intercambiar lo que sea, está todo allí en lancha. Sí. Puede que haya algunas otras preguntas.

¿La incrustación es la única forma o la corriente principal para representar el conocimiento hoy en día? Sí, sí. Así que crear las incrustaciones vectoriales es – así que una computadora realmente no sabe qué es el texto. Sabe más sobre números. Y así, las incrustaciones es la forma de encontrar realmente información relevante. Así que una incrustación es sólo esa matriz de números. Y esa es la representación de la computadora de lo que sea. perro si pones perro a través del procedimiento de incrustación saldría en una cadena de números ¿verdad? y luego gato y y así es como la computadora toma este espacio multidimensional y organiza todos estos números de una manera que a veces es difícil de comprender pero organiza todos estos y sabe las cosas que están estrechamente relacionadas entre sí las saca así que esta es una forma de buscar cosas de una manera que una computadora puede entender rápidamente y fácilmente. Así que ahora, si queremos trabajar con otros formatos de información, ¿queremos convertirlos en incrustaciones? Sí. Sí, y querrás mirar los diferentes modelos de incrustación. Hay muchos, muchos modelos de incrustación diferentes. Hoy usamos el modelo de incrustación Ada02 de OpenAI, que es genial para el texto. Hay diferentes modelos de incrustación para diferentes tipos de medios. Así que hay modelos de incrustación para audio, para video o texto. Y así que sólo quieres hacer un poco de investigación en qué modelo de incrustación podría ser el mejor para tu caso de uso.

¿Elimina cosas como en la A, como sabes, cuando se incrusta? Puede. Sí, sí, hay una bandera. Hay una bandera. Así que tenía una en el código aquí. Tenía una bandera que elimina los caracteres de nueva línea. Y eso sólo ayuda a eliminar algunos de no tener que tener tantos bloques en tu texto. Así que puede eliminar las palabras de relleno también. Es sólo otra bandera. Y otra cosa que encontramos útil es que podrías tomar tu, casi tengo como una relación padre-hijo donde tienes un bloque del texto original en tu database y luego lo resumiste. en un resumen como un padre-hijo y luego tienes incrustación en el hijo y luego cuando encuentras esa incrustación resumida devuelves el trozo completo y así obtienes más contexto de esa manera pero ahorra es más barato en la uh en en la incrustación funcionalidad de vectorización termina siendo un poco más barato de esa manera Pero ¿no es el contexto de las cosas lo que va a ser más caro, verdad? Ejecutando con los mensajes más largos, enviamos el hilo completo de vuelta aquí. Así que si tuviera un mensaje corriendo durante mucho tiempo haciendo cientos de preguntas, sería más y más caro de usar como modelo. Sí. Sí, no, seguro. Hay un montón de jugadas de eficiencia que no están en práctica en esta demo, pero hay un montón de formas de llegar allí. Probé la nueva API de asistencia y guarda una amenaza que acabo de codificar el ID de hilo jugué con él durante unas horas y luego mis $10 se habían ido de la cuenta porque ocho. Tiene todo el contexto y los cinco archivos que también subí para cada competencia, sí hay un montón de cosas en las que pensar, si tú. Si quieres jugar barato y abrir el I. Sí. Como podemos decir, esto también podría ser sólo por el lado del chatbot de OpenAI, pero podría devolver, digamos, no sé, si tuvieras un diagrama en tu documentation, podría devolver eso al usuario? Podría, sí. También podrías crear incrustaciones. Así que generalmente, en documentation, vas a tener imágenes. No había ninguna imagen en estos documentos, pero podríamos extraer esas imágenes, crear incrustaciones para esas también. Y podría buscar realmente la imagen. Como podrías decir que esta imagen es un diagrama de algo. Estoy buscando el diagrama que tenía esto en él y podría buscar realmente las imágenes y devolverte ese diagrama. O si estaba sólo en la documentation y es relevante para la búsqueda, podría devolver la respuesta en formato de texto y el diagrama. OK, muy cool. Ahora eso será útil. Sí. Y así otra cosa es, de nuevo, por qué me gusta mucho mantener las incrustaciones en tus data que ya tienes en tu database juntas es porque tienes este bloque de texto que estás buscando que está incrustado. Pero hay muchas otras cosas que están relacionadas allí. Podría haber información del usuario. Podría haber toneladas de otras cosas. Así que encuentras esta información, no sólo podrías devolver el texto que buscaste, sino que también podrías devolver el contexto extra que está relacionado con ese documento o esa fila o columna o cualquier tipo de database que estés usando. Vale. Y definitivamente gracias por esta masterclass. Pero definitivamente creo que probablemente mi parte favorita de esto no fue sólo aprender a trabajar con un chatbot de IA, sino todas las otras cosas que pasaste. Nunca pensé en cosas como la búsqueda vectorial o cualquier cosa de ese tipo. Así que fue realmente genial aprender sobre todo eso. Así que muchas gracias por eso. Sí, sí.

24. Personalización de Modelos y Mantenerse Actualizado

Short description:

La personalización de modelos es crucial ya que a menudo son demasiado amplios para casos de uso específicos. La ingeniería de prompts permite respuestas precisas y personalizadas. Aunque puede que no haya libros específicos sobre el tema, se recomienda mantenerse actualizado a través de Twitter y la documentación. Abrazar los cambios constantes y explorar nuevas herramientas es parte del emocionante viaje. Gracias a todos por unirse y no duden en contactar para más preguntas o discusiones.

No hay problema. Esa es la salsa secreta en este momento. Me refiero a que tienes que personalizar estos modelos de alguna manera porque son demasiado amplios para muchos casos de uso. Así que tienes que afinarlos. Y así es como lo haces. Me encanta eso.

Es como una pregunta sobre una pregunta que estás enviando al chatbot como ese código que introducimos, eres un cierto así y así, le estás diciendo al chatbot cómo react y luego le estás pasando la pregunta que el usuario real va a hacer, realmente genial, sí de nuevo, todo eso vuelve a la ingeniería de prompts y no es ni siquiera el ejemplo más básico, pero esa plantilla de prompt podría ser muy larga y muy descriptiva y muy precisa y sólo devolver esta cosa específica o lo que sea, el límite es el cielo, sólo tienes que diseñar el prompt para hacer lo que quieras que haga, así que genial, bueno, ¿algún libro o recurso para una base que recomendarías? Esa es una buena pregunta, quiero decir, es tan nuevo que probablemente hay pero está cambiando tan rápidamente que ni siquiera recomendaría un libro, porque cambiaría la próxima semana. Honestamente, donde obtengo mucha inspiration e información es Twitter. Sé que a veces puede ser un lugar malo, pero encuentro todas las cosas más nuevas allí. Y luego, por supuesto, los documentos, la documentation, encontrar este nuevo sitio, este nuevo SaaS que sale para ayudarte. Quiero decir, todos estos diferentes paquetes han surgido de la nada. Así que simplemente mantenerse al día con lo nuevo y cómo todos están manteniéndose al día con ello, puede ser difícil porque hay mucho que aprender, Pero es un viaje divertido.

Oh, gracias, Richard. Genial. Nos estamos acercando al final. De nuevo, ha sido genial charlar con todos. Y realmente aprecio que se hayan unido. Si hay alguna otra pregunta, de nuevo, no duden en contactarme en LinkedIn o Twitter. Que tengan un gran día, todos. Gracias por unirse. Y espero verlos quizás en la próxima conferencia.