Home
Login

Base de données vectorielle open source native de l'IA, conçue pour les solutions de génération augmentée par la récupération (RAG) pour les applications de grands modèles linguistiques.

Apache-2.0Rust 20.6kchroma-core Last Updated: 2025-06-21

Chroma - Base de données vectorielle open source native pour l'IA

Aperçu du projet

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

Caractéristiques principales

1. Base de données vectorielle complète

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.

2. Support multilingue

  • Python: Langage de développement principal
  • JavaScript: Support pour le frontend et Node.js
  • Rust: Composants centraux haute performance

3. Support flexible des modèles d'embedding

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.

4. Multiples modes de déploiement

Supporte plusieurs modes de déploiement, y compris le mode en mémoire, le mode de stockage de fichiers et le mode serveur.

5. Hautement extensible

Supporte différents backends de stockage, tels que DuckDB pour une utilisation locale et ClickHouse pour l'extension d'applications à grande échelle.

Principaux cas d'utilisation

1. Systèmes de génération augmentée par la récupération (RAG)

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.

2. Recherche sémantique

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.

3. Recherche de similarité

Trouvez rapidement le contenu le plus similaire à une requête grâce au calcul de la distance dans l'espace vectoriel.

Architecture technique

Backend de stockage

  • DuckDB: Déploiement local léger
  • ClickHouse: Déploiement distribué à grande échelle
  • Stockage en mémoire: Développement rapide de prototypes

Traitement de l'embedding

  • Génération automatique d'embeddings
  • Support des fonctions d'embedding personnalisées
  • Capacité de traitement par lots

Gestion des métadonnées

  • Riches fonctionnalités de filtrage des métadonnées
  • Support des requêtes structurées
  • Capacité de recherche hybride

Installation et utilisation

Installation Python

pip install chromadb

Exemple d'utilisation basique

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
)

Intégration avec l'écosystème

Intégration LangChain

Chroma est profondément intégré à LangChain et peut être utilisé comme composant de stockage vectoriel.

Intégration OpenAI

Chroma est intégré aux fonctions d'embedding d'OpenAI, supportant le stockage et le filtrage de métadonnées arbitraires.

Avantages du projet

  1. Prêt à l'emploi: Tout est inclus, toutes les fonctionnalités sont pré-intégrées
  2. Facile à utiliser: Conception d'API simple, prise en main rapide
  3. Haute performance: Algorithmes de recherche vectorielle optimisés
  4. Extensible: Extension fluide du prototype à l'environnement de production
  5. Open source: Support communautaire actif et développement continu

Conclusion

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.