[Go to site: main page, start]

PAVEDB

RETRIEVAL YOU CAN OWN

Retrieval you can inspect. Infrastructure you can own.

Run PaveDB locally or over HTTP. Text search keeps its source, query record, and replay trail.

Python pip install pavedb
Docker docker pull registry.gitlab.com/flowlexi/pavedb/pavedb:latest-cpu

Why PaveDB

Ingest files, not embeddings

Hand PaveDB a PDF, CSV, or TXT file; it chunks, embeds, and indexes the content without a separate preprocessing pipeline.

Full provenance on text-backed hits

Trace a match to its document, page or character offset, and exact snippet. Vector-only records may not carry text.

Inspect and replay text queries

Retrieve stored parameters, timing, results, and provenance, then replay by query ID. Raw-vector searches are not replayable.

Multi-tenant by default

Tenant and collection namespacing are built in and stay out of the way when one tenant is enough.

Embed it, script it, or serve it

Use local or remote Python, the CLI, or the documented HTTP/OpenAPI surface.

Pluggable embeddings

Choose a shipped local or hosted embedding backend and model per collection.

Inspect, explain, replay

Python
from pavesdk.client import connect

db = connect("./data")
books = db.create_collection("books")
books.add("Captain Nemo commands the Nautilus.", docid="note-1")

# Search, then inspect the stored request and replay it.
hits = books.search("submarine captain", k=3)
query = books.queries(limit=1)[0]
record = books.get_query(query["query_id"])
again = books.replay(query["query_id"])
Elixir
client =
  PaveDBClient.connect("http://localhost:8086",
    tenant: "tenant",
    api_key: "secret"
  )

{:ok, books} =
  PaveDBClient.create_collection(client, "books", display_name: "Books")

{:ok, _doc} =
  PaveDBClient.Collection.add(books, "Captain Nemo commands the Nautilus.",
    docid: "note-1",
    metadata: %{"kind" => "note"}
  )

{:ok, response} =
  PaveDBClient.Collection.search(books, "captain", k: 3)

matches = response["matches"]
  • Python SDK Embed PaveDB in a Python process or point the SDK at HTTP.
  • Elixir Client Use a running PaveDB service; the client does not embed the engine.
  • CLI Run and operate a local instance from the command line.
  • REST API Integrate a running service through its documented HTTP API.

The book

Inspectable Retrieval with PaveDB

Building RAG and semantic search systems you can deploy, operate, observe, and trust.

Read the book →