RAG Pipeline

Production-ready RAG pipeline with vector DB and LLM integration

Category
rag
Version
1.2.0
Deployment formats
Docker Compose, Helm (Kubernetes), Terraform (local Docker), Terraform (AWS)
Maintainer
AI Solutions Camp
Tags
RAG, Vector DB, LLM, Embeddings, ChromaDB, OpenAI

Source code

Overview

A complete Retrieval-Augmented Generation pipeline with vector database, embedding service, and LLM integration. Perfect for building knowledge bases, Q&A systems, and document search applications.

Requirements

  • Docker and Docker Compose installed
  • 4GB RAM minimum (8GB recommended)
  • First run downloads ~500MB of model data

Quick start

Quick Start (Docker)

  1. Save the Docker Compose file:
   mkdir rag-pipeline && cd rag-pipeline
   # Copy the docker-compose.yml content from above
  1. Start the services:
   docker-compose up -d
  1. Wait for models to download (first run takes a few minutes)
  1. Test ChromaDB:
   curl http://localhost:8000/api/v1/heartbeat
  1. Test Embeddings:
   curl http://localhost:8080/embed \
     -X POST \
     -H "Content-Type: application/json" \
     -d '{"inputs": "Hello world"}'

Environment variables

  • IS_PERSISTENT – Enable persistent storage for ChromaDB
  • MODEL_ID – Hugging Face model for embeddings
  • ANONYMIZED_TELEMETRY – Disable telemetry

docker-compose.yml

version: "3.8"

services:
  # Vector Database for storing embeddings
  chromadb:
    image: chromadb/chroma:latest
    container_name: chromadb
    ports:
      - "8000:8000"
    volumes:
      - chroma_data:/chroma/chroma
    environment:
      - IS_PERSISTENT=TRUE
      - ANONYMIZED_TELEMETRY=FALSE
    restart: unless-stopped

  # Text Embedding Service (Hugging Face)
  embeddings:
    image: ghcr.io/huggingface/text-embeddings-inference:cpu-1.5
    container_name: embeddings
    ports:
      - "8080:80"
    environment:
      - MODEL_ID=BAAI/bge-small-en-v1.5
    volumes:
      - embedding_models:/data
    restart: unless-stopped

volumes:
  chroma_data:
  embedding_models:

All AI stacks