Chroma ist eine Open-Source-Datenbank für KI-Anwendungen, die speziell für die Speicherung und den Abruf von Vektoreinbettungen (Embeddings) entwickelt wurde. Es handelt sich um eine Einbettungsdatenbank (auch Vektordatenbank genannt), die Daten durch Nearest-Neighbor-Suche anstelle der herkömmlichen Substring-Suche von Datenbanken findet.
GitHub-Adresse: https://github.com/chroma-core/chroma
Chroma integriert verschiedene Funktionen, darunter Einbettung, Vektorsuche, Dokumentenspeicherung, Volltextsuche, Metadatenfilterung und multimodale Suche, alles in einer Plattform.
Standardmäßig verwendet Chroma Sentence Transformers für die Einbettung, unterstützt aber auch andere Einbettungsmodelle wie OpenAI Embeddings, Cohere (mehrsprachig) usw.
Unterstützt verschiedene Bereitstellungsmodi, darunter Speichermodus, Dateispeichermodus und Servermodus.
Unterstützt verschiedene Speicher-Backends, wie DuckDB für die lokale Verwendung und ClickHouse für die Skalierung großer Anwendungen.
In RAG-Systemen werden Dokumente zunächst eingebettet und in einer ChromaDB-Sammlung gespeichert. Anschließend werden Abfragen über ChromaDB ausgeführt, um semantisch relevante Inhalte zu finden.
In der semantischen Suche kann ChromaDB Datenpunkte finden, die sich aufgrund von Vektoreinbettungen ähneln. Dies ist sehr nützlich, um vergleichbare Dokumente, Bilder oder andere Datentypen durch Analyse von Inhalt oder Bedeutung zu identifizieren.
Schnelles Auffinden von Inhalten, die der Abfrage am ähnlichsten sind, durch Distanzberechnungen im Vektorraum.
pip install chromadb
import chromadb
client = chromadb.Client()
collection = client.create_collection("my_collection")
collection.add(
documents=["This is document 1", "This is document 2"],
metadatas=[{"source": "doc1"}, {"source": "doc2"}],
ids=["id1", "id2"]
)
results = collection.query(
query_texts=["search query"],
n_results=2
)
Chroma ist tief in LangChain integriert und kann als Vektorspeicherkomponente verwendet werden.
Chroma ist in die Einbettungsfunktionen von OpenAI integriert und unterstützt die Speicherung und Filterung beliebiger Metadaten.
Chroma ist eine unverzichtbare Infrastrukturkomponente in der modernen KI-Anwendungsentwicklung, die sich besonders für Anwendungsfälle eignet, die semantische Suche, RAG-Systeme und Vektorähnlichkeitsabgleich erfordern. Seine schlanke API, seine leistungsstarken Funktionen und seine gute Ökosystemintegration machen es zu einer bevorzugten Vektordatenbanklösung für Entwickler.