Chroma est une application de base de données intégrée qui est incorporée dans notre code sous la forme d'un package. L'avantage de Chroma réside dans sa simplicité. Si vous avez besoin d'une base de données vectorielle pour implémenter la mémoire LLM dans le développement d'applications LLM, qu'elle prend en charge la recherche de similarité de texte et que vous ne souhaitez pas installer une base de données vectorielles indépendante, Chroma est un bon choix. Actuellement, la bibliothèque Chroma prend en charge deux langages : Python et JavaScript. Ce tutoriel est principalement basé sur Python.
1. Installer Chromadb
pip install chromadb
Remarque : La version actuelle de chromadb n'est pas compatible avec Python 3.11. Il est recommandé de rétrograder la version de Python.
2. Initialiser le client Chroma
import chromadb
chroma_client = chromadb.Client()
3. Créer une collection
Une collection est similaire à une table dans la base de données Chroma, où les données vectorielles (y compris les documents et autres données sources) sont stockées. Créez une collection comme suit :
collection = chroma_client.create_collection(name="tizi365")
4. Ajouter des données
Après avoir défini une collection, ajoutez des données à la collection. Chroma stockera nos données et créera un index vectoriel spécial basé sur le vecteur des données textuelles pour une interrogation ultérieure facile.
4.1. Calculer les vecteurs à l'aide du modèle d'incorporation intégré
collection.add(
documents=["Ceci est un document", "Ceci est un autre document"],
metadatas=[{"source": "ma_source"}, {"source": "ma_source"}],
ids=["id1", "id2"]
)
4.2. Spécifier les valeurs vectorielles lors de l'ajout de données
collection.add(
embeddings=[[1.2, 2.3, 4.5], [6.7, 8.2, 9.2]],
documents=["Ceci est un document", "Ceci est un autre document"],
metadatas=[{"source": "ma_source"}, {"source": "ma_source"}],
ids=["id1", "id2"]
)
5. Interroger les données
Maintenant, vous pouvez interroger du contenu textuel similaire, et Chroma renverra "n" résultats les plus similaires. Voici un exemple d'interrogation de contenu de document similaire basé sur le paramètre d'interrogation query_texts :
results = collection.query(
query_texts=["Ceci est un document à interroger"],
n_results=2
)
Par défaut, les données dans Chroma sont stockées en mémoire, de sorte que les données sont perdues lorsque le programme est redémarré. Bien entendu, vous pouvez configurer Chroma pour persister les données sur le disque dur, de sorte que le programme chargera les données depuis le disque au démarrage.