Lo que construiremos
En los próximos capítulos, crearemos un sistema RAG desde cero con Node.js y Gemini que te permitirá chatear con un PDF o documentación técnica, eliminando las alucinaciones.
Hasta ahora, hemos usado el modelo tal como viene de fábrica. Le hacemos una pregunta y él responde basándose en lo que aprendió durante su entrenamiento. Pero esto tiene dos problemas graves para el uso empresarial:
Para solucionar esto, existe RAG (Retrieval-Augmented Generation).
Para entender RAG, imaginemos un examen final de medicina:
“El estudiante con información de memoria”
El estudiante debe responder todas las preguntas de memoria, basándose únicamente en lo que estudió hace años en la universidad.
“El examen a libro abierto”
Al estudiante se le permite tener un libro de referencia (tus datos) sobre el escritorio.
Una duda común de todo desarrollador es: “¿Si quiero que la IA sepa sobre mi empresa, no debería re-entrenarla (Fine-Tuning)?”
La respuesta corta es: Casi nunca.
El Fine-Tuning es costoso, lento y difícil de mantener. RAG es barato, dinámico y preciso.
| Característica | 🧠 Fine-Tuning (Entrenamiento) | 🔍 RAG (Búsqueda + Contexto) |
|---|---|---|
| Analogía | Enviar al estudiante a la universidad otra vez. | Darle un manual actualizado al estudiante. |
| Objetivo | Cambiar la forma en que habla o razona. | Darle conocimiento nuevo o privado. |
| Datos nuevos | Requiere re-entrenar (días/semanas). | Instantáneo (solo subes el archivo). |
| Alucinaciones | Posibles (puede mezclar datos). | Mínimas (se basa en el texto recuperado). |
| Costo | Alto ($$$) | Bajo ($) |
El proceso consta de 3 pasos clave que implementaremos en este módulo:
Retrieval (Recuperación): El usuario hace una pregunta. El sistema busca en tu base de datos los fragmentos de texto (chunks) más parecidos semánticamente a esa pregunta.
Augmentation (Aumentación): Tomamos esos fragmentos encontrados y los “pegamos” dentro del prompt como contexto.
Prompt: “Usa la siguiente información: [FRAGMENTO 1] [FRAGMENTO 2] para responder a la pregunta del usuario…”
Generation (Generación): Enviamos ese prompt enriquecido al LLM. El modelo ya no tiene que inventar; solo tiene que procesar la información que le acabamos de dar.
Lo que construiremos
En los próximos capítulos, crearemos un sistema RAG desde cero con Node.js y Gemini que te permitirá chatear con un PDF o documentación técnica, eliminando las alucinaciones.