0Pricing
Learn AI with Python · Lektion

Vektorspeicher: Chroma und FAISS

Vektorspeicher erstellen und persistieren, Ähnlichkeitssuche, MMR-Retrieval, hybride Suche.

Vektorspeicher: Chroma und FAISS ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.

Was ist ein Vektorspeicher?

Ein Vektorspeicher enthält Ihre eingebetteten Chunks und findet diejenigen, die einem Abfragevektor am ähnlichsten sind. Er ist die Suchmaschine im Zentrum von RAG. Zwei beliebte Optionen sind Chroma und FAISS.

pip install langchain-chroma faiss-cpu

Einen Chroma-Speicher erstellen

Chroma.from_documents bettet Ihre Chunks ein und indiziert sie in einem einzigen Aufruf. Übergeben Sie die Dokumente und ein Embeddings-Objekt. Chroma gibt einen Speicher zurück, den Sie sofort durchsuchen können.

from langchain_chroma import Chroma
from langchain_openai import OpenAIEmbeddings

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

Chroma auf der Festplatte speichern

Übergeben Sie persist_directory, damit der Index auf der Festplatte gespeichert wird und Neustarts übersteht. Laden Sie ihn später erneut, indem Sie Chroma mit demselben Verzeichnis und denselben Embeddings erstellen. So vermeiden Sie die Kosten für erneutes Einbetten.

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

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

Ähnlichkeitssuche

Führen Sie eine Abfrage mit similarity_search(query, k=4) aus. Die Methode bettet die Abfrage ein, findet die k nächsten Chunks und gibt sie als Documents zurück. k bestimmt, wie viele Passagen Sie abrufen.

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

Scores bei der Suche

Verwenden Sie similarity_search_with_score, um zusätzlich für jedes Ergebnis einen Distanzscore zu erhalten. Eine geringere Distanz bedeutet größere Ähnlichkeit. Scores helfen Ihnen, schwache Treffer herauszufiltern, bevor Sie sie an das LLM senden.

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

FAISS kennenlernen

FAISS (Facebook AI Similarity Search) ist eine leistungsstarke Bibliothek für die Vektorsuche. Sie ist extrem schnell und speichereffizient und eignet sich ideal für große lokale Indizes ohne separaten Server.

Einen FAISS-Speicher erstellen

Die API entspricht der von Chroma: FAISS.from_documents erstellt den Index. FAISS hält den Index im Arbeitsspeicher und eignet sich daher hervorragend für leseintensive Suchen innerhalb eines Prozesses.

from langchain_community.vectorstores import FAISS

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

FAISS speichern und laden

Speichern Sie einen FAISS-Index mit save_local und laden Sie ihn mit load_local erneut. Für das erneute Laden ist allow_dangerous_deserialization=True erforderlich, da der Index Pickle verwendet.

db.save_local("faiss_index")

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

Relevanz und Diversität

Eine einfache Ähnlichkeitssuche kann vier nahezu identische Chunks zurückgeben. Manchmal benötigen Sie vielfältige Ergebnisse, die verschiedene Aspekte der Antwort abdecken. Genau hier hilft MMR.

MMR-Retrieval

Maximal Marginal Relevance (MMR) gleicht Relevanz und Diversität aus und wählt relevante, aber nicht redundante Chunks aus. Verwenden Sie dazu über die Retriever-Schnittstelle search_type="mmr".

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

Chroma oder FAISS auswählen

Chroma ist benutzerfreundlich, persistent und gut für Prototypen und kleine Anwendungen geeignet. FAISS ist bei größerem Umfang schneller und ideal für die Suche im Arbeitsspeicher. Beide stellen similarity_search und as_retriever bereit, sodass ein Wechsel einfach ist.

Kurzer Test

Testen Sie Ihr Wissen über Vektorspeicher.

Zusammenfassung: Chroma und FAISS

Sie haben Vektorspeicher mit Chroma.from_documents (unter Verwendung von persist_directory) und FAISS.from_documents erstellt, mit similarity_search(query, k=4) gesucht und beide gespeichert und geladen. Mit as_retriever und MMR haben Sie vielfältige Ergebnisse abgerufen und gelernt, wann welcher Speicher geeignet ist.

Häufig gestellte Fragen

Ist die Lektion „Vektorspeicher: Chroma und FAISS“ kostenlos?

Ja — der vollständige Text von „Vektorspeicher: Chroma und FAISS“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Vektorspeicher: Chroma und FAISS“?

Vektorspeicher erstellen und persistieren, Ähnlichkeitssuche, MMR-Retrieval, hybride Suche. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Learn AI with Python zu starten?

Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Vektorspeicher: Chroma und FAISS“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?

Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. LangChain-Architektur und LCEL
  2. Dokumente laden, aufteilen und mit Embeddings versehen
  3. Vektorspeicher: Chroma und FAISS
  4. Ein RAG-Frage-Antwort-System von Anfang bis Ende erstellen
← Zurück zu Learn AI with Python