Skip to content
QUORVE LABS

Ingest · retrieve

Knowledge assistant

Cite-or-refuse retrieval

Three deployables: a document ingest pipeline into vector search, an orchestrator API, and a chat client. Answers are generated from indexed chunks, not from a naked prompt.

  • Python
  • FastAPI
  • Azure Functions
  • AI Search
  • TypeScript

INGEST

Blob events, PDF / DOCX / Excel

INDEX

Chunk + 3072-d embeddings + HNSW

API

Orchestrator with key auth

CLIENT

Chat surface over the same corpus

01The problem

A chat surface over PDFs that does not ingest, chunk, or cite is a wrapper. Teams also tend to host the orchestrator, the ingest workers, and the bot as one process, then discover blob deletes never drop index rows.

02What we designed

Three deployables:

  1. Ingest — Azure Functions (ASGI FastAPI) plus blob and Event Grid triggers. Files land in object storage, become layout-aware chunks, embeddings, and search documents.
  2. Orchestrator — FastAPI on Functions. Retrieval, generation, traces. The chat client is not the brain.
  3. Chat client — TypeScript bot / web surface that calls /orchestrator with an API key.

Answers are generated from hits. Empty retrieval refuses.

03What I owned

The ingest architecture (factory of processors, index schema, upload and delete flows), batch embeddings, and the split between HTTP ingest and event-driven cleanup.