BookinglyTech News
Software

RAG con Gemini y ChromaDB: un puente entre embeddings y generación

Se muestra cómo combinar un LLM con un vector database para responder preguntas de documentos específicos, usando Gemini y ChromaDB en Python.

2 min de lecturaDev.to0 vistas

Durante mi pasantía en Valentius Kryptix desarrollé un sistema RAG sencillo para demostrar la ventaja de combinar un modelo de lenguaje con una base de datos vectorial. El objetivo era entender cada fase de la pipeline, no solo ensamblarla.

El problema de los LLM sin acceso a documentos

Los LLMs, aunque fluidos, solo pueden responder con lo que aprendieron durante el entrenamiento. Cuando se les pregunta sobre un PDF concreto, un manual interno o un libro especializado, el modelo tiende a generalizar o admitir desconocimiento. RAG soluciona esto al permitir que el modelo “busque” antes de generar una respuesta.

Arquitectura del prototipo

  1. Carga del documento: Se utilizó un PDF de estructuras y algoritmos como prueba.
  2. Tokenización y embedding: Con Sentence Transformers y el modelo all‑MiniLM‑L6‑v2, cada bloque de texto se convierte en un vector semántico.
  3. Almacenamiento: Los vectores se insertan en ChromaDB, una base de datos vectorial ligera.
  4. Consulta: La pregunta del usuario también se convierte en vector y se busca la similitud con los vectores almacenados.
  5. Generación: Gemini recibe el contexto recuperado y produce la respuesta final.

Comparación sin y con RAG

Sin RAG: Al preguntar “¿Cuáles son las operaciones de una cola?” Gemini respondió con conceptos genéricos: enqueue, dequeue, etc., sin hacer referencia al documento.

Con RAG: La respuesta se alineó con el contenido del PDF, listando explícitamente:

  • Enqueue
  • Dequeue
  • Peek/Front
  • Rear
  • isFull
  • isEmpty

Esta comparación mostró de forma tangible el valor añadido del retrieval.

Lección clave

Un sistema RAG actúa como un puente entre dos tecnologías complementarias: una base de datos vectorial que encuentra información relevante y un LLM que la explica. Cada una por sí sola no logra una Q&A basada en documentos de manera óptima; su combinación mitiga las debilidades mutuas.

Próximos pasos

El artículo original detalla los cinco pasos completos, el código y los ajustes finos. Para profundizar, consulta la guía completa.

Guía completa

Relevancia para infra y desarrollo

Implementar RAG con ChromaDB y Gemini es viable con recursos modestos: un servidor con GPU moderada, Python 3.10+, y las librerías de Sentence Transformers y ChromaDB. La arquitectura se adapta a Kubernetes o entornos serverless, y las métricas de relevancia pueden evaluarse con embeddings y cosine similarity.

Para equipos que necesitan respuestas precisas a documentos internos sin exponer datos sensibles a terceros, un RAG local constituye una solución robusta y escalable.

Conclusión

El experimento confirma que la combinación de vector database y LLM potencia la capacidad de los modelos para responder preguntas basadas en documentos específicos. La implementación descrita es reproducible y ofrece un punto de partida sólido para proyectos de RAG en producción.