Lær AI med Python · Lektion

Vector stores: Chroma og FAISS

Oprettelse og persistent lagring af vector stores, similarity search, MMR-retrieval, hybrid søgning.

Lektion 3 af 413 trin

Vector stores: Chroma og FAISS er en gratis Lær AI med Python-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Lær AI med Python, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Lær AI med Python-kurset indeholder 4 lektioner i alt.

Hvad er et vektorlager?

Et vektorlager indeholder dine indlejrede tekststykker og finder dem, der ligner en forespørgselsvektor mest. Det er søgemaskinen i hjertet af RAG. To populære valg er Chroma og FAISS.

pip install langchain-chroma faiss-cpu

Oprettelse af et Chroma-lager

Chroma.from_documents indlejrer dine tekststykker og indekserer dem i ét kald. Giv den dokumenterne og et indlejringsobjekt. Chroma returnerer et lager, som du kan søge i med det samme.

from langchain_chroma import Chroma
from langchain_openai import OpenAIEmbeddings

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

Gem Chroma på disken

Angiv persist_directory, så indekset gemmes på disken og overlever genstarter. Indlæs det senere ved at oprette Chroma med den samme mappe og de samme indlejringer, så du undgår omkostningerne ved at indlejre igen.

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

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

Søgning efter lighed

Udfør en forespørgsel med similarity_search(query, k=4). Den indlejrer forespørgslen, finder de k nærmeste tekststykker og returnerer dem som Document-objekter. k bestemmer, hvor mange passager du henter.

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

Resultater med søgning

Brug similarity_search_with_score for også at få en afstandsværdi for hvert resultat. En mindre afstand betyder større lighed. Værdierne hjælper dig med at filtrere svage match fra, før du sender dem til LLM'en.

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

Introduktion til FAISS

FAISS (Facebook AI Similarity Search) er et højtydende bibliotek til vektorsøgning. Det er ekstremt hurtigt og hukommelseseffektivt og er ideelt til store lokale indeks uden en separat server.

Oprettelse af et FAISS-lager

API'et minder om Chroma: FAISS.from_documents bygger indekset. FAISS holder indekset i hukommelsen, så det er velegnet til læsetung søgning i den samme proces.

from langchain_community.vectorstores import FAISS

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

Gem og indlæs FAISS

Gem et FAISS-indeks med save_local, og indlæs det igen med load_local. Genindlæsning kræver allow_dangerous_deserialization=True, fordi indekset bruger pickle.

db.save_local("faiss_index")

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

Relevans kontra variation

En almindelig lighedssøgning kan returnere fire næsten identiske tekststykker. Nogle gange vil du have varierede resultater, der dækker forskellige aspekter af svaret. Det er her, MMR hjælper.

MMR-hentning

Maksimal marginal relevans (MMR) afvejer relevans mod variation og vælger tekststykker, der er relevante uden at være overflødige. Brug search_type="mmr" via hentningsgrænsefladen.

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

Valg mellem Chroma og FAISS

Chroma er brugervenligt, vedvarende og velegnet til prototyper og små applikationer. FAISS er hurtigere i stor skala og ideelt til søgning i hukommelsen. Begge stiller similarity_search og as_retriever til rådighed, så det er nemt at skifte.

Hurtigt tjek

Test din viden om vektorlagre.

Opsamling: Chroma og FAISS

Du byggede vektorlagre med Chroma.from_documents (ved hjælp af persist_directory) og FAISS.from_documents, søgte med similarity_search(query, k=4) og gemte og indlæste begge. Du brugte as_retriever med MMR for at få varierede resultater og lærte, hvornår du skal vælge hvert lager.

Gratis at komme i gang

Lær Python med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
53
Lektioner
225

Ofte stillede spørgsmål

Er lektionen “Vector stores: Chroma og FAISS” gratis?

Ja — alle 3 lektioner i læringssporet Lær AI med Python, inklusive “Vector stores: Chroma og FAISS”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Lær AI med Python-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Vector stores: Chroma og FAISS”?

Oprettelse og persistent lagring af vector stores, similarity search, MMR-retrieval, hybrid søgning. Du øver dig i Lær AI med Python med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Lær AI med Python?

Der kræves ingen tidligere erfaring. Lær AI med Python på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Vector stores: Chroma og FAISS”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Lær AI med Python-lektion?

Ja. Alle Lær AI med Python-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. LangChain-arkitektur og LCEL
  2. Indlæsning, opdeling og embedding af dokumenter
  3. Vector stores: Chroma og FAISS
  4. Byg et RAG-spørgsmål-og-svar-system fra ende til anden
← Tilbage til Lær AI med Python