Teach users about DSA topics in a socratic way. It includes breaking complex problems into simple smaller steps and aligning the user to these steps, rather than giving out the complete answer. It has many checks that make sure the user does not bypass this method. It can recognise theoritial concepts that the user needs to know to solve the current problem.
Vidya also blocks all profanity and exploits, and ignores jailbreaking and hallucination attempts. It can also block certain terms that the admin doesn't want Vidya to say. It has another layer of checks that makes sure the output of Vidya is acceptable and isn't exploited. It can also report the user back to the admin in case such situation arrises.
Vidya cannot yet figure out with 100% accuracy profanity and jailbreaking checks. There are work arounds to such technologies which can be exploited. Also, with the unpredictable nature of LLMs, not all results will have the same accuracy and depth. This would require fine-tuning the LLM to student-teacher conversations and behaviours, thus requiring a lot of time and resources.
The future for Vidya is really bright. This project can be implemented on a much larger scale, not restricted to only one topic, but to the whole education system. We can have multiple classes, containing subjects which can also containing multiple topics. We can have a dynamic system that recognises the user and enables the required rails and processes.
Also, the LLM can be made to understand the student and adapt to their personal behaviour for better teaching.
Finally, instead of just using a text model, we can implement a voice or even a video-chat feature that can make understanding and teaching as humanly as possible.
Handling profanity: In initial brainstorming sessions came a lot of ways by which GenAI can be exploited, which meant we coudln't just simply use the LLM. It would require a lot of prompt engineering and resources. This lead us to NeMo Guardrails, which we used to not only design our bot, but also efficiently apply input, output and pedilogical rails. This provided a strong base for our project.
Newer Technologies: Technologies like the NeMo Guardrails is very new and not widely used, so its documentation and peer-to-peer discussion is very less as compared to established technologies. A lot of time went into figuring out stuff from the ground level which enabled us to dive deep into behind the scenes to truely understand and apply it to our use-case.
Loading Time: A large number of API calls were being made from the frontend which caused larger loading times, which is not desirable in a chat application. We applied good state management practices, and pivoted to using Zustand, a very popular state-management library, which reduced the loading time and enhanced the user experience.
Tracks Applied (1)
Discussion