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

Development and Testing

Install development dependencies:

poetry install --extras "dev"
poetry show --tree

Run all tests:

poetry run pytest

Run a single test:

poetry run pytest tests/test_document_loader.py::test_load_document

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.3.0.tar.gz (6.3 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.3.0-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: local_dir_rag-0.3.0.tar.gz
  • Upload date:
  • Size: 6.3 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.3.0.tar.gz
Algorithm Hash digest
SHA256 f826e76b2ff87741381652422be74da18ee318ae6430d691a893dd7a29df05c8
MD5 34098b3a38f4fa86bb78f3372901d108
BLAKE2b-256 68cbdeb880536169bab14d3aae208f6c8934638331358d5e255e9b02d3384f87

See more details on using hashes here.

Provenance

The following attestation bundles were made for local_dir_rag-0.3.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.3.0-py3-none-any.whl.

File metadata

  • Download URL: local_dir_rag-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 9.5 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b0653a6604a7ebb1d8f7c1c39965a11caaedc3884cb3cd209f63d7b83ef6d72e
MD5 170975d68b5f5561e6b2f561adf38a0c
BLAKE2b-256 12c184531589e665c52a6876536957539dd5881047ac18d4df1996654ce59435

See more details on using hashes here.

Provenance

The following attestation bundles were made for local_dir_rag-0.3.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

This release

0.3.0 This release

2 files

0.2.0

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