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.
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.
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.
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
- dattran.bi@gmail.com
- Based in
- Ho Chi Minh City, Vietnam — working across Asia and remote