An AI-powered Retrieval-Augmented Generation (RAG) system that answers questions directly from the EASA Syllabus for PPL, SPL, and BPL theory exams. Built with LangChain, FAISS, OpenAI, and Streamlit, this project extracts and embeds content from the official syllabus PDF and uses LLMs to generate accurate, syllabus-aligned answers. This was created just for learning purpose.
- ✅ Contextual question-answering using the official EASA syllabus
- ✅ Smart document chunking and text cleaning
- ✅ FAISS-based vector search for fast retrieval
- ✅ OpenAI LLM for natural language responses
- ✅ Streamlit UI with clean and modern design
- ✅ Fully containerized with Docker Compose
rag-easa/
├── app.py # Optional FastAPI backend
├── ingest.py # Extracts and embeds syllabus from PDF
├── query.py # Core RAG logic (retriever + LLM)
├── ui.py # Streamlit UI to ask questions
├── requirements.txt # Python dependencies
├── Dockerfile # Docker image definition
├── docker-compose.yml # For local container orchestration
├── .env # Environment variables
├── data/ # PDF source already provided
└── vectorstore/ # Stores FAISS index after ingestion
Create a .env file in the root directory:
OPENAI_API_KEY=sk-...docker-compose up --buildThe app will be available at http://localhost:8501
| Component | Tech |
|---|---|
| Embeddings | OpenAIEmbeddings via tiktoken |
| Vector DB | FAISS |
| LLM | ChatGPT via langchain-openai |
| Frontend | Streamlit |
| Backend | LangChain RetrievalQA chain |
| Containerization | Docker + Docker Compose |
MIT License. PDF Syllabus © Aircademy / EASA. Used for educational purposes only.