Build a RAG Chatbot with Ollama and LangChain in 30 Minutes

Retrieval-Augmented Generation (RAG) lets you chat with your own documents using a local LLM. Instead of fine-tuning a model on your data (expensive and complex), RAG retrieves relevant chunks at query time and injects them into the context. Here's the fastest path from zero to a working local RAG chatbot.

Hardware needed: Any machine that can run a 7B model. 8GB VRAM is comfortable. For Raspberry Pi or CPU-only builds, a 3B model like Phi-3.5 Mini works well for RAG. See LLMHardware.io for hardware that fits your budget.

Architecture Overview

The pipeline has four components: (1) Document loader — reads PDFs, text files, web pages. (2) Text splitter — chunks documents into 512-1024 token segments with overlap. (3) Embedding model — converts chunks to vectors stored in a local vector database (Chroma or Faiss). (4) Retrieval chain — on each query, embeds the question, finds similar chunks, injects them into the LLM prompt.

Minimal Working Code

Install: pip install langchain langchain-community chromadb ollama. Pull models: ollama pull mistral; ollama pull nomic-embed-text. The nomic-embed-text model is an excellent local embedding model that replaces OpenAI's embedding API. LangChain's OllamaEmbeddings class connects to it automatically. For vector storage, Chroma runs as an in-process library with no separate server needed.

Improving RAG Quality

Common failure modes: chunks too large (reduces retrieval precision), chunks too small (loses context), poor overlap (splits sentences). Best practices: use 512-token chunks with 50-token overlap for most documents, larger for technical manuals. Rerank retrieved chunks using a cross-encoder before injection. Use HyDE (hypothetical document embeddings) for better recall on abstract questions. For production RAG applications, AnythingLLM provides a complete no-code UI.

Comments

Popular posts from this blog

AMD RX 9070 XT for Local LLMs: ROCm Performance Guide (2026)

llama.cpp flash attention: how to enable and benchmark

SillyTavern with Local LLMs: Complete Setup for AI Companions