Inspiration
Each professor teaches their course material in a unique manner. They might pick and choose the concepts they teach or use technical vocabulary in unconventional ways. Furthermore, the order in which they teach these concepts varies from professor to professor. All this can make searching for answers on external resources confusing for students, who may be inundated with concepts they haven't learned yet, or with concepts they have learned but which are now discussed in a different manner or context than they were in class. And since we cannot increase the number of teachers, or the amount of extra time teachers spend in office hours, our GPTBot can fill this gap by providing students a source of inquiry that is always available to them.
What it does
Professors upload their course material (readings, lectures, syllabus, etc.) to our server. Our system preprocesses this data, including transcribing the lectures to text. Once we construct a corpus from all the lesson materials taught up to the present moment, we use it to fine-tune a GPT-3 instance.
Students can then interact with a bot on their class's Discord server and ask it questions in the same way they would ask their professor. In this regard, it's like having infinite clones of their professor! Except these clones are available 24/7 and have instant, accurate recall.
Furthermore, students can improve the bot by giving correct answers a thumbs-up, which adds the Q&A interaction to the model's corpus, meaning that whenever that question is asked in the future, the bot will know the correct answer. Answers students think are incorrect can be given a thumbs-down, in which case the professor will be pinged. Once the professor gives the correct answer, this answer is added to the corpus in the same way as above.
How we built it
- We first built a proof of concept by utilizing OpenAI GPT-3 (Davinci) on a small website created by a professor to check whether we can get answers to our prompt.
- Next we built a discord bot using discord.py and Python
- Next we took the proof of concept code and turned it into a Flask application so we can service prompts coming in from the discord bot
- We also used the Huggingface Speech2Text/Google Cloud Speech API for lecture transcription which we added to extend our proof of concept work.
Challenges we ran into
Some challenges we ran into were:
- Rate limits with the OpenAI API calls on the free tier
- Massive data and limits to the query that GPT3 can handle
- Embedding mappings for all the text
- Setting up the discord bot and creating a thread, and having the bot reply within a thread.
Accomplishments that we're proud of
- The discord bot
- The GPT model that answers questions relevant to the slides/lectures
What we learned
- Prompt engineering
- Discord Bot development
- A full stack experience of combing an AI model, a flask app and a discord client app
What's next for Tutor Bot
- Integration into Brightspace, Campuswire, and any other platform primarily used by NYU students to interact with their coursework, professors, and classmates.
- Train the GPTutor model on additional lecture videos, homework/assignments for each course for individual professors to get more context for our answers.
Log in or sign up for Devpost to join the conversation.