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
FAQ
Quelle est la différence entre ChromaDB et une base de données classique comme PostgreSQL ?
ChromaDB est-il adapté à un usage en production ?
Faut-il générer les embeddings soi-même avant de les stocker dans ChromaDB ?
Voir aussi
Recevez de nouveaux prompts chaque semaine
Rejoignez notre newsletter.