vector_database
On this page
vector_database is a Python package that provides a unified interface over three
different vector-search backends:
All three inherit from the same abstract contract, VectorDatabaseBase, so
application code (for example a RAG pipeline) can swap backends without changing call sites.
from zerda.vector_database import FAISSVectorDatabase, ChromaVectorDatabase, PineconeVectorDatabase
# Same shape of calls regardless of backend:
db.add(chunks)
db.search("some query", top_k=5)
db.remove_by_doc_id("doc-1")
db.get_stats()
len(db)
What this documentation covers
This documentation was generated directly from static analysis of the four source files that make up the package:
vector_databasevector_databasevector_databasevector_databasevector_database/pinecone
Only what is demonstrably present in the source is documented. Where behavior could not be verified from the code (for example, exact upstream FAISS/Chroma/Pinecone error types), that is called out explicitly rather than guessed at.
Important scoping note
The source package imports DocumentChunk from a sibling package that is not included in
the analyzed archive:
from zerda.chunks import DocumentChunk # chroma.py, pinecone.py
This means vector_database is not a standalone, pip-installable package as provided — it's
one module of a larger project (the import structure implies a parent package containing
sibling chunks and, likely, a RAGSystem orchestrator referenced in the base
docstrings). See Architecture → External dependencies
for what could and couldn't be determined about DocumentChunk.
Where to go next
- New to the library? Start with Installation and Quickstart.
- Want the big picture? Read Architecture.
- Looking for a specific method or class? Go to the API Reference.
- Solving a concrete problem? Check the Cookbook.
- Something not behaving as expected? See Troubleshooting, which also documents known bugs found during analysis.