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 --build
The 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.