The best personalized AI teaching assistant in the world.
Chiron-AI is an intelligent educational technology platform that provides adaptive, personalized tutoring support for students while empowering professors with tools to manage courses and learning materials. Built with a multi-agent AI architecture based on Bloom's taxonomy, it delivers context-aware assistance tailored to each student's learning needs.
Visit us at: chiron-ta.com
- Features
- Architecture
- Tech Stack
- Getting Started
- Project Structure
- API Documentation
- Deployment
- Contributing
- Intelligent AI Tutoring: Chat with an AI teaching assistant powered by specialized expert agents
- PDF Document Integration: View and interact with course materials while studying
- Conversation Management: Access chat history and resume previous learning sessions
- Personalized Learning: AI adapts to your learning style and needs
- Real-time Responses: Get immediate help with academic questions
- Course Management: Create and manage classes with student enrollment
- Material Upload: Upload and organize PDF course materials
- AI-Powered Summarization: Automatically generate summaries of course materials
- Student Analytics: Track student engagement and learning characteristics
- Model Configuration: Customize AI assistant behavior for your courses
- System Administration: Full user and role management capabilities
- Entity Management: Create and assign users, classes, and materials
- Platform Oversight: Monitor and manage the entire educational ecosystem
Chiron-AI uses a sophisticated multi-agent architecture based on Bloom's taxonomy of learning:
[Supervisor Agent] → Routes questions to appropriate specialist
↓
┌─────────────────────────────────────────┐
│ 7 Expert Agents (Bloom's Taxonomy): │
├─────────────────────────────────────────┤
│ 1. Recall Agent (basic facts) │
│ 2. Conceptual Clarification Agent │
│ 3. Application/Procedural Agent │
│ 4. Analysis & Reasoning Agent │
│ 5. Evaluation & Critique Agent │
│ 6. Creation & Synthesis Agent │
│ 7. Study Skills Agent │
└─────────────────────────────────────────┘
↓
[Semantic Search Tools + Context Retrieval]
↓
[Evaluation Agent] → Quality control
↓
[Response to Student]
Each agent specializes in a different cognitive level, ensuring students receive appropriate support whether they're memorizing facts or creating new synthesis.
- Framework: FastAPI (Python)
- AI Orchestration: LangGraph for multi-agent workflows
- LLM Models: OpenAI (GPT-4o, GPT-4o-mini, o1-mini)
- Databases:
- MongoDB (user data, classes, materials, chats)
- Qdrant (vector database for semantic search)
- Embeddings: VoyageAI (voyage-3-large)
- Object Storage: Wasabi S3 (S3-compatible)
- Authentication: JWT tokens (HS256)
- Async Runtime: Motor (async MongoDB driver)
- Framework: Next.js 15 (React 18)
- Language: TypeScript
- UI Components: Material-UI (MUI), Tailwind CSS
- PDF Handling: React PDF Viewer, PDF.js
- Math Rendering: KaTeX
- Markdown: React Markdown
- Data Fetching: TanStack Query (React Query)
- Authentication: JWT with Google OAuth
- Backend Hosting: DigitalOcean
- Frontend Hosting: Vercel
- Reverse Proxy: NGINX
- Containers: Docker
- Debugging: LangSmith
- Version Control: Git with Git LFS for large assets
- Python 3.8+
- Node.js 18+
- MongoDB instance (local or Atlas)
- Qdrant cloud account
- OpenAI API key
- VoyageAI API key
- Wasabi S3 credentials
- Navigate to the backend directory:
cd backend- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Create
.envfile from example:
cp .env.example .env- Configure environment variables in
.env:
OPENAI_API_KEY=your_openai_key
VOYAGEAI_API_KEY=your_voyage_key
MONGODB_URI=your_mongodb_uri
QDRANT_URL=your_qdrant_url
QDRANT_API_KEY=your_qdrant_key
JWT_SECRET_KEY=your_secret_key
WASABI_ACCESS_KEY=your_wasabi_key
WASABI_SECRET_KEY=your_wasabi_secret- Run the development server:
uvicorn app.main:app --reloadThe API will be available at http://localhost:8000
- Navigate to the frontend directory:
cd tatopia-web- Install dependencies:
npm install- Create
.env.localfile:
NEXT_PUBLIC_API_URL=http://localhost:8000
NEXT_PUBLIC_GOOGLE_CLIENT_ID=your_google_client_id- Run the development server:
npm run devThe application will be available at http://localhost:3000
Chiron-AI/
├── backend/ # Python FastAPI application
│ ├── app/
│ │ ├── main.py # Application entry point
│ │ ├── core/ # Core configuration
│ │ │ ├── settings.py # Model & API settings
│ │ │ ├── config.py # Application config
│ │ │ └── database.py # Database connections
│ │ ├── routers/ # API endpoints
│ │ │ ├── chatbot/ # Chat API routes
│ │ │ ├── common/ # Auth & common routes
│ │ │ └── db/ # Database routes
│ │ ├── services/ # Business logic
│ │ │ ├── chat/ # AI chat services
│ │ │ │ ├── langgraph/ # LangGraph state machine
│ │ │ │ ├── supervisor_agent/
│ │ │ │ ├── expert_agent/
│ │ │ │ └── evaluation_agent/
│ │ │ └── db/ # Database services
│ │ ├── models/ # Pydantic models
│ │ ├── middlewares/ # Auth middleware
│ │ └── utils/ # Utilities
│ └── requirements.txt
│
└── tatopia-web/ # Next.js frontend
├── src/
│ ├── app/ # Next.js pages
│ │ ├── login/
│ │ ├── student/
│ │ ├── professor/
│ │ └── admin/
│ ├── components/
│ │ └── ui/
│ │ ├── student/
│ │ ├── professor/
│ │ ├── admin/
│ │ └── common/
│ └── middleware.ts # Auth middleware
├── package.json
└── next.config.ts
POST /chat- Send message and get AI responsePOST /generate_thread_id- Create new conversation threadPOST /prompt_polishing- Refine user prompts
POST/GET /students/*- Student managementPOST/GET /professors/*- Professor managementPOST/GET /classes/*- Class managementPOST/GET /materials/*- Course materialsPOST/GET /chats/*- Chat history
POST /upload- Upload PDF materials (max 100MB)POST /add_pdf_to_storage- Process PDF into vector embeddingsGET /download- Retrieve stored materials
POST /qdrant/*- Vector database operationsPOST /s3/*- Object storage operations
- Backend: DigitalOcean Droplet with Uvicorn + NGINX reverse proxy
- Frontend: Vercel (automatic deployments from git)
- Database: MongoDB Atlas
- Vector DB: Qdrant Cloud
- Object Storage: Wasabi S3
Ensure all production environment variables are properly configured:
- API keys (OpenAI, VoyageAI)
- Database URIs (MongoDB, Qdrant)
- JWT secret keys
- Storage credentials (Wasabi)
- Domain configurations
- Create a feature branch from
main - Make your changes
- Ensure code quality:
- Backend: Follow PEP 8 style guide
- Frontend: Run
npm run lint
- Test your changes thoroughly
- Submit a pull request
- Write clear, descriptive commit messages
- Include tests for new features
- Update documentation as needed
- Follow existing code patterns and conventions
Proprietary - All rights reserved
For questions or support, please contact:
- Repository Owner: Chang Min Bark, Hung Ngo, Duy Le
- Website: chiron-ta.com
Built with advanced AI technology to revolutionize personalized education.