RAG system for PDF documents using Qdrant vector DB and Inngest orchestration.
- PDF document ingestion and chunking
- Interactive Streamlit UI for document management
- Async function orchestration with Inngest
- Vector Database: Qdrant - High-performance vector similarity search
- Orchestration: Inngest - Reliable function orchestration
- LLM: Groq
- Embeddings: Sentence Transformers
- API: FastAPI
- UI: Streamlit
- Python 3.13+
- Docker (for Qdrant)
- Groq API key (Get one here)
- Clone the repository:
git clone https://github.com/yourusername/embedded-rag-pdf.git
cd embedded-rag-pdf- Install dependencies with uv:
uv sync- Copy the example environment file:
cat .env.example > .env- Edit
.envand add your Groq API key and your groq model:
GROQ_API_KEY=your_groq_api_key_here
GROQ_MODEL=your_groq_model (default = llama-3.1-8b-instant)Run Qdrant in a Docker container:
docker run -d --name qdrantRagDB -p 6333:6333 -v "$(pwd)/qdrant_storage:/qdrant/storage" qdrant/qdrantIn a separate terminal, start the Inngest development server:
npx inngest-cli@latest devRun the main application with uvicorn:
uv run uvicorn main:app --reloadThe API will be available at http://localhost:8000
In another terminal, launch the Streamlit interface:
uv run streamlit run interface.pyAccess the UI at http://localhost:8501
