- Prototype version (OmniTutor): https://huggingface.co/spaces/Siyuan0730/OmniTutor
- This brand-new version (OmniTutor 2.0): https://omnitutor2-dafltkkkprbocbvmesc96b.streamlit.app/
📢 OmniTutor 2 is a fully updated version with greater robustness from the previous OmniTutor prototype version, and the reason for start this new git repo (rather than just create a new branch on old one) is, the old one is now used fully for teaching purpose.
🧑🏫 OmniTutor is an all-round teacher, combined with a personalized teaching assistant that specially designed for all learners. Skilled in creating customized courses from given knowledge materials, and answering course-related questions with trustable accuracy. Hopefully it helps reducing obstacles in your learning journey.
- 🧑🏫 Customized course creation: Generated from any learning materials (.md or .pdf)!
- 📚 All disciplines: Whether it's math, physics, literature, history or coding, OmniTutor covers it all.
- ⚡️ Fast respond with trustable accuracy: Problem-solving chat with the AI teaching assistant who really understand the materials.
- 🔮 You learn, OmniTutor learns too: A multi-agent system (teacher, TA, and a teaching supervisor) is desgined to learn your status and habits.
OmniTutor - An all-round teacher and a personalized teaching assistant who really knows the subject, to help you solve all your learning problems, Make learning so simple: anything, anywhere, all at once.
- Start the Application: Execute the script to initiate the OmniTutor interface.
- Upload learning materials: The upload widget in the sidebar supports PDF and .md files simutaenously.
- Customize your course: By few clicks and swipes, adjusting teaching style, lesson count and language for your course.
- Start course generating: Touch "Next learning step!" button in the sidebar, then watch how OmniTutor creates personal-customized course for you.
- Interactive learning: Learn the course, and ask OmniTutor any questions related to this course whenever you encountered them.
Before running , ensure you have the following prerequisites installed:
- Python 3.x
- Streamlit
- FAISS
- NLTK
- OpenAI
-
Clone the Repository:
git clone ...
-
Install Required Libraries:
pip install -r requirements
-
Set Up OpenAI API Key: Ensure you have your OpenAI API key set up. You can either set it as an environment variable or use Streamlit's secrets management.
-
Run the Application:
streamlit run <filename>.py
- A button allows users to download the generated course freely!
- Generate each lesson with streaming output to reduce annoying waiting
- Ask questions as you learn
- Add session management system for robustness
- Update the session management system to prevent the visual course content from disappearing in some cases
- Adopt multi-agent system (teacher, TA, and a teaching supervisor) to learn the learner's habits.
- use query expansion technique to enhance the RAG experience and improve course quality
- visualize chunks and RAG system to enhance learners' trust and sense of control over the generated lessons
- Make the generated course outline editable
We welcome contributions from the community. If you'd like to improve the application, feel free to fork the repository, make your changes, and submit a pull request.
This project is licensed under the MIT License. For more details, refer to the LICENSE
file in the repository.
Thanks to the developers of Streamlit, FAISS, NLTK and OpenAI for their incredible tools that made this project possible.
Special thanks to Xuying Li, as my mentor and colleague, who gave me most significant support during the whole process of this project from zero to one.