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.
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.
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.