Skip to main content

Local Directory RAG

A simple tool for Retrieval-Augmented Generation (RAG) using documents from your local filesystem.

Overview

Local Directory RAG allows you to:

  1. Create vector embeddings from your local documents (PDF, TXT)
  2. Query these documents using natural language, leveraging OpenAI's language models

Requirements

  • Python 3.13 or higher
  • OpenAI API key (set in your .env file)

Installation

# Clone the repository
git clone https://github.com/sualeh/local-dir-rag.git
cd local-dir-rag

# Install dependencies
pip install -e .

Configuration

Create a .env file in the project root with your OpenAI API key:

OPENAI_API_KEY=your-api-key-here

You can also create a .env.params file to set default directories:

DOCS_DIRECTORY=path/to/your/documents
VECTOR_DB_PATH=path/to/save/vector/database

Run Locally

Run locally with the following command, with the approproate arguments:

poetry run python -m local_dir_rag.main

Usage

Create Vector Database

# Using command line arguments
python -m local_dir_rag.main embed --docs-directory /path/to/docs --vector-db-path /path/to/vector_db

# Or if installed as a package
local-dir-rag embed --docs-directory /path/to/docs --vector-db-path /path/to/vector_db

Query Documents

# Using command line arguments
python -m local_dir_rag.main query --vector-db-path /path/to/vector_db

# Or if installed as a package
local-dir-rag query --vector-db-path /path/to/vector_db

Docker Usage

You can run Local RAG using Docker:

# Pull the Docker image
docker pull sualeh/local-dir-rag:latest

# Embed documents
docker run -v /path/to/your/docs:/data/docs -v /path/to/vector_db:/data/vector_db \
  -e OPENAI_API_KEY=your-api-key-here \
  sualeh/local-dir-rag embed

# Query your documents
docker run -v /path/to/vector_db:/data/vector_db \
  -e OPENAI_API_KEY=your-api-key-here \
  sualeh/local-dir-rag query

You can also pass command line arguments directly:

docker run -v /path/to/your/docs:/data/docs -v /path/to/output:/data/vector_db \
  -e OPENAI_API_KEY=your-api-key-here \
  sualeh/local-dir-rag embed --docs-directory /data/docs --vector-db-path /data/vector_db

Docker Compose Usage

You can also use Docker Compose for easier management of the Local RAG container:

  1. Create a docker-compose.yml file:
version: '3'
services:
  local-dir-rag:
    image: sualeh/local-dir-rag:latest
    environment:
      - OPENAI_API_KEY=${OPENAI_API_KEY}
    volumes:
      - ./docs:/data/docs
      - ./vector_db:/data/vector_db
  1. Run the application:
# For embedding documents
docker-compose run local-dir-rag embed

# For querying documents
docker-compose run local-dir-rag query

You can also pass additional arguments:

docker-compose run local-dir-rag embed --docs-directory /data/docs --vector-db-path /data/vector_db

This approach simplifies volume mounting and environment variable management, especially when working with the tool regularly.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

local_dir_rag-0.2.0.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

local_dir_rag-0.2.0-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file local_dir_rag-0.2.0.tar.gz.

File metadata

  • Download URL: local_dir_rag-0.2.0.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for local_dir_rag-0.2.0.tar.gz
Algorithm Hash digest
SHA256 2bf24b6b5d5016db09ca2dfd1a94c44b1e845629760393e7bf31d171e10eb75d
MD5 ee7072d7ba787aab317d024b1702925c
BLAKE2b-256 466555cb5089a44e9a06f38e837619259554686caa9677cd29e9b795b0e6f72e

See more details on using hashes here.

Provenance

The following attestation bundles were made for local_dir_rag-0.2.0.tar.gz:

Publisher: publish-pypi.yml on sualeh/local-dir-rag

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file local_dir_rag-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: local_dir_rag-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for local_dir_rag-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e2c355e731f05ee22e61597f5592da1cd961501f9f3610467abfdaa5329b0e19
MD5 fd989f6665cf8d35ce5915a660925f5b
BLAKE2b-256 f42f71778aec0a7c5df05e2a31152d6da930725f7549fb41fe9de3dabe19c86c

See more details on using hashes here.

Provenance

The following attestation bundles were made for local_dir_rag-0.2.0-py3-none-any.whl:

Publisher: publish-pypi.yml on sualeh/local-dir-rag

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

This release

0.2.0 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page