LLM RAG

by binarybana

MCP Client 2 stars
  • other

Easy RAG scripts for a local, embedded, MCP-enabled knowledge store.

About

What is LLM RAG?

LLM RAG is a Retrieval Augmented Generation implementation built with LlamaIndex for document processing, Google Gemini for embeddings, and LanceDB for vector storage. It runs as a Python package and is intended for developers building RAG systems.

How to use LLM RAG?

Install dependencies using uv venv and uv pip install -e ., then set your Google API key in a .env file and allow direnv. Ingest documents with python -m llm_rag.ingest --source <path> --type [code|url|pdf]. Start the search server with python -m llm_rag.search --db <path_to_lancedb>.

Key features of LLM RAG

- Document ingestion from code, URLs, and PDFs
- Google Gemini embeddings for vector representation
- LanceDB vector storage for efficient retrieval
- Dedicated search server for querying indexed data
- Managed with uv and direnv for reproducible environments

Use cases of LLM RAG

- Ingesting code repositories to enable natural‑language search over source files
- Indexing website content for question‑answering over documentation or articles
- Processing PDF documents for searchable knowledge bases
- Running a local search server to query ingested data

FAQ from LLM RAG

What embedding model does LLM RAG use?

It uses Google Gemini for generating embeddings.

What vector database is used for storage?

LanceDB serves as the vector store for indexed documents.

How do I ingest a PDF document?

Run python -m llm_rag.ingest --source /path/to/pdf --type pdf.

How do I start the search server?

Use python -m llm_rag.search --db /path/to/lancedb.

What dependency manager does the project require?

The project uses uv for dependency management and direnv for environment variables.

Details

Author
binarybana
GitHub stars
2
Category
other
Repository
binarybana/easyrag

LLM RAG

A RAG (Retrieval Augmented Generation) implementation using LlamaIndex for document processing, Gemini for embeddings, and LanceDB for vector storage.

Setup

This project uses uv for dependency management and direnv for environment management. To get started:

1. Install dependencies:

# Create and activate a new virtual environment
uv venv
source .venv/bin/activate

Install dependencies

uv pip install -e .

2. Set up environment:

# Create .env file with your Google API key
echo "GOOGLE_API_KEY=your_key_here" > .env

Allow direnv to load the environment

direnv allow

Usage

Data Ingestion

python -m llm_rag.ingest --source /path/to/source --type [code|url|pdf]

Search Server

```bash
python -m llm_rag.search --db /path/to/lancedb