P

Chromadb : Définition et Exemples

ChromaDB est une base de données vectorielle open source conçue pour stocker, indexer et rechercher des embeddings, facilitant ainsi la création d'applications d'IA utilisant la recherche sémantique et la mémoire contextuelle.

Définition complète

ChromaDB (souvent stylisé Chroma) est une base de données vectorielle open source spécialement conçue pour les applications d'intelligence artificielle. Contrairement aux bases de données traditionnelles qui stockent des données structurées sous forme de lignes et de colonnes, ChromaDB stocke des vecteurs d'embeddings — des représentations numériques du sens sémantique de textes, images ou autres données. Cela permet de rechercher des informations par similarité de sens plutôt que par correspondance exacte de mots-clés.

ChromaDB s'est imposé comme l'un des outils les plus populaires dans l'écosystème RAG (Retrieval-Augmented Generation). Son rôle principal est de servir de mémoire externe aux grands modèles de langage (LLM). Lorsqu'un utilisateur pose une question, ChromaDB permet de retrouver rapidement les documents les plus pertinents dans une base de connaissances, qui sont ensuite injectés dans le contexte du prompt pour enrichir la réponse du modèle.

L'un des atouts majeurs de ChromaDB est sa simplicité d'utilisation. En quelques lignes de code Python, il est possible de créer une collection, d'y ajouter des documents avec leurs embeddings, et d'effectuer des recherches sémantiques. ChromaDB gère automatiquement la génération des embeddings si un modèle est configuré, et propose une API intuitive qui s'intègre facilement avec des frameworks comme LangChain, LlamaIndex ou directement avec l'API d'OpenAI ou d'Anthropic.

ChromaDB peut fonctionner en mode embarqué (directement dans un script Python, idéal pour le prototypage) ou en mode client-serveur pour les déploiements en production. Il supporte la persistance des données sur disque, le filtrage par métadonnées, et propose des fonctionnalités avancées comme la gestion de collections multiples et différentes fonctions de distance pour le calcul de similarité.

Étymologie

Le nom "Chroma" fait référence au spectre de couleurs (du grec ancien χρῶμα, "couleur"), évoquant métaphoriquement la richesse et la diversité des dimensions dans l'espace vectoriel où sont représentées les données. Le suffixe "DB" signifie simplement "database" (base de données).

Exemples concrets

Construction d'un chatbot RAG avec une base de connaissances d'entreprise

Tu es un assistant qui répond aux questions en t'appuyant uniquement sur les documents suivants extraits de ChromaDB :

{documents_retrouvés}

Question de l'utilisateur : {question}

Réponds de manière précise en citant les sources pertinentes.

Recherche sémantique dans une documentation technique

À partir des résultats de recherche sémantique suivants (classés par score de similarité depuis ChromaDB), synthétise une réponse à la question de l'utilisateur. Si les documents ne contiennent pas l'information, dis-le clairement.

Documents : {résultats_chroma}
Question : {question}

Système de recommandation de contenu basé sur la similarité sémantique

Voici un article que l'utilisateur vient de lire : {article_actuel}

Voici les 5 articles les plus similaires trouvés via ChromaDB : {articles_similaires}

Génère un message de recommandation personnalisé qui explique pourquoi ces articles pourraient intéresser le lecteur.

Usage pratique

En prompt engineering, ChromaDB est utilisé pour implémenter le pattern RAG : on stocke des documents sous forme d'embeddings dans Chroma, puis on effectue une recherche sémantique pour retrouver les passages pertinents à injecter dans le contexte du prompt. Cela permet de donner au LLM un accès à des connaissances spécifiques sans fine-tuning, tout en gardant des réponses ancrées dans des sources vérifiables. La qualité des résultats dépend fortement du chunking des documents et du modèle d'embedding choisi.

Concepts liés

EmbeddingRAG (Retrieval-Augmented Generation)Base de données vectorielleRecherche sémantique

FAQ

Quelle est la différence entre ChromaDB et une base de données classique comme PostgreSQL ?
Une base de données classique recherche par correspondance exacte (mots-clés, valeurs précises), tandis que ChromaDB recherche par similarité sémantique dans un espace vectoriel. Par exemple, une recherche pour "véhicule électrique" dans ChromaDB retrouvera aussi des documents parlant de "voiture à batterie" ou "mobilité zéro émission", car le sens est proche même si les mots diffèrent. PostgreSQL peut aussi stocker des vecteurs via l'extension pgvector, mais ChromaDB est optimisé nativement pour ce cas d'usage.
ChromaDB est-il adapté à un usage en production ?
ChromaDB est excellent pour le prototypage et les projets de taille modérée grâce à sa simplicité. Pour la production à grande échelle (millions de vecteurs, haute disponibilité), des alternatives comme Pinecone, Weaviate ou Qdrant offrent davantage de fonctionnalités d'infrastructure (clustering, réplication, monitoring). Cependant, ChromaDB évolue rapidement et son mode client-serveur permet déjà des déploiements sérieux pour de nombreux cas d'usage.
Faut-il générer les embeddings soi-même avant de les stocker dans ChromaDB ?
Non, ChromaDB peut générer automatiquement les embeddings si vous configurez une fonction d'embedding (par défaut, il utilise le modèle all-MiniLM-L6-v2 de Sentence Transformers). Vous pouvez aussi utiliser les embeddings d'OpenAI, de Cohere ou d'autres fournisseurs. Il suffit d'ajouter vos documents en texte brut et ChromaDB s'occupe de la vectorisation, ce qui simplifie considérablement le workflow.

Voir aussi

Recevez de nouveaux prompts chaque semaine

Rejoignez notre newsletter.