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 — together with a set of curated Q&A — into more than 8,000 indexed passages 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.
238 automated tests cover the frontend and backend (162 backend, 76 frontend). 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 238 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.
How answer quality is checked
Before a prompt or model change ships, a quality gate runs against the live backend: 20 real iSAMS questions with known-good answers, 3 trick questions that have no answer in the knowledge base, and 3 conversations where a trick question comes first and a real one second. Each answer is checked for a refusal where there should be none, and the reverse, then scored by a second model against a rubric for that question.
The latest run, on 25 September 2026, passed 24 of 26 (92%). The two misses were re-read by hand and turned out to be scoring variance, not wrong answers. The set is small and self-written — not yet drawn from real traffic — and it runs by hand because every run costs money. It is a gate before a change, not continuous monitoring.
Known limitations
- No automated backups of the database or the vector store. The vector store can be rebuilt from source; conversation and feedback history since the last manual dump could not.
- Manual deploys. CI runs lint and the test suite on every push; nothing deploys to production automatically.
- Retrieval is a single vector search, with no reranking and no hybrid keyword search.
- The knowledge base is English-only. Questions in other languages are answered in that language, from English guides.
- No service-wide spend cap. Per-user and per-IP limits exist; there is no daily spending breaker or alert across the whole service.
- Single-tenant: one shared knowledge base, not built to isolate multiple organisations.
Inside the system
Screenshots of the live system.
Captured on 25 and 26 September 2026. Select any screenshot to open it at full size.
Outcome
The measured result.
Lessons
What I would tell the next team.
- 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.
Questions
Common questions about SAMI.
Is SAMI official iSAMS support?
No. SAMI is a community project built and run by EthanCorp. It is not provided or endorsed by the makers of iSAMS, and it does not replace official iSAMS support or your school's iSAMS administrator.
Is SAMI free to use?
Yes. You need a free account, and fair-use daily limits keep the service available for everyone.
Where do SAMI's answers come from?
From a curated knowledge base of 17 iSAMS guides, based on publicly available iSAMS support documentation, plus reviewed Q&A. SAMI says when a question is not covered instead of guessing.
How accurate are the answers?
They are generated by AI and can be wrong or out of date. Check them against what you see in iSAMS before making changes that are hard to undo.
Can I ask in a language other than English?
Yes. SAMI replies in the language you write in, although its guides are in English.
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