🎥 Watch Demo Video
(Click to see FAHEM in action — full walkthrough of features and UI!)
FAHEM is an interactive multimodal educational assistant built with Streamlit.
It combines Retrieval-Augmented Generation (RAG) using ColPali, Google Gemini for reasoning and explanation generation, and Wav2Lip for realistic lip-synced video narration.
The chatbot provides personalized learning experiences by adapting to each user's learning style — whether they prefer reading, listening, visuals, or video explanations.
- Upload any educational PDF.
- The system retrieves relevant knowledge using ColPali embeddings.
- Every answer includes citations linked to the exact PDF pages.
- Uses Google Gemini for natural dialogue.
- Supports bilingual interaction (English and Arabic).
- Converts answers into spoken narration.
- Supports male or female voices using Google Cloud TTS.
- Generates a realistic talking-head educational video using Wav2Lip.
- Ideal for visual and auditory learners.
- Built-in Learning Style Test determines your dominant style:
- ✏️ Reading/Writing
- 🎧 Auditory
- 🎥 Visual or Video-Based
- Adapts answers accordingly.
-Automatically generates interactive flashcards from PDF content or chatbot responses.
- Designed to enhance active recall and memory retention.
- Suitable for quick revision sessions or self-testing.
-Transforms retrieved knowledge into structured mind maps.
- Helps learners visualize relationships between concepts.
- Perfect for spatial and conceptual understanding.
- Simple configuration through the Settings tab.
- Modular code design — easy to extend or integrate.
FAHEM/
│
├── app.py # Main Streamlit app entry point
│
├── modules/ # Core modules of the FAHEM system
│ ├── chatbot.py # Gemini-based chatbot logic
│ ├── rag_colpali.py # ColPali retrieval and embedding
│ ├── response_router.py # Routes response modes (text, audio, video)
│ ├── preference_test.py # Learning style test logic and UI
│ ├── utils.py # Utility helpers (JSON, file ops, formatting)
│ └── google_tts.py # Text-to-speech implementation
│
├── lipsync.py # Lip-syncing using Wav2Lip
│
├── config.py # Configuration (API keys, model names, URLs)
│
├── cache/ # Cached data and temporary files
│
├── requirements.txt # Python dependencies
│
└── README.md # Project documentationgit clone https://github.com/Ayaabdelmoneam/FAHEM.AI.git
cd FAHEM.AIpython -m venv venv
venv\Scripts\activate # Windowssource venv/bin/activate # macOS/Linuxpip install -r requirements.txtstreamlit run app.py