A powerful document AI question-answering tool that connects to your local Ollama models. Create, manage, and interact with RAG systems for all your document ne
A powerful document AI question-answering tool that connects to your local Ollama models. Create, manage, and interact with RAG systems for all your document ne
⚠️ Project Temporarily Paused
This project is currently on pause due to my work and university commitments that take up a lot of my time. I am not able to actively maintain this project at the moment. Development will resume when my situation allows it.
RLAMA is a powerful AI-driven question-answering tool for your documents, seamlessly integrating with your local Ollama models. It enables you to create, manage, and interact with Retrieval-Augmented Generation (RAG) systems tailored to your documentation needs.
RLAMA aims to become the definitive tool for creating local RAG systems that work seamlessly for everyone—from individual developers to large enterprises. Here's our strategic roadmap:
RLAMA's core philosophy remains unchanged: to provide a simple, powerful, local RAG solution that respects privacy, minimizes resource requirements, and works seamlessly across platforms.
curl -fsSL https://raw.githubusercontent.com/dontizi/rlama/main/install.sh | sh
RLAMA is built with:
RLAMA follows a clean architecture pattern with clear separation of concerns:
…
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Documents │────>│ Document │────>│ Embedding │
│ (Input) │ │ Processing │ │ Generation │
└─────────────┘ └─────────────┘ └─────────────┘
│
▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Query │────>│ Vector │ environment variable > default location.
### rag - Create a RAG system
Creates a new RAG system by indexing all documents in the specified folder.
```bash
rlama rag [model] [rag-name] [folder-path]
Parameters:
model: Name of the Ollama model to use (e.g., llama3, mistral, gemma) or a Hugging Face model using the format hf.co/username/repository[:quantization].rag-name: Unique name to identify your RAG system.folder-path: Path to the folder containing your documents.Example:
# Using a standard Ollama model
rlama rag llama3 documentation ./docs
# Using a Hugging Face model
rlama rag hf.co/bartowski/Llama-3.2-1B-Instruct-GGUF my-rag ./docs
# Using a Hugging Face model with specific quantization
rlama rag hf.co/mlabonne/Meta-Llama-3.1-8B-Instruct-abliterated-GGUF:Q5_K_M my-rag ./docs
Creates a new RAG system by crawling a website and indexing its content.
rlama crawl-rag [model] [rag-name] [website-url]
…
bash
# Create a new RAG from a documentation website
rlama crawl-rag llama3 docs-rag https://docs.example.com
# Customize crawling behavior
rlama crawl-rag llama3 blog-rag https://blog.example.com --max-depth=3 --exclude-path=/archive,/tags
# Create a RAG with semantic chunking
rlama rag llama3 documentation ./docs --chunking-strategy=semantic
# Use hierarchical chunking for large documents
rlama rag llama3 book-rag ./books --chunking-strategy=hierarchical
Provides an interactive step-by-step wizard for creating a new RAG system.
rlama wizard
The wizard guides you through:
Example:
rlama wizard
# Follow the prompts to create your customized RAG
Configure a RAG system to automatically watch a directory for new files and add them to the RAG.
rlama watch [rag-name] [directory-path] [interval]
Parameters:
rag-name: Name of the RAG system to watch.directory-path: Path to the directory to watch for new files.interval: Time in minutes to check for new files (use 0 to check only when the RAG is used).Example:
# Set up directory watching to check every 60 minutes
rlama watch my-docs ./watched-folder 60
# Set up directory watching to only check when the RAG is used
rlama watch my-docs ./watched-folder 0
# Customize what files to watch
rlama watch my-docs ./watched-folder 30 --exclude-dir=node_modules,tmp --process-ext=.md,.txt
Disable automatic directory watching for a RAG system.
rlama watch-off [rag-name]
Parameters:
rag-name: Name of the RAG system to disable watching.Example:
rlama watch-off my-docs
Manually check a RAG's watched directory for new files and add them to the RAG.
rlama check-watched [rag-name]
Parameters:
rag-name: Name of the RAG system to check.Example:
rlama check-watched my-docs
Configure a RAG system to automatically monitor a website for updates and add new content to the RAG.
rlama web-watch [rag-name] [website-url] [interval]
Parameters:
rag-name: Name of the RAG system to monitor.website-url: URL of the website to monitor.interval: Time in minutes between checks (use 0 to check only when the RAG is used).Example:
# Set up website monitoring to check every 60 minutes
rlama web-watch my
No open issues yet, or sync has not completed.