Contenido del curso
Herramientas y Búsqueda Vectorial
Orquestación y Construcción con LangGraph
Criterios de Uso y Finalización
Búsqueda vectorial con MongoDB paso a paso
Resumen
La búsqueda vectorial en MongoDB te permite encontrar documentos similares usando embeddings, sin depender de coincidencias exactas de texto. Aquí aprendes cómo importar datos JSON, crear un índice vectorial con coseno y verificar que tu agente de IA pueda consultar la base de datos de forma eficiente.
¿Cómo se prepara el entorno para trabajar con búsqueda vectorial?
El laboratorio corre en una máquina virtual con Visual Studio Code, un servidor de MongoDB y un Jupyter Notebook listo para ejecutar paso a paso en Python. Dentro de la carpeta laboratorios/Notebooks encuentras tres ejercicios: agentes, RAG y vector search. Para esta práctica trabajamos solo con el de agentes [02:10].
Antes de ejecutar nada, selecciona el kernel de Python apuntando al entorno global. Sin ese paso, las celdas no corren.
¿Qué es un Jupyter Notebook? Es un editor que ejecuta código por celdas. Cada celda tiene un botón de play y al terminar muestra un check verde. Te permite construir aplicaciones complejas paso a paso, viendo el resultado intermedio.
¿Qué hace cada celda inicial del notebook?
Los primeros pasos preparan el terreno antes de tocar la base de datos:
- Paso 1: importa las librerías necesarias.
- Paso 2: define variables globales como la URL de MongoDB y hace un ping al servidor para confirmar conexión.
- Paso 3: importa los datos JSON dentro de la base de datos.
El ping es la prueba de que MongoDB se comporta como una API. Le pides al cliente ejecutar un comando, el servidor responde OK y ya estás en comunicación con el motor.
¿Cómo se importan documentos JSON con embeddings a MongoDB?
Los datos viven en la carpeta Data como archivos JSON. El notebook lee esos archivos, limpia la colección destino e inserta cada objeto en la base. Al ejecutar la celda, ves un mensaje: 107 documentos han sido guardados en la base de datos de MongoDB [05:30].
Si abres la extensión de MongoDB en la barra lateral izquierda y refrescas, aparece la colección Documentos con Embeddings. Cada documento conserva su contenido original más un campo nuevo: el embedding, un arreglo largo de números que representa el significado del texto en un espacio vectorial.
Esto es clave del modelo de documento de MongoDB: el dato y su vector viven juntos en el mismo objeto. No necesitas un repositorio externo para los vectores ni preocuparte por mantenerlos sincronizados.
¿Qué es un embedding? Es un arreglo de números que representa el significado de un texto, imagen o audio. Documentos con significados parecidos tienen embeddings cercanos en el espacio vectorial.
¿Cómo se crea un índice de búsqueda vectorial en MongoDB?
El índice le dice a MongoDB cómo comparar vectores cuando llegue una consulta. En el notebook, la celda de creación de índice está incompleta a propósito: tienes que copiar el bloque de código número uno desde las instrucciones del laboratorio y pegarlo reemplazando los corchetes vacíos.
La configuración del índice define tres cosas:
- El algoritmo de similaridad: cosine (coseno).
- Las dimensiones del vector: 384, que coincide con el tamaño del embedding generado.
- El tipo de índice: vectorial.
Al ejecutar la celda, MongoDB empieza a indexar. Con 107 documentos el proceso es casi instantáneo, pero en bases grandes con millones de embeddings tarda más. Una segunda celda verifica que el índice quedó listo antes de continuar.
¿Cómo se consulta la base usando Aggregation Pipeline?
Una vez con el índice activo, las búsquedas se ejecutan a través de una función de MongoDB llamada Aggregation Pipeline, que encadena operaciones. La primera etapa hace la búsqueda vectorial y las siguientes transforman el resultado.
En este laboratorio el pipeline devuelve dos campos por cada documento encontrado:
- El contenido del documento.
- El score de similitud.
El score es un número entre 0 y 1 que indica qué tan parecido es el resultado al vector de la consulta. Si buscas la foto de un gato y MongoDB encuentra otra foto de gato, el score se acerca a 0.99. Si pasas la foto de una moto, igual te devuelve la foto del gato disponible, pero con un score cercano a 0.7, reflejando menor confianza [14:50].
¿Qué significa el score en búsqueda vectorial? Es la confianza que tiene MongoDB de que el documento devuelto se parece al vector de tu query. Va de 0 a 1, donde 1 es coincidencia casi perfecta.
¿Por qué conviene guardar datos y vectores en el mismo documento?
En arquitecturas tradicionales tendrías una base relacional para los datos y un servicio aparte para los vectores, con todo el costo de sincronizarlos. Con el modelo de documento de MongoDB, cuando pides el objeto recibes también su embedding, y cuando haces la búsqueda vectorial recuperas el contenido completo en una sola operación.
Esto simplifica tu agente de IA: una sola fuente de verdad, una sola API, un solo lugar donde mantener consistencia entre el texto, su vector y la memoria del agente.
¿Qué tipo de agente vas a construir sobre esta base? Cuéntame en los comentarios cómo piensas usar la búsqueda vectorial en tu próximo proyecto.