List CS courses by semester
Returns Fall 2026 CS courses as a structured list and shows the official sources used for the answer.

AI systems · Backend
A Georgia Tech assistant that routes exact schedule queries and context-heavy policy questions through separate retrieval paths.
Actual product
Returns Fall 2026 CS courses as a structured list and shows the official sources used for the answer.

Groups CS 2200 instructors with their sections and connects the answer to the supporting schedule rows.

Answers a withdrawal-deadline question with the date and time zone, then cites the relevant Academic Calendar text.

Hit@1 and Hit@5
University information combines data that requires exact rows, such as class times and available seats, with documents that require context and citations, such as policies and calendars. Semantic search makes schedule answers unstable, while SQL alone cannot answer policy questions.
Selecting the right source was the first success criterion. A failed refresh could not damage the currently served data, and retrieval failures needed to remain distinguishable from answer-generation failures.
FastAPI receives a question and LangGraph selects either the schedule or document path. Schedule questions query normalized public OSCAR data in PostgreSQL without an LLM. Document questions retrieve candidates with pgvector and PostgreSQL FTS, combine them with RRF, and rerank the final evidence.
The generation model receives selected passages and structured citation data. A post-answer check verifies that citations support the response. If evidence is weak, the system performs one bounded retry and then abstains. A failed ingestion never replaces the last known-good dataset.
Course times and seats require exact rows, so public OSCAR data is queried with SQL instead of vector similarity. Document retrieval quality cannot alter schedule correctness.
The route, retrieve, and validate sequence is fixed so the model cannot call tools indefinitely. A failed evidence check permits one retry; the system abstains if evidence remains insufficient.
A refresh replaces current data only after the complete job succeeds. Users continue seeing the last known-good version instead of a partially updated dataset.
Schedule SQL, question routing, and UI rendering passed 150/150, 150/150, and 140/140 cases. Course-information retrieval passed Hit@1 and Hit@5 across 120 questions, while Academic Calendar routing and Hit@5 passed 20/20.
Policy answers measured 71% correctness and 78% citation entailment. Evaluating retrieval and generation separately showed that document retrieval was the first bottleneck to address.