Skip to content

Repository files navigation

Embedded RAG pdf

RAG system for PDF documents using Qdrant vector DB and Inngest orchestration.

Demo

Features

  • PDF document ingestion and chunking
  • Interactive Streamlit UI for document management
  • Async function orchestration with Inngest

Tech Stack

  • Vector Database: Qdrant - High-performance vector similarity search
  • Orchestration: Inngest - Reliable function orchestration
  • LLM: Groq
  • Embeddings: Sentence Transformers
  • API: FastAPI
  • UI: Streamlit

Prerequisites

  • Python 3.13+
  • Docker (for Qdrant)
  • Groq API key (Get one here)

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/embedded-rag-pdf.git
cd embedded-rag-pdf
  1. Install dependencies with uv:
uv sync

Configuration

  1. Copy the example environment file:
cat .env.example > .env
  1. Edit .env and 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)

Usage

1. Start Qdrant (Vector Database)

Run Qdrant in a Docker container:

docker run -d --name qdrantRagDB -p 6333:6333 -v "$(pwd)/qdrant_storage:/qdrant/storage" qdrant/qdrant

2. Start Inngest Dev Server

In a separate terminal, start the Inngest development server:

npx inngest-cli@latest dev

3. Start the FastAPI Application

Run the main application with uvicorn:

uv run uvicorn main:app --reload

The API will be available at http://localhost:8000

4. Start the Streamlit UI (Optional)

In another terminal, launch the Streamlit interface:

uv run streamlit run interface.py

Access the UI at http://localhost:8501

About

RAG system for PDFs with Qdrant vector storage, Inngest orchestration

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages