Live production system

SAMI — retrieval-grounded iSAMS assistant

A production RAG assistant answering iSAMS questions from a curated knowledge base, with an admin console, cost visibility and a feedback loop — free and open to the iSAMS community.

Status
Live in production
Role
Sole designer and engineer
Audience
iSAMS community — free to use
Disclosure
Built and run by EthanCorp
SAMI retrieval-augmented generation architecture A question from the web or installed app reaches a FastAPI backend, which retrieves passages from a Qdrant vector store built from seventeen curated iSAMS guides — about 6,400 embedded vectors. Retrieved passages plus the question go to the language model, which answers only from that material. PostgreSQL records conversations, feedback and usage, feeding an admin console with a cost dashboard and a feedback review queue that sends corrections back into the knowledge base. Next.js frontend Web · PWA FastAPI backend Orchestration Retrieval-grounded answering Qdrant ~6,400 vectors Curated KB 17 guides Answer from retrieved passages only Grounded answer With sources PostgreSQL Conversations · feedback Admin console Content & access Usage & cost Per-model spend Feedback Reviewed Reviewed corrections go back into the curated knowledge base — the loop that keeps answers right 218 tests frontend + backend
SAMI answers only from retrieved passages of the curated knowledge base. The dashed path is the part that matters most — reviewed feedback goes back into the knowledge base, so corrections improve future answers.

Context

iSAMS is a school information management platform with a large surface area and documentation spread across many places. Practitioners answer the same questions for each other repeatedly. SAMI is a free, community-facing assistant that answers those questions from a curated knowledge base — built and run by EthanCorp, with no commercial relationship to iSAMS.

Why it exists

Two reasons, and it is worth being straight about both. It is genuinely useful to a community I work in. It is also the reference implementation for how EthanCorp builds retrieval-grounded systems: if the approach is sound, it should survive being live, free and open to anyone — including people asking questions it was not designed for.

Constraints

  • Free to use, which makes per-answer cost a real design constraint rather than a footnote.
  • Answers must be traceable to curated material — a confidently wrong answer about a school system is worse than no answer.
  • Open to the public, so it has to behave reasonably on questions outside its knowledge base.
  • Run by one person, so operational overhead had to be near zero.

Approach

Retrieval is grounded in a curated knowledge base of 17 in-depth guides, embedded into roughly 6,400 vectors in Qdrant. The model answers from retrieved passages rather than from its own general memory, which is the difference between an assistant that cites something and one that improvises plausibly.

The operational layer is the part most RAG demos skip. There is an admin console for content and access, a usage and cost dashboard showing per-model spend, and a feedback review queue. Reviewed corrections go back into the curated knowledge base — that loop, not the model choice, is what makes answers get better over time.

218 automated tests cover the frontend and backend. For a free side project that is arguably excessive; for something being used as evidence of how EthanCorp builds, it is the point.

What I built

  • Curated and structured the knowledge base of 17 in-depth guides.
  • Built the Next.js frontend with PWA support, and the FastAPI backend.
  • Built the retrieval layer over Qdrant, and the answering flow constrained to retrieved passages.
  • Built the admin console, the usage and cost dashboard, and the feedback review queue.
  • Wrote 218 automated frontend and backend tests, and packaged the whole thing with Docker Compose.

Systems and technologies

Next.js (App Router) on the frontend with PWA support; FastAPI on the backend; PostgreSQL for conversations, feedback and usage; Qdrant as the vector store; Docker Compose for deployment.

Outcome

The measured result.

17 in-depth guides in the knowledge base
~6,400 embedded vectors backing retrieval
218 automated frontend and backend tests
Live in production, free to use

Lessons

What I would tell the next client.

  • The retrieval quality and the curation of the source material decide answer quality. Model choice matters far less than either.
  • A cost dashboard is not an optional extra on an LLM system — without it you find out what it costs at the end of the month.
  • The feedback review queue is the product. A RAG system with no correction loop degrades quietly as its source material ages.
Dat Tran, founder of EthanCorp

Dat TranEnterprise Data & AI Analytics Architect — the person behind EthanCorp.

All case studies

Have a data, analytics or automation problem that should not need another workaround?

Tell me what is breaking and what you have already tried. If EthanCorp is not the right fit, I will say so and point you somewhere better.

Response time
Within two business days
Based in
Ho Chi Minh City, Vietnam — working across Asia and remote