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.
- 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.
- 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
-
Install dependencies
pnpm install
-
Configure environment
Copy.env.exampleto.envand adjust settings as needed (ChromaDB, Ollama, etc). -
Start backend
pnpm dev:backend
-
Start frontend
pnpm dev:frontend
See .env.example for all environment variables, including database paths, model names, and service URLs.
- NestJS, Angular, LangChain, ChromaDB, Ollama, SQLite
UNLICENSED (see package.json)