Configuración Inicial: Entorno de Desarrollo y Primeros Pasos

Video
25 min~4 min lectura

Reproductor de video

Concepto clave

La Configuración Inicial en sistemas RAG es el proceso de preparar tu entorno de desarrollo para trabajar con bases de datos vectoriales. Piensa en esto como preparar tu taller de carpintería antes de construir un mueble: necesitas las herramientas correctas, el espacio organizado y los materiales a mano. Sin esta preparación, incluso el mejor diseño fallará en la ejecución.

En el contexto de RAG, esta configuración incluye tres componentes principales: el entorno de Python con las bibliotecas necesarias, la conexión a tu base de datos vectorial elegida, y la estructura inicial para cargar y procesar documentos. Cada base de datos vectorial (Chroma, Pinecone, pgvector) tiene requisitos específicos, pero comparten principios comunes de configuración que dominarás en esta lección.

Cómo funciona en la práctica

Vamos a configurar un entorno básico para trabajar con Chroma, la base de datos vectorial más simple para comenzar. Sigue estos pasos:

  1. Crea un entorno virtual de Python: python -m venv rag_env
  2. Activa el entorno e instala las dependencias básicas:
    pip install chromadb langchain sentence-transformers
  3. Configura tu primer cliente de Chroma:
    import chromadb
    client = chromadb.Client()
    collection = client.create_collection(name="documentos_prueba")
  4. Prepara tu primer embedding usando SentenceTransformers:
    from sentence_transformers import SentenceTransformer
    model = SentenceTransformer('all-MiniLM-L6-v2')
    vector = model.encode("Este es mi primer documento")

Esta configuración básica te permite comenzar a experimentar inmediatamente con embeddings y almacenamiento vectorial.

Caso de estudio

Imagina que trabajas en una empresa de e-learning que quiere implementar un asistente de preguntas sobre su contenido educativo. Tu tarea es configurar el entorno para procesar 500 documentos PDF de cursos.

ComponenteConfiguraciónJustificación
Entorno PythonPython 3.9+ con 16GB RAMCompatibilidad con bibliotecas modernas y memoria para embeddings
Base de datosChroma en modo persistenteSimpleza inicial, almacenamiento local, fácil depuración
Modelo de embeddingsall-MiniLM-L6-v2Balance entre rendimiento y precisión para texto educativo
Estructura de carpetas/docs, /embeddings, /scriptsOrganización escalable para crecimiento futuro
La elección de Chroma sobre Pinecone o pgvector en esta fase se debe a su simplicidad operacional: no requiere servicios externos ni configuración de base de datos relacional, permitiendo enfocarse en los conceptos fundamentales.

Errores comunes

  • No usar entornos virtuales: Instalar bibliotecas globalmente causa conflictos de versiones. Siempre usa venv o conda para aislar proyectos.
  • Subestimar los requisitos de memoria: Los modelos de embeddings consumen RAM significativa. Para proyectos medianos, comienza con al menos 8GB disponibles.
  • Mezclar versiones incompatibles: ChromaDB 0.4.x tiene API diferente a 0.3.x. Fija versiones en requirements.txt desde el inicio.
  • Ignorar la persistencia: Chroma en modo por defecto (ephemeral) pierde datos al reiniciar. Usa PersistentClient() para proyectos reales.
  • No planificar la escalabilidad: Comenzar con estructura de carpetas desorganizada dificulta migrar a Pinecone o pgvector después.

Checklist de dominio

  1. Entorno virtual de Python configurado y activado
  2. ChromaDB instalado y cliente básico funcionando
  3. Modelo de embeddings descargado y produciendo vectores
  4. Estructura de proyecto organizada con separación clara de responsabilidades
  5. Sistema de control de versiones (Git) inicializado con .gitignore apropiado
  6. Script de configuración reproducible (requirements.txt o environment.yml)
  7. Primera colección de documentos creada y verificada en Chroma

Configura un entorno completo para procesar documentos técnicos

Como ingeniero de datos en una startup tecnológica, necesitas configurar un entorno para procesar documentación técnica de APIs. Sigue estos pasos:

  1. Crea un nuevo directorio llamado rag_tecnical_docs y dentro, establece un entorno virtual Python 3.9+
  2. Instala las siguientes bibliotecas con versiones específicas:
    • chromadb==0.4.15
    • langchain==0.0.340
    • sentence-transformers==2.2.2
    • pypdf==3.17.0
  3. Configura Chroma en modo persistente en una subcarpeta vector_store
  4. Crea un script setup.py que:
    • Inicialice el cliente persistente de Chroma
    • Cree una colección llamada "api_documentation"
    • Cargue y convierta a texto un PDF de ejemplo (puedes usar cualquier PDF técnico)
    • Genere embeddings para el primer párrafo usando all-MiniLM-L6-v2
    • Almacene el embedding en la colección con metadatos básicos
  5. Verifica la configuración ejecutando el script y confirmando que la colección existe con al menos un documento.
Pistas
  • Recuerda que Chroma PersistentClient requiere una ruta de directorio, no un nombre de archivo
  • El modelo sentence-transformers se descarga automáticamente en primer uso, lo que puede tomar varios minutos
  • Para PDFs simples, langchain tiene document loaders que simplifican la extracción de texto

Evalua tu comprension

Completa el quiz interactivo de arriba para ganar XP.