📖 Quran Tafsir API (Arabic)
This is a FastAPI-based project that provides Quranic verse explanations (tafsir) in Arabic using a Large Language Model (LLM) from Groq (llama3-70b-8192). You provide a verse key and the corresponding Arabic text, and the API returns a detailed tafsir.
🔧 Features
- 📖 Accepts verse key (e.g.,
2:3) and verse text in Arabic - 🤖 Uses Groq's LLM to generate simple, accurate tafsir
- 🚀 Built with FastAPI for fast and easy API development
- 📦 Includes health check endpoint
- 🔐 API key management using
.env(do not commit.envto GitHub!)
📁 Project Structure
quran-tafsir-api/ │ ├── main.py # FastAPI app ├── quran_arabic.csv # CSV with Quran verse keys and Arabic text ├── .env # (excluded) Contains your GROQ_API_KEY ├── .gitignore # Ignore venv, .env, etc. └── README.md
Install dependencies:
pip install -r requirements.txt
Environment Variables
Create a .env file in the project root:
GROQ_API_KEY=your-groq-api-key-here Make sure to add .env to your .gitignore to avoid pushing secrets.
How to Use
▶️ Run the FastAPI App uvicorn main:app --reload
🔁 Endpoints
- POST /tafsir Returns Arabic tafsir for a given verse.
Request body: { "verse_key": "2:3", "verse_text": "ٱلَّذِينَ يُؤْمِنُونَ بِٱلْغَيْبِ وَيُقِيمُونَ ٱلصَّلَوٰةَ" } Response: { "reference": "2:3", "text": "ٱلَّذِينَ يُؤْمِنُونَ بِٱلْغَيْبِ وَيُقِيمُونَ ٱلصَّلَوٰةَ", "tafsir": "تفسير الآية باللغة العربية الفصحى ..." }
- GET /health Simple health check: { "status": "ok", "quran_verses_loaded": 6236 }