RAG as a Service

A hosted retrieval layer with grounded answers that cite their source.

Send it files. It extracts and chunks them, embeds the chunks with the provider you choose, stores them in a vector index scoped to your project, and answers questions against them with citations back to the source. Access is by API key. Usage is metered. Nothing crosses a project boundary.

CATEGORY

Retrieval infrastructure, as an API

BUILT FOR

Teams adding document question answering

INTERFACE

REST API with keys, plus a portal

STATUS

Owned and operated by ErlyStage

Easy to demonstrate, tedious to run.

A prototype takes an afternoon. Then files arrive as tables that lose meaning when flattened, audio that needs transcription, and decks with their own quirks. Chunking affects answer quality more than model choice. Then come tenancy, metering and the customer whose data cannot sit in your index at all.

Those questions answered once.

One extraction pipeline per file type, one chunking strategy already tuned, three embedding providers normalised to a single index, isolation enforced twice, and usage metered per key and per user. None of that is the product a team is trying to ship. It is the floor beneath it.

One endpoint, routed by type.

Every path produces plain text that enters the same chunking and embedding stage, so behaviour downstream does not depend on where the content came from.

PDF

Text and tables extracted with pdflumber, tables kept as markdown rather than flattened into prose. Embedded images are checked with OCR, described by a vision model when they carry meaning, and discarded when they do not.

Office and text

DOC, DOCX, PPT, PPTX and TXT convert through Docling, which handles layout and embedded pictures rather than returning undifferentiated characters.

Audio

Transcribed with Whisper into the same pipeline. The file type stays in chunk metadata, so a question about a recording is answered from the recording.

Video

Uploaded to Gemini and described in structured form, with upload time preserved so questions about ordering resolve correctly.

Chunking

Split recursively at 2500 characters with 400 of overlap. The overlap matters more than the size. A fact straddling a boundary without it is a fact the retriever cannot find.

How a query is served.

Three providers

OpenAI, Voyage AI and Cohere, selected per request and all normalised to 1024 dimensions, so one index serves every provider and a change of provider is not a change of schema.

Filtered search

Results default to the top five and can be narrowed by document, knowledge base, author, year or section. Filters apply at the vector database, which keeps latency flat as a project grows.

Isolation twice

Vectors are written to a namespace derived from organisation and project, and every vector carries those identifiers as metadata filtered on each query. Both would have to fail on the same request.

Metering

Recorded per key, per endpoint and per operation, and tracked at user level so a second key does not reset a limit. Limits are checked before expensive work, so an over quota request fails in milliseconds.

Eight operations, one header.

Authentication is an API key header. No token exchange, no session, no SDK. Retrieve and query are separate on purpose, because teams with a prompt they trust want the retrieval layer and nothing else.

UPLOAD
Send one or more files, receive document identifiers and chunk counts.
QUERY
Retrieve matching chunks and generate an answer with citations.
RETRIEVE
Return matching chunks and scores without generation, for callers running their own model.
INSERT
Write content that is already extracted, bypassing the file pipeline.
UPDATE
Modify document metadata without reingesting.
DELETE
Remove a document and its vectors.
LIST
Enumerate documents in the project.
USAGE
Return current consumption against plan limits.

Four ways to run it.

The same API serves all four. Moving between them changes a subscription record, not the client code.

Free trial

Small quotas and an expiry date on shared infrastructure. Enough to test integration and answer quality against real documents.

Shared

Platform managed credentials and index with generous quotas. The normal choice for teams that want retrieval and do not want to operate it.

Dedicated

The organisation supplies its own provider and vector database credentials, encrypted before storage and decrypted only in memory at request time.

Blackbox

Fully customer supplied credentials with quotas off by default, for deployments where the platform must not hold data or keys at all.

Built with

Python FastAPI LangChain LangGraph Pinecone SQLAlchemy PostgreSQL pdflumber PyMuPDF Docling pytesseract Whisper Gemini React 19 Tailwind Zustand

Talk to us

If you are adding retrieval to a product and would rather integrate it than build it, get in touch.