Inspiration

Our inspiration came from many trivia questions being boring and having only one answer. We realized that with the power of large language models, we could construct an automatic system to judge answers to much more open-ended questions.

What it does

QuesGen, a fast-paced multiplayer 🏃 trivia/study game backed by the power of AI💪. Multiple players are placed in a room and are repeatedly cycled through by being asked questions. Each player has 3 lives, and if a player fails to produce a satisfactory response as determined by the LLM in the allotted time, the player loses a life. Once a player loses all lives, they are eliminated from the game. Speed and accuracy are crucial to victory in QuesGen. The last player standing wins the game.

How we built it

We built QuesGen using Node.js , HTML, and CSS. One of the most important libraries we used was Socket.io, a low-latency, bi-directional client-server communication service. Moreover, we connected the server to OpenAI's GPT4-o models to validate user answers for correctness and generate questions tailored to the user's notes/wants, using Chain of Thought reasoning.

Challenges we ran into

All of OpenAI's API calls being asynchronous, and the asynchronous nature of Socket.io, presented many challenges in timing and communication between the client and server communications.

Accomplishments that we're proud of

We were on a significant time crunch, but we are very proud the final product that we developed. In particular, we feel like the user interface is very clean and modern, and the complex back-end logic worked very synergistically with the front-end.

What we learned

We learned many important concepts about version control, asynchronous programming, exception handling, and development strategies. We also learned the complex nature of extracting texts from seemingly simple filetypes like PDFs and the language processing that comes with it.

What's next for QuesGen

Given more time, we hope to develop QuesGen into something bigger. We hope to increase the modality of the inputs, such as audio and video input options, and we hope to increase scalability through more efficient socket communication and a fine-tuned distilled language model.

Share this project:

Updates