Faced with a 15-lesson AI curriculum for schools, students and teachers kept asking the same thing: “which page is the answer on?” I turned the whole curriculum into a question-answering knowledge base: ask “what is an LLM hallucination” and get an answer with page-level citations in seconds. Ask something beyond the material, and it says “outside the course material” instead of inventing an answer. It answers — and it holds its ground.
640 curriculum chunks, dual-channel retrieval (bge-small-zh vectors + BM25 keywords), and a two-signal AND-gate abstention rule — when both signals fall below threshold it abstains outright and never calls the LLM. A self-built 31-question evaluation set reached recall@5 of 100% and 100% out-of-scope abstention (4.5% false-abstention rate). During development a self-audit caught a silent failure — the tokenizer mapped all-caps abbreviations to UNK, distorting the semantics — and I fixed it with a two-way regression covering both the indexing and the query side.
The demo site is password-protected — get in touch for access