Inspiration
Educators are often overworked and resource-constrained. For first-time teachers, transitioning to a classroom environment can be difficult, and even seasoned professors may be unsure of what questions or concerns to expect in a course that they are teaching for the first time.
MinervAI allows professors to determine which topics are likely to generate the most questions and confusion, whether specific texts are less readily interpretable to students with certain proficiencies, and provide a simulated environment in which they can practice and review their knowledge of key material.
We want teachers to have the tools they need to succeed! Generative AI tools such as ChatGPT are often perceived as threats to the student learning process, but if leveraged by educators, they can become helpful tools to better the classroom experience.
What it does
Empower teachers through interactions with realistic simulated classrooms. MinervAI combines AI agent students with various backgrounds and proficiencies to help educators better understand students.
Large language models serve as AI agents in the classroom: each is initialized with a distinct personality (ex: “confident”), background (ex: “liberal arts student with math training”) and weight factor (which varies the scale of the 2 prior features’ impact) which influences their understanding of topics.
Users can upload a “lecture file” containing important information. The text is interpreted by the “professor” agent, which “lectures” the students, who then internalize the new data and generate new questions depending on their background. The “professor” then provides sample answers specific to each student’s needs and knowledge gaps.
Produces a summary file listing Q+A conversations and summary statistics regarding question types (commonly asked questions, question frequency, recurring “keyword” concepts, potentially quiz questions).
How we built it
We used OpenAI API to create professor and student agents: due to the desired diversity of agents, we needed a flexible and streamlined method for initializing them, which OpenAI's API was well-suited for.
Using semantic Kernel prompt templating engine to easily chain different language model calls. Semantic Kernel also increased the effective size of our context window for better long-term lecture learning and reduced token usage, improving affordability and scalability.
We used FastAPI to simplify API deployment in our Python environment. The majority of our backend was coded in Python.
Our interactive frontend design was built using React, Typescript and Tailwind. We also created several website elements and presentation illustrations using Figma.
Challenges we ran into
Syncing backend reliant on numerous API calls with dynamic frontend to improve user experience and interactivity.
Creating student profiles specific enough to produce diverse responses amongst our student agent group.
Overcoming context window limitations of OpenAI API using the Semantic Kernel SDK, which allowed us to easily integrate LLMs into our code using custom plugins.
Creating the frontend visualizations was tricky, since we wanted to represent a wide range of possible states, which required us to create a range of Figma designs.
Due to the range of API calls and background computations occurring, as well as interactions between the different agents, our program runtime is over a minute. We are looking to optimize it, but were unable to achieve significant improvements with either multithreading or asynchronous calls. We hope to increase the efficiency of this program to make it more efficient and scalable in the future.
Accomplishments that we're proud of
We’re extremely happy to have finished the project! Several of us had never attended a hackathon before so completing a project of this scope was an intensely rewarding experience.
This project required all team members to familiarize themselves with a range of cross-stack libraries and tools, which greatly improved our understanding of the application design process and reinforced our love of hacking!
Simply managing and assigning tasks in a team setting was a challenge in itself, as well as proper enforcement of version control. Using Github and working together in a single physical location allowed us to streamline our workflow and design decisions.
What we learned
Learned how to interact with OpenAI API, then overcame some of its limitations by using Microsoft’s Semantic Kernel Open Source tool.
Learned how to use Figma to create detailed visualizations and animations to make our frontend engaging and exciting!
Discovered how to use web sockets to interface between the API backend and the dynamic frontend page with minimal latency.
Several of us had never used Tailwind or Typescript before, so learning that part of the tech stack was particularly interesting.
What's next for MinervAI
Text to speech/ speech to text - we could vastly increase the reach of our project by providing live text to speech and speech to text capabilities. We would like our professor to be able to answer questions in real time , then convert their responses and feed them back into the student agents to complete their knowledge in real time.
Discussion amongst students - we would like students to discuss amongst themselves and share knowledge during specific breaks, this would allow them to incorporate more information from peers and create a more uniform knowledge level.
Quiz - after each class lecture/session finishes, we would like to either generate a summary quiz of the input information or allow the professor to input their own, then instantly sample each students’ answers and grade them for correctness. We would use the output score of each student to judge their learning aptitude and in turn modify lecturing parameters or course material.
Greater variety in class sizes/ student parameters - a greater range of potential parameters (ex: specific classes and results for those classes could be used as parameters to create a more student-specific profile for each unique case).
Log in or sign up for Devpost to join the conversation.