¡Hola y bienvenido/a de nuevo! En el vídeo anterior, preparamos nuestros documentos cargándolos y dividiéndolos en fragmentos. Ahora, vamos a hacer que ese texto sea buscable e inteligente convirtiéndolo en embeddings y almacenándolo en una base de datos vectorial.
¿Qué son los Embeddings? El «Idioma» de la IA
Si eres nuevo en este concepto, piensa en los embeddings como una forma de traducir texto a números de una manera que captura su significado semántico. Textos con significados similares tendrán series de números similares.
Imagina que le preguntas al chatbot: «¿Cuál es la política de vacaciones?». Para responder, el sistema necesita encontrar los fragmentos más relevantes de tu documento. Aquí es donde ocurre la magia:
- Los embeddings convierten tanto tu pregunta como cada fragmento de documento en vectores (una lista de números).
- El sistema busca los fragmentos cuyo vector es matemáticamente más similar al vector de tu pregunta.
Es como tener un bibliotecario súper inteligente que entiende el significado de las palabras, no solo las palabras clave.
Paso 1: Añadir el Nodo de Embeddings
Vamos a añadir el componente que se encargará de esta «traducción».
- En tu flujo de trabajo del Chatbot RAG, haz clic en
+ Add Nodes
->Embeddings
. - Verás opciones para diferentes proveedores (OpenAI, Cohere, etc.). Usaremos
Google Generative AI Embeddings
, ya que son muy eficientes y puedes usar la misma API Key que para el modelo de chat. - Arrastra el nodo al lienzo.
- Configuración:
- Credential: Selecciona tu API Key de Google que ya tenías configurada.
- Model Name: Deja el modelo por defecto (
embedding-001
), está optimizado para este tipo de tareas de recuperación de información.
Paso 2: Configurar el Almacén de Vectores (Vector Store)
Ahora que podemos convertir texto en vectores, necesitamos un lugar donde almacenarlos para poder buscarlos rápidamente.
- Ve a
+ Add Nodes
->Vector Stores
. - Verás muchas opciones, desde bases de datos en la nube (como Pinecone, Weaviate) hasta opciones locales (como Chroma, FAISS).
- Para este proyecto, usaremos la opción más sencilla y perfecta para prototipar:
In-Memory Vector Store
. Como su nombre indica, almacena los vectores en la memoria mientras el flujo se está ejecutando. - Arrastra el nodo al lienzo.
Paso 3: Conectar los Componentes
Este es el paso final donde ensamblamos nuestra base de conocimiento. El nodo In-Memory Vector Store
tiene dos entradas principales:
- Conecta los Documentos: Arrastra una conexión desde la salida del
Recursive Character Text Splitter
a la entradaDocuments
delIn-Memory Vector Store
. - Conecta los Embeddings: Arrastra una conexión desde la salida del
Google Generative AI Embeddings
a la entradaEmbeddings
delIn-Memory Vector Store
.
Configuración Adicional:
- Verás un parámetro llamado
Top K
en el Vector Store, con un valor de4
. Esto significa que, cuando hagamos una búsqueda, el sistema nos devolverá los 4 fragmentos más relevantes para nuestra pregunta. Es un buen valor por defecto.
Resumen del Flujo de Datos hasta Ahora
Vamos a repasar el viaje que hacen nuestros datos:
- El File Loader lee el documento.
- El Text Splitter lo divide en fragmentos manejables.
- El nodo de Embeddings convierte cada uno de esos fragmentos en un vector numérico.
- El Vector Store guarda cada fragmento de texto junto con su vector correspondiente, creando una base de conocimiento inteligente y buscable.
¡Ya tenemos un sistema de almacenamiento de documentos inteligente!
En el vídeo final, añadiremos la IA conversacional que usará esta base de conocimiento para responder a nuestras preguntas. No olvides guardar tu progreso.
¡Te veo en la próxima y última lección de este proyecto!