The self-indexing
vector database.
Point Friday at your data. It chunks, embeds, indexes, and syncs automatically. No pipelines. No preprocessing. Just query.
# Connect your data. Start querying.
from friday import Client
db = Client()
# Point at your S3 bucket — Friday handles the rest
db.connect(
source="s3://my-docs",
chunking="semantic",
model="openai/text-embedding-3-large"
)
# Semantic search across all your documents
results = db.query("quarterly revenue trends", top_k=5)Everything between raw data
and searchable vectors.
The full pipeline from document ingestion to semantic retrieval, handled automatically.
Smart Chunking
Semantic, fixed-size, recursive, and late chunking strategies. Embed full documents before splitting for richer context.
Built-in Embeddings
Generate embeddings automatically with OpenAI, Cohere, or open-source models. No external pipeline needed.
Live Sync
Monitors your data sources for changes. Documents added, updated, or deleted are reflected in the index automatically.
Hybrid Search
Combine semantic vector search with keyword search. Get the precision of BM25 with the understanding of embeddings.
Cloud-Native
Kubernetes operator for automatic scaling and deployment. Runs where your infrastructure already lives.
Multi-Tenant
Isolated namespaces per tenant with shared infrastructure. Build SaaS products with vector search out of the box.
Three steps. Zero pipelines.
Connect a data source
Point Friday at an S3 bucket, GCS path, or local directory. Configure your chunking strategy and embedding model.
db.connect(
source="s3://my-docs",
chunking="semantic",
model="openai/text-embedding-3-large"
)Friday indexes automatically
Documents are chunked, embedded, and indexed. When files change, the index stays in sync. No cron jobs, no rebuilds.
# Friday watches for changes
# New files → chunked + embedded
# Updated files → re-indexed
# Deleted files → removedQuery with any method
Semantic search, keyword search, or hybrid. Get ranked results with metadata, scores, and source references.
results = db.query(
"quarterly revenue trends",
mode="hybrid",
top_k=10
)