FULL STACK AI DEVELOPER | NEXTJS | MERN | PYTHON

AnvoQ AI

Multi-tenant RAG platform with fair cross-KB retrieval, built with FastAPI, Next.js, LangChain, and LlamaIndex

Next.jsFastAPILangChainLlamaIndexQdrantPostgreSQLTypeScript
Not deployed yetDemo Video

The Brief

Needed a RAG system where an org could query across several knowledge bases at once and still trust that results were fairly ranked and correctly attributed back to their source KB — not just a single-document chatbot with a new UI.

My Approach

Split retrieval into two stages instead of one: fuse dense+sparse hybrid search per knowledge base with server-side RRF (one Qdrant round trip per KB via Prefetch + FusionQuery), then pool every KB's candidates and rerank them together with a cross-encoder (bge-reranker-v2-m3). Reranking across KBs, rather than normalizing scores after the fact, is what makes 'query 3 KBs at once' actually fair instead of biased toward whichever KB happened to score higher.

Used LlamaIndex for ingestion (parsing, chunking, embedding with BGE-M3's combined dense+sparse output) and LangChain for the conversational/generation side, connected through a framework-agnostic retriever core so the fan-out logic isn't locked into either library. Backend owns conversation history and streams tokens over SSE with citations attributed per-KB, keeping org data isolated per Qdrant collection end to end.

Have a similar project in mind?

I like turning ambiguous requirements into something people actually use. Let's talk about yours.

Work With Me