Overview
A vector store persists embedded chunks and answers nearest-neighbour queries. Every implementation in this folder — Chroma, FAISS, pgvector, Pinecone — sits behind the same VectorStore interface, so swapping the backend later is mostly a constructor change, not a rewrite.
Chroma
Chroma is a local-first, embedded vector database — no server to run, one pip install, data on disk. It's the default recommendation for learning and prototyping in this section.
FAISS
FAISS is an in-process similarity search library — the index lives in memory inside your Python process, with no server and no persistence unless you save it explicitly.
pgvector
pgvector is a Postgres extension that adds a vector column type and nearest-neighbour operators, so embeddings live next to the relational data they describe instead of in a separate system.
Pinecone
Pinecone is a managed, hosted vector database — no infrastructure to run, but the index itself is a billed cloud resource rather than a free local file.
Comparison
| Store | Local / Hosted | Setup effort | Metadata filtering | Scale ceiling | Cost model | Pick it when |