Note: I have a bunch of kinks I need to iron out with this project (I'll do them over the next few days), but the main structure is mostly done
Here is a quick video overview of the project: https://www.loom.com/share/c321490734f84a30b3dafa00b39acffa
Autodidact is an AI-powered personalized learning assistant that creates custom study plans, provides interactive tutoring sessions, and tracks your learning progress.
- 🔍 Deep Research: AI investigates your topic and creates comprehensive study plans
- 📊 Knowledge Graphs: Visual representation of concepts and their prerequisites
- 👨🏫 AI Tutoring: Personalized 30-minute learning sessions with an AI tutor
- 📈 Progress Tracking: Monitor your mastery of each concept over time
- 🔄 Session Recovery: Resume interrupted learning sessions
- Clone the repository:
git clone https://github.com/yourusername/autodidact.git
cd autodidact- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Run the application:
streamlit run app.pyOn first run, you'll need to provide your OpenAI API key. The app will guide you through this process and store your key securely at ~/.autodidact/.env.json.
The application uses SQLite with the following schema:
- project: Learning projects with topics and metadata
- node: Knowledge graph nodes (concepts to learn)
- edge: Relationships between concepts
- learning_objective: Specific objectives for each concept
- session: Learning sessions linking projects and nodes
- transcript: Conversation history for each session
If you're upgrading from an earlier version, run the migration script:
python backend/migrate_db.pyThis will update your database schema to include the new session tracking features.
- Start a New Project: Enter a topic you want to learn
- Review the Plan: Examine the generated knowledge graph and report
- Begin Learning: Start tutoring sessions for available topics
- Track Progress: Monitor your mastery levels across concepts
autodidact/
├── app.py # Main Streamlit application
├── backend/
│ ├── db.py # Database operations
│ ├── jobs.py # AI job processing
│ ├── graph.py # LangGraph tutor implementation
│ ├── deep_research.py # Deep research module
│ └── migrate_db.py # Database migration script
├── components/
│ └── graph_viz.py # Graph visualization
└── utils/
└── config.py # Configuration management
To contribute or modify Autodidact:
- Follow the installation steps above
- Make your changes
- Test thoroughly with various topics
- Submit a pull request
- Python 3.8+
- OpenAI API key
MIT License - see LICENSE file for details