My Final Year Project

2025.08.29

My final year college project that decided whether or not I'd get my degree was building a knowledge base chatbot for my university. It was 2019, and I remember struggling quite a bit with the design early on, because it didn't look anything like the typical systems I was used to building. The concept itself was straightforward: students ask questions about the university, the chatbot matches them against a curated knowledge base and returns the right answer, and if it doesn't recognize something, it politely rejects it. It also couldn't answer out-of-topic questions. This was years before ChatGPT, and before RAG was something people even knew about.

Fortunately we already had the Microsoft Bot Framework to make building a chatbot easier, but I still struggled to design a natural flow of conversation. So I went down the rabbit hole and discovered a glimpse of the NLP world in the pre ChatGPT era, starting with ELIZA, NLU, NER, and sentiment analysis.

My solution came after I discovered nlp.js (https://github.com/axa-group/nlp.js/), a library for working with NLP in JavaScript. Simply put: you feed it question-answer pairs, it trains a small neural network on them, and the resulting model handles inference. I wrapped it in a REST API and plugged it into the Bot Framework.

I gathered the training data by interviewing students and staff, ending up with over 100 QA pairs covering everything people actually asked about the university. After testing it, I found the chatbot couldn't recognize questions with the same semantic meaning but different wording. for example, kapan terakhir pembayaran UKT? and deadline pembayaran UKT. To mitigate this, I generated 5–10 variations of each QA pair and added them to the training data. It still couldn't match GPT-3, but it answered correctly around 70% of the time.

Once it was live on the university website, I interviewed around 20 students about their experience. The results were decent enough to get me my degree.

Looking back, I sometimes wonder where things would've gone if I'd chased the AI path harder. But at the time, my only focus was making money as soon as possible, and I was already working remotely as a software developer a full year before I even graduated.