0Pricing
Learn AI with Python · Leçon

Bases vectorielles : Chroma et FAISS

Création et conservation de bases vectorielles, recherche par similarité, récupération MMR, recherche hybride.

Bases vectorielles : Chroma et FAISS est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.

Qu’est-ce qu’une base vectorielle ?

Une base vectorielle conserve vos segments vectorisés et trouve ceux qui ressemblent le plus à un vecteur de requête. C’est le moteur de recherche au cœur de RAG. Deux choix populaires sont Chroma et FAISS.

pip install langchain-chroma faiss-cpu

Création d’une base Chroma

Chroma.from_documents vectorise vos segments et les indexe en un seul appel. Transmettez les documents et un objet de vectorisation. Chroma renvoie une base dans laquelle vous pouvez effectuer immédiatement des recherches.

from langchain_chroma import Chroma
from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
db = Chroma.from_documents(chunks, embeddings)

Persistance de Chroma sur disque

Transmettez persist_directory afin que l’index soit enregistré sur disque et survive aux redémarrages. Rechargez-le plus tard en construisant Chroma avec le même répertoire et le même objet de vectorisation, ce qui évite le coût d’une nouvelle vectorisation.

db = Chroma.from_documents(
    chunks, embeddings,
    persist_directory="./chroma_db"
)

# Reload later
db = Chroma(persist_directory="./chroma_db", embedding_function=embeddings)

Recherche par similarité

Effectuez une requête avec similarity_search(query, k=4). Cette opération vectorise la requête, trouve les k segments les plus proches et les renvoie sous forme de documents. k détermine le nombre de passages récupérés.

results = db.similarity_search("How do I reset my password?", k=4)
for doc in results:
    print(doc.page_content[:80])

Évaluation des résultats de recherche

Utilisez similarity_search_with_score pour obtenir également une valeur de distance pour chaque résultat. Une distance plus faible indique une plus grande similarité. Ces valeurs vous aident à écarter les correspondances faibles avant de les transmettre au LLM.

pairs = db.similarity_search_with_score("password reset", k=4)
for doc, score in pairs:
    print(round(score, 3), doc.page_content[:60])

Présentation de FAISS

FAISS est une bibliothèque très performante de recherche vectorielle. Elle est extrêmement rapide et économe en mémoire, ce qui la rend idéale pour les grands index locaux sans serveur distinct.

Création d’une base FAISS

L’interface de programmation ressemble à celle de Chroma : FAISS.from_documents crée l’index. FAISS conserve l’index en mémoire ; il est donc idéal pour les recherches principalement en lecture au sein du processus.

from langchain_community.vectorstores import FAISS

db = FAISS.from_documents(chunks, embeddings)
results = db.similarity_search("refund policy", k=3)

Enregistrement et chargement de FAISS

Faites persister un index FAISS avec save_local, puis rechargez-le avec load_local. Le rechargement nécessite allow_dangerous_deserialization=True, car l’index utilise pickle.

db.save_local("faiss_index")

db = FAISS.load_local(
    "faiss_index", embeddings,
    allow_dangerous_deserialization=True
)

Pertinence ou diversité

Une recherche par similarité simple peut renvoyer quatre segments presque identiques. Vous souhaitez parfois des résultats diversifiés qui couvrent différents aspects de la réponse. C’est là que MMR est utile.

Récupération par MMR

La pertinence marginale maximale (MMR) établit un équilibre entre pertinence et diversité en sélectionnant des segments pertinents, mais non redondants. Utilisez search_type="mmr" par l’intermédiaire de l’interface de récupération.

retriever = db.as_retriever(
    search_type="mmr",
    search_kwargs={"k": 4, "fetch_k": 20}
)
docs = retriever.invoke("password reset")

Choisir entre Chroma et FAISS

Chroma est convivial, persistant et adapté aux prototypes et aux petites applications. FAISS est plus rapide à grande échelle et idéal pour les recherches en mémoire. Les deux exposent similarity_search et as_retriever, ce qui facilite le changement de base.

Vérification rapide

Vérifiez vos connaissances sur les bases vectorielles.

Récapitulatif : Chroma et FAISS

Vous avez créé des bases vectorielles avec Chroma.from_documents (en utilisant persist_directory) et FAISS.from_documents, effectué des recherches avec similarity_search(query, k=4), puis enregistré et rechargé les deux bases. Vous avez utilisé as_retriever avec MMR pour obtenir des résultats diversifiés et appris quand choisir chaque base.

Questions Fréquemment Posées

La leçon « Bases vectorielles : Chroma et FAISS » est-elle gratuite ?

Oui — le texte complet de « Bases vectorielles : Chroma et FAISS » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Bases vectorielles : Chroma et FAISS » ?

Création et conservation de bases vectorielles, recherche par similarité, récupération MMR, recherche hybride. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Learn AI with Python ?

Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Bases vectorielles : Chroma et FAISS » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?

Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Architecture de LangChain et LCEL
  2. Charger, découper et plonger des documents
  3. Bases vectorielles : Chroma et FAISS
  4. Créer un système de questions-réponses RAG de bout en bout
← Retour à Learn AI with Python