What is Chroma?
Chroma is an open-source vector database designed to make it easy to build LLM applications that use embeddings. It stores your text (or images), converts them to vectors, and lets you query by semantic similarity.
Why Vectors?
Traditional databases search by exact match or keyword. Vector databases search by meaning. If you search for "dog", a vector search also returns results about "puppy", "canine", or "pet" because they're semantically close.
Key Features
- Simple API —
add(),query(),delete(). No configuration overhead. - In-memory or persistent — Start in-memory for prototypes; switch to disk with one line change.
- Client/Server mode — Run as a standalone server for shared access.
- Auto-embedding — Pass raw text; Chroma handles embedding with a built-in model.
- Metadata filtering — Filter by metadata alongside vector search.
Quick Start
import chromadb
client = chromadb.Client() # in-memory
collection = client.create_collection("my_docs")
collection.add(documents=["My doc text"], ids=["doc1"])
results = collection.query(query_texts=["related query"], n_results=2)
Integrations
First-class integrations with LangChain, LlamaIndex, and OpenAI. For production scale, consider Qdrant or Weaviate — Chroma's strength is simplicity, not raw performance.