Configurar Chroma
Introducción
Chroma es una de las bases de datos vectoriales más accesibles para comenzar con RAG. Se instala localmente, ofrece una API en Python y funciona bien para prototipos y proyectos pequeños a medianos. Este artículo explica cómo instalar Chroma, crear una colección y guardar tus primeros documentos.
Chroma en pocas palabras
Chroma almacena embeddings y metadatos en colecciones. Conviertes tus textos en vectores, los añades junto con metadatos y los consultas después. Chroma puede ejecutarse en memoria, guardarse en archivo o correr como contenedor Docker.
Conceptos y componentes clave
| Término | Significado |
|---|---|
| Collection | Contenedor para embeddings relacionados |
| Embedding | Vector que representa un texto |
| Metadatos | Información adicional sobre un chunk, como fuente o categoría |
| Persistencia | Almacenamiento de datos en disco |
Relevancia práctica
¿Cuándo es Chroma la opción adecuada?
Chroma es ideal si quieres experimentar rápidamente con RAG. Maneja muchos documentos, corre localmente y es fácil de usar. Para grandes volúmenes de datos o sistemas en producción con muchos accesos simultáneos, Qdrant o pgvector ofrecen más capacidades.
Instalación
Instala Chroma fácilmente con pip:
pip install chromadb
Para una instalación persistente en el directorio actual basta un script Python simple.
Primeros pasos
import chromadb
client = chromadb.PersistentClient(path="./chroma_db")
collection = client.create_collection(name="dokumente")
collection.add(
documents=["RAG verbindet Dokumentensuche mit Sprachmodellen.", "Chroma speichert Vektoren lokal."],
metadatas=[{"quelle": "artikel"}, {"quelle": "artikel"}],
ids=["id1", "id2"]
)
results = collection.query(
query_texts=["Wie funktioniert RAG?"],
n_results=2
)
print(results)
Chroma genera los embeddings automáticamente. Alternativamente, puedes proporcionar tus propias funciones de embedding.
En memoria vs. persistente
Para pruebas rápidas basta un chromadb.Client() sin ruta. En este caso, los datos se pierden al terminar. Para proyectos reales usa PersistentClient o el contenedor Docker para que los datos se conserven.
Consideraciones de hardware, costos y seguridad
Chroma usa pocos recursos. Consume poca memoria RAM y poco espacio en disco. La mayoría de aplicaciones corre en un ordenador normal. Es software open source y gratuito. Como se ejecuta localmente, todos tus documentos y vectores permanecen en tu propia red.
Más información y temas sobre IA
- Chroma se instala vía pip.
- Los datos se organizan en colecciones.
- PersistentClient almacena datos localmente.
- Chroma es ideal para prototipos y proyectos RAG locales.
Más sobre embeddings en Modelos de embedding y sobre bases de datos vectoriales en general en Bases de datos vectoriales.
FAQ - Preguntas frecuentes sobre Chroma
¿Puede Chroma trabajar con Ollama?
Sí. Usas Ollama para el modelo de lenguaje y Chroma para la base de datos vectorial. Ambos corre localmente y se comunican a través de tu script Python.
¿Cuántos documentos puede manejar Chroma?
Chroma es adecuado para miles de documentos. Con millones de entradas, deberías cambiar a soluciones más escalables como Qdrant.
¿Necesito Docker para Chroma?
No, también funciona directamente con Python. Docker es opcional y conveniente para configuraciones en servidor.
¿Puedo usar Chroma con Open WebUI?
Open WebUI soporta RAG con varias bases de datos vectoriales. La configuración depende de la versión de WebUI que elijas.
Herramientas y recursos adicionales
Además de Chroma, Qdrant, pgvector y Weaviate son alternativas válidas. Para comenzar, Chroma es especialmente simple.
Fuentes
- Documentación de Chroma
- Repositorio GitHub de Chroma


