Skip to content

davidrojom/local-rag

Repository files navigation

Local-RAG

Local-RAG is a monorepo for a local Retrieval-Augmented Generation (RAG) system, designed to enable knowledge-intensive chat and document search workflows using modern LLMs and vector databases.

Structure

  • apps/backend: A NestJS backend providing APIs for chat, document ingestion, retrieval, and thread management. Integrates with ChromaDB for vector search and supports streaming responses from local LLMs via Ollama.
  • apps/frontend: An Angular frontend for interactive chat, thread management, and document search. Features markdown rendering, source attribution, and a responsive UI.
  • packages/: Shared libraries and utilities for backend/frontend integration.

Features

  • Document ingestion and chunking (PDF, text, etc.)
  • Embedding and retrieval using ChromaDB and LangChain
  • Local LLM integration via Ollama (configurable models)
  • Multi-threaded chat with source attribution
  • Streaming responses for improved UX
  • Configurable chunk size, overlap, and accuracy threshold
  • SQLite-based metadata storage

Getting Started

  1. Install dependencies

    pnpm install
  2. Configure environment
    Copy .env.example to .env and adjust settings as needed (ChromaDB, Ollama, etc).

  3. Start backend

    pnpm dev:backend
  4. Start frontend

    pnpm dev:frontend

Configuration

See .env.example for all environment variables, including database paths, model names, and service URLs.

Technologies

  • NestJS, Angular, LangChain, ChromaDB, Ollama, SQLite

License

UNLICENSED (see package.json)

About

A self-contained RAG with chat interface. Runs entirely on local hardware — no external APIs, no data leaks.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors