Skip to content

AbhinaavRamesh/langgraph-ollama-tutorial

Repository files navigation

LangGraph Ollama Local

Learn LangGraph by building agents that run entirely on your hardware.

PyPI version Python 3.12+ License: MIT


What This Is

A hands-on tutorial series for building LangGraph agents with local LLMs via Ollama. Each notebook teaches a concept from scratch - no cloud APIs required.

You'll learn:

  • LangGraph fundamentals: StateGraph, nodes, edges, reducers
  • Tool calling and the ReAct pattern
  • Memory and conversation persistence
  • Human-in-the-loop workflows
  • Self-reflection and critique patterns
  • RAG patterns: Basic RAG, Self-RAG, CRAG, Adaptive RAG, Agentic RAG
  • Build a Perplexity-style research assistant

Quick Start

Prerequisites

  1. Python 3.12+
  2. Ollama running locally or on your LAN:
    # Install Ollama
    curl -fsSL https://ollama.ai/install.sh | sh
    
    # Pull a model
    ollama pull llama3.2:3b

Installation

Option 1: Install from PyPI (Recommended)

# Install the package
pip install langgraph-ollama-local

# With all features (RAG, persistence, notebooks)
pip install langgraph-ollama-local[all]

# Verify connection
langgraph-local check

Option 2: Install from source (for development)

git clone https://github.com/AbhinaavRamesh/langgraph-ollama-tutorial.git
cd langgraph-ollama-tutorial

# Install with all dependencies
pip install -e ".[all]"

# Verify connection
langgraph-local check

Configuration

cp .env.example .env
# Edit .env with your settings
Variable Default Description
OLLAMA_HOST 127.0.0.1 Ollama server address
OLLAMA_PORT 11434 Ollama server port
OLLAMA_MODEL llama3.2:3b Default model
TAVILY_API_KEY (optional) For web search in CRAG tutorials

Web Search Setup (Optional)

For CRAG and Perplexity-style tutorials, get a free Tavily API key:

  1. Sign up at https://tavily.com
  2. Get your API key from the dashboard
  3. Add to .env:
    TAVILY_API_KEY=tvly-your-key-here
    

LAN Server with Monitoring

To host Ollama on a GPU machine accessible across your network, use ollama-local-serve:

pip install ollama-local-serve[all]
make init && make up
# Dashboard at http://your-server:3000

Tutorials

Core Patterns (Phase 2)

# Notebook Documentation What You'll Learn
01 Chatbot Basics docs StateGraph, nodes, edges, message handling
02 Tool Calling docs Tools, ReAct loop from scratch
03 Memory & Persistence docs Checkpointers, threads, conversation history
04 Human-in-the-Loop docs Interrupts, approvals, resume
05 Reflection docs Generate, Critique, Revise loops
06 Plan & Execute docs Structured outputs, multi-step planning
07 Research Assistant docs Capstone: all patterns combined

RAG Patterns (Phase 3)

# Notebook Documentation What You'll Learn
08 Basic RAG docs Document loading, chunking, embeddings, ChromaDB
09 Self-RAG docs Document grading, hallucination detection, retry loops
10 CRAG docs Web search fallback, corrective retrieval
11 Adaptive RAG docs Query classification, strategy routing
12 Agentic RAG docs Agent-controlled retrieval, multi-step
13 Perplexity Clone docs Citations, source metadata, follow-ups

Run any notebook:

jupyter lab examples/

RAG Quick Start

Index your documents and start querying:

from langgraph_ollama_local.rag import DocumentIndexer, LocalRetriever

# Index documents
indexer = DocumentIndexer()
indexer.index_directory("sources/")

# Query
retriever = LocalRetriever()
docs = retriever.retrieve_documents("What is Self-RAG?", k=4)

Project Structure

langgraph-ollama-tutorial/
├── examples/
│   ├── core_patterns/          # Tutorials 01-07
│   │   ├── 01_chatbot_basics.ipynb
│   │   └── ...
│   └── rag_patterns/           # Tutorials 08-13
│       ├── 08_basic_rag.ipynb
│       └── ...
├── docs/
│   ├── core_patterns/          # Core pattern documentation
│   └── rag_patterns/           # RAG pattern documentation
├── sources/                    # PDF sources for RAG indexing
├── langgraph_ollama_local/
│   ├── config.py               # Configuration
│   ├── cli.py                  # CLI tools
│   └── rag/                    # RAG infrastructure
│       ├── embeddings.py       # Local embeddings
│       ├── indexer.py          # Document indexing
│       ├── retriever.py        # Document retrieval
│       └── graders.py          # Quality graders
├── tests/                      # Test suite
└── pyproject.toml

CLI

langgraph-local check    # Verify Ollama connection
langgraph-local config   # Show current configuration
langgraph-local list     # List available examples

Development

make test          # Run tests
make test-int      # Integration tests (requires Ollama)
make lint          # Linting
make format        # Format code

Adapted From

These tutorials are adapted from the official LangGraph documentation (MIT License), optimized for local Ollama deployment.

License

MIT License

About

Learn How to Build production-ready agentic AI systems using LangGraph with local Ollama models. Learn to design intelligent agents that reason and act, integrate tools effectively, handle errors gracefully, and optimize performance—all without cloud dependencies.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors