Skip to main content

Databases (Vector Stores) Reference

Vector databases store embeddings and enable semantic search. LlamaFarm supports multiple vector store backends for different deployment scenarios.

Quick Start​

Databases are configured in rag.databases:

rag:
default_database: main_db
databases:
- name: main_db
type: ChromaStore
config:
collection_name: documents
distance_function: cosine

Common Database Properties​

PropertyRequiredDescription
nameYesUnique identifier (lowercase, underscores)
typeYesStore type (ChromaStore, QdrantStore, etc.)
configNoStore-specific configuration
embedding_strategiesNoList of embedding configurations
retrieval_strategiesNoList of retrieval configurations
default_embedding_strategyNoDefault embedder name
default_retrieval_strategyNoDefault retrieval strategy name

ChromaStore​

Chroma is a lightweight, embedded vector database. Great for development and small-to-medium deployments.

Best for: Local development, prototyping, embedded use

- name: main_db
type: ChromaStore
config:
collection_name: documents
distance_function: cosine
persist_directory: ./data/chroma_db

Options​

OptionTypeDefaultDescription
collection_namestringdocumentsCollection name (alphanumeric, hyphens, underscores)
hoststringnullServer host (null for embedded)
portinteger8000Server port
distance_functionstringcosinecosine, l2, ip
distance_metricstringcosineAlternative name for distance_function
embedding_dimensioninteger768Vector dimension (1-4096)
enable_deduplicationbooleantrueEnable document deduplication
embedding_functionstringnullBuilt-in embedding function

Distance Functions​

FunctionDescriptionUse Case
cosineCosine similarityGeneral purpose, normalized vectors
l2Euclidean distanceWhen magnitude matters
ipInner productAlready normalized embeddings

Client vs Server Mode​

Embedded (default):

config:
collection_name: documents
persist_directory: ./data/chroma

Server mode:

config:
collection_name: documents
host: localhost
port: 8000

QdrantStore (Coming Soon)​

Coming Soon

QdrantStore is planned but not yet implemented. Use ChromaStore for now.

Qdrant is a high-performance vector database with rich filtering and clustering.

Best for: Production deployments, large datasets, advanced filtering

- name: production_db
type: QdrantStore
config:
collection_name: documents
host: localhost
port: 6333
vector_size: 768
distance: Cosine

Planned Options​

OptionTypeDefaultRequiredDescription
collection_namestringdocumentsNoCollection name
hoststringlocalhostNoServer host
portinteger6333NoREST API port
grpc_portinteger6334NogRPC port
api_keystringnullNoAPI key for auth
vector_sizeinteger-YesVector dimension (1-65536)
distancestringCosineNoCosine, Euclid, Dot
on_diskbooleanfalseNoStore vectors on disk

Distance Metrics​

MetricDescriptionUse Case
CosineCosine similarityGeneral semantic search
EuclidEuclidean distanceGeometric comparisons
DotDot productPre-normalized vectors

Docker Setup (for when available)​

docker run -p 6333:6333 -p 6334:6334 \
-v $(pwd)/qdrant_data:/qdrant/storage \
qdrant/qdrant

FAISSStore (Coming Soon)​

Coming Soon

FAISSStore is planned but not yet implemented. Use ChromaStore for now.

FAISS (Facebook AI Similarity Search) for high-performance similarity search.

Best for: Large-scale search, research, GPU acceleration

- name: faiss_db
type: FAISSStore
config:
dimension: 768
index_type: HNSW
metric: Cosine

Planned Options​

OptionTypeDefaultRequiredDescription
dimensioninteger-YesVector dimension (1-4096)
index_typestringFlatNoFlat, IVF, HNSW, LSH
metricstringL2NoL2, IP, Cosine
nlistinteger100NoNumber of clusters (IVF)
nprobeinteger10NoClusters to search (IVF)
use_gpubooleanfalseNoEnable GPU acceleration

Index Types​

TypeSpeedAccuracyMemoryBest For
FlatSlowExactHighSmall datasets, exact search
IVFFastGoodMediumLarge datasets
HNSWVery FastVery GoodHighProduction, low latency
LSHFastModerateLowVery large datasets

PineconeStore (Coming Soon)​

Coming Soon

PineconeStore is planned but not yet implemented. Use ChromaStore for now.

Pinecone is a fully managed cloud vector database.

Best for: Managed service, enterprise, global scale

- name: cloud_db
type: PineconeStore
config:
api_key: ${PINECONE_API_KEY}
index_name: my-index
dimension: 768
environment: us-east-1-aws

Planned Options​

OptionTypeDefaultRequiredDescription
api_keystring-YesPinecone API key
index_namestring-YesIndex name (lowercase, hyphens)
dimensioninteger-YesVector dimension (1-20000)
environmentstringus-east-1-awsNoPinecone environment
metricstringcosineNoeuclidean, cosine, dotproduct
namespacestring""NoNamespace for isolation
replicasinteger1NoNumber of replicas (1-20)

Complete Database Configuration​

Full example with embedding and retrieval strategies:

rag:
default_database: main_db

databases:
- name: main_db
type: ChromaStore
config:
collection_name: documents
distance_function: cosine
persist_directory: ./data/main_db

# Embedding strategies
embedding_strategies:
- name: default
type: OllamaEmbedder
config:
model: nomic-embed-text
dimension: 768
priority: 0

- name: openai
type: OpenAIEmbedder
config:
model: text-embedding-3-small
api_key: ${OPENAI_API_KEY}
priority: 1

# Retrieval strategies
retrieval_strategies:
- name: semantic
type: BasicSimilarityStrategy
config:
distance_metric: cosine
top_k: 10
default: true

- name: filtered
type: MetadataFilteredStrategy
config:
top_k: 10
filter_mode: pre

default_embedding_strategy: default
default_retrieval_strategy: semantic

Multiple Databases​

Configure separate databases for different use cases:

databases:
# Primary document store
- name: documents_db
type: ChromaStore
config:
collection_name: documents

# Archive for older content (embedded mode)
- name: archive_db
type: ChromaStore
config:
collection_name: archive
persist_directory: ./data/archive

# Server-mode for production
- name: production_db
type: ChromaStore
config:
collection_name: production
host: localhost
port: 8000
Future Options

When QdrantStore and FAISSStore are available, you'll be able to use them for larger scale deployments and more advanced features.

Query specific databases:

lf rag query --database documents_db "recent reports"
lf rag query --database archive_db "historical data"

Database Selection Guide​

DatabaseDeploymentScaleFeaturesStatus
ChromaStoreEmbedded/ServerSmall-MediumSimple, portableAvailable
QdrantStoreSelf-hostedMedium-LargeRich filtering, clusteringComing Soon
FAISSStoreSelf-hostedVery LargeGPU support, researchComing Soon
PineconeStoreCloudAnyManaged, globalComing Soon

Next Steps​