Vektorlagre: Chroma og FAISS
Oppretting og lagring av vektorlagre, likhetssøk, MMR-henting og hybridsøk.
Vektorlagre: Chroma og FAISS er en gratis leksjon i Lær AI med Python på CoddyKit. Dette er leksjon 3 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Lær AI med Python, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.
Hva er et vektorlager?
Et vektorlager inneholder de embedde chunkene dine og finner de som ligner mest på en spørringsvektor. Det er søkemotoren i hjertet av RAG. To populære valg er Chroma og FAISS.
pip install langchain-chroma faiss-cpuOpprette et Chroma-lager
Chroma.from_documents embedder chunkene dine og indekserer dem i ett kall. Send inn dokumentene og et embedding-objekt. Chroma returnerer et lager du kan søke i med en gang.
from langchain_chroma import Chroma
from langchain_openai import OpenAIEmbeddings
embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
db = Chroma.from_documents(chunks, embeddings)Lagre Chroma på disk
Send inn persist_directory slik at indeksen lagres på disk og overlever omstarter. Last den inn senere ved å opprette Chroma med samme katalog og embedding-objekt, slik at du unngår kostnaden ved å embedde på nytt.
db = Chroma.from_documents(
chunks, embeddings,
persist_directory="./chroma_db"
)
# Reload later
db = Chroma(persist_directory="./chroma_db", embedding_function=embeddings)Likhetssøk
Kjør et søk med similarity_search(query, k=4). Metoden embedder spørringen, finner de k nærmeste chunkene og returnerer dem som Document-objekter. k bestemmer hvor mange avsnitt du henter.
results = db.similarity_search("How do I reset my password?", k=4)
for doc in results:
print(doc.page_content[:80])Poengsummer for søk
Bruk similarity_search_with_score for også å få en avstandspoengsum for hvert resultat. Lavere avstand betyr større likhet. Poengsummene hjelper deg med å filtrere bort svake treff 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])Introduksjon til FAISS
FAISS (Facebook AI Similarity Search) er et høyytelsesbibliotek for vektorsøk. Det er svært raskt og minneeffektivt, og egner seg godt for store lokale indekser uten en separat server.
Opprette et FAISS-lager
API-et speiler Chroma: FAISS.from_documents bygger indeksen. FAISS holder indeksen i minnet, så det egner seg godt for lesetungt søk i samme prosess.
from langchain_community.vectorstores import FAISS
db = FAISS.from_documents(chunks, embeddings)
results = db.similarity_search("refund policy", k=3)Lagre og laste inn FAISS
Bevar en FAISS-indeks med save_local, og last den inn igjen med load_local. Innlasting krever allow_dangerous_deserialization=True fordi indeksen bruker pickle.
db.save_local("faiss_index")
db = FAISS.load_local(
"faiss_index", embeddings,
allow_dangerous_deserialization=True
)Relevans kontra mangfold
Vanlig likhetssøk kan returnere fire nesten identiske chunker. Noen ganger ønsker du mangfoldige resultater som dekker ulike sider av svaret. Det er her MMR kommer inn.
MMR-henting
Maximal Marginal Relevance (MMR) balanserer relevans mot mangfold og velger chunker som er relevante, men ikke overflødige. Bruk search_type="mmr" via retriever-grensesnittet.
retriever = db.as_retriever(
search_type="mmr",
search_kwargs={"k": 4, "fetch_k": 20}
)
docs = retriever.invoke("password reset")Velge mellom Chroma og FAISS
Chroma er brukervennlig, kan lagres permanent og egner seg godt for prototyper og små apper. FAISS er raskere i stor skala og ideelt for søk i minnet. Begge tilbyr similarity_search og as_retriever, så det er enkelt å bytte.
Kort sjekk
Test kunnskapen din om vektorlagre.
Oppsummering: Chroma og FAISS
Du bygde vektorlagre med Chroma.from_documents (ved hjelp av persist_directory) og FAISS.from_documents, søkte med similarity_search(query, k=4) og lagret og lastet inn begge. Du brukte as_retriever med MMR for å få mangfoldige resultater, og lærte når du bør velge hvert lager.
Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 53
- Leksjoner
- 225
Ofte stilte spørsmål
Er leksjonen «Vektorlagre: Chroma og FAISS» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lær AI med Python, inkludert «Vektorlagre: Chroma og FAISS», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.
Hva lærer jeg i «Vektorlagre: Chroma og FAISS»?
Oppretting og lagring av vektorlagre, likhetssøk, MMR-henting og hybridsøk. Du øver på Lær AI med Python med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Lær AI med Python?
Ingen tidligere erfaring er nødvendig. Lær AI med Python på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «Vektorlagre: Chroma og FAISS»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Lær AI med Python-leksjonen?
Ja. Alle Lær AI med Python-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- LangChain-arkitektur og LCEL
- Innlasting, oppdeling og embedding av dokumenter
- Vektorlagre: Chroma og FAISS
- Bygging av et komplett RAG-spørsmål-og-svar-system