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 — more than 8,000 indexed passages. 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 8,000+ passages 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 238 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 — 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.

SAMI public homepage with the headline 'Get unstuck in iSAMS in seconds' and four figures: 17 curated guides, 8,000+ indexed passages, 24/7 and Free.
The public homepage at sami.ethancorp.com.
SAMI chat answering a follow-up question about how parents are told about a detention, as five numbered steps using iSAMS menu names.
A follow-up question in the same conversation, answered as numbered steps with the exact iSAMS menu names. Copy, rate and regenerate sit under every answer.
The same SAMI answer on a phone screen in dark mode.
The same answer on a phone, in dark mode.
Admin feedback review showing a thumbs-down answer, the user's comment, the retrieved sources with similarity scores, and Approve for KB and Reject buttons.
Feedback review: a rated answer with the user's comment and the passages it was built from, each with its similarity score. Approving feeds the answer into the knowledge base; rejecting keeps it out.
Admin knowledge base listing 8,024 chunks from iSAMS guides, curated Q&A and approved feedback, with search and an Add Q&A button.
Knowledge base: every passage SAMI retrieves from — guides, curated Q&A and approved feedback — searchable, with Q&A added by hand.
Admin usage and cost dashboard with total tokens, estimated cost, conversations with usage, and a chart of tokens per day split into prompt, completion and embedding.
Usage and cost: tokens per day split into prompt, completion and embedding, and the estimated spend — the numbers a free service has to watch.
SAMI disclaimer page headed 'Use SAMI's answers as a guide, not the final word', stating it is a community project and that AI answers can be wrong.
The disclaimer states the limits plainly: a community project, not official iSAMS support, and AI answers that can be wrong.
SAMI sign-in page with email and password fields and a link to sign up free.
Sign-in. SAMI is free, but it needs an account so per-user rate limits and daily caps can apply.

Outcome

The measured result.

17 in-depth guides in the knowledge base
8,000+ indexed passages backing retrieval
238 automated frontend and backend tests
Live in production, free to use

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.
Dat Tran, founder of EthanCorp

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

All case studies

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