Chroma est une base de données open source pour les applications d'IA, spécialement conçue pour stocker et récupérer des embeddings vectoriels. C'est une base de données d'embeddings (également appelée base de données vectorielle) qui permet de trouver des données par recherche de plus proches voisins plutôt que par recherche de sous-chaînes comme dans les bases de données traditionnelles.
Adresse GitHub: https://github.com/chroma-core/chroma
Chroma intègre de nombreuses fonctionnalités, notamment l'embedding, la recherche vectorielle, le stockage de documents, la recherche en texte intégral, le filtrage des métadonnées et la récupération multimodale, le tout intégré dans une seule plateforme.
Par défaut, Chroma utilise Sentence Transformers pour l'embedding, mais peut également utiliser OpenAI embeddings, Cohere (multilingue) et d'autres modèles d'embedding.
Supporte plusieurs modes de déploiement, y compris le mode en mémoire, le mode de stockage de fichiers et le mode serveur.
Supporte différents backends de stockage, tels que DuckDB pour une utilisation locale et ClickHouse pour l'extension d'applications à grande échelle.
Dans les systèmes RAG, les documents sont d'abord intégrés et stockés dans une collection ChromaDB, puis des requêtes sont exécutées via ChromaDB pour trouver du contenu sémantiquement pertinent.
Dans la recherche sémantique, ChromaDB est capable de trouver des points de données similaires les uns aux autres en se basant sur les embeddings vectoriels, ce qui est très utile pour identifier des documents, des images ou d'autres types de données comparables en analysant leur contenu ou leur signification.
Trouvez rapidement le contenu le plus similaire à une requête grâce au calcul de la distance dans l'espace vectoriel.
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 est profondément intégré à LangChain et peut être utilisé comme composant de stockage vectoriel.
Chroma est intégré aux fonctions d'embedding d'OpenAI, supportant le stockage et le filtrage de métadonnées arbitraires.
Chroma est un composant d'infrastructure indispensable dans le développement d'applications d'IA modernes, particulièrement adapté aux cas d'utilisation nécessitant la recherche sémantique, les systèmes RAG et la correspondance de similarité vectorielle. Son API simple, ses fonctionnalités puissantes et sa bonne intégration à l'écosystème en font une solution de base de données vectorielle de choix pour les développeurs.