Made by Nicolas Queiroga and Henrique Martinelli Frezzatti as part of the Natural Language Processing course at Insper.
EduBot is a Natural Language Processing (NLP) application designed to enhance the learning and teaching experience by solving key pain points for educators and students. It leverages Large Language Models (LLMs) to provide innovative features, including conversational document interaction, automatic quiz generation, and flashcards creation. This project explores the potential of combining LLMs with user-centered design to address educational challenges creatively and effectively.
Objective: To demonstrate the effectiveness of LLMs in solving three critical pain points in education:
- Extracting meaningful insights from documents through conversational interaction.
- Automating the generation of quizzes based on specific topics from documents.
- Creating flashcards for active learning based on user-uploaded documents.
Final Goal: The project will be considered successful if:
- EduBot receives positive feedback from at least 10 users (educators/students) regarding its usability and effectiveness, measured through surveys.
- The system achieves at least 85% accuracy in generating contextually relevant quizzes and flashcards, evaluated through manual validation by subject matter experts.
Educators often spend hours designing quizzes and teaching aids, while students struggle to condense information into digestible formats. While tools like quiz makers or flashcard apps exist, they:
- Require manual input, making them time-consuming.
- Lack integration with AI for dynamic and efficient content generation.
- Fail to provide contextual relevance when analyzing documents.
EduBot bridges this gap by using state-of-the-art LLMs to automate these processes with minimal effort.
- Quizlet: Flashcard creation platform but requires manual content input.
- Google Forms with Add-ons: Facilitates quiz creation but lacks automation and relevance to uploaded documents.
- ChatGPT: Provides conversational capabilities but lacks a dedicated educational workflow and user interface for focused features.
EduBot:
- Combines conversational AI with document analysis, enabling interactive learning.
- Provides a unified platform for quizzes, flashcards, and document interaction.
- Automates tedious processes while ensuring contextual relevance of output.
- Chat with Your Data: Upload PDFs and interact with their content using AI-powered queries.
- Quiz Generator: Automatically generate multiple-choice quizzes based on user-specified topics within documents.
- Flashcards Generator: Create concise, topic-focused flashcards for active learning.
- Frontend: Streamlit for a responsive user interface.
- Backend: OpenAI GPT-4 APIs via LangChain for NLP capabilities.
- Document Handling: LangChain Document Loaders for PDF parsing.
- Data Storage: FAISS for vector-based document retrieval.
- User feedback via surveys.
- Quiz and flashcard accuracy validation by experts.
-
Clone the repository:
git clone https://github.com/yourusername/EduBot.git cd EduBot -
Set up the environment:
python3 -m venv env source env/bin/activate # On Windows: .\env\Scripts\activate pip install -r requirements.txt
-
Set your OpenAI API Key:
- Create a
.envfile in the root directory. - Add your API key:
OPENAI_API_KEY=your_openai_api_key
- Create a
-
Run the application:
streamlit run streamlit_app.py
- Code: Complete implementation uploaded to GitHub.
- Documentation: This README, and a brief report comparing EduBot to existing tools and its impact.
- Video Pitch: A 3-minute video showcasing EduBot’s features, its problem-solving potential, and user feedback.
EduBot is powered by:
- OpenAI GPT-4: Core NLP engine for content generation.
- LangChain: Document parsing and retrieval infrastructure.
- Streamlit: User interface development.
Special thanks to the participants who provided feedback and validated the outputs.