How to Use ChromaDB with LangChain and Build RAG Without LangChain

LangChain wraps ChromaDB (and most other vector databases) behind a unified interface, making it easy to swap components and prototype quickly. But LangChain adds abstraction overhead, makes debugging harder, and changes frequently enough that tutorials become outdated quickly. This guide covers both approaches: the LangChain integration for teams already invested in the ecosystem, and the … Read more

How to Build a Local RAG Pipeline with Ollama and ChromaDB

RAG (Retrieval-Augmented Generation) lets you give a language model access to your own documents — PDFs, notes, wikis, code — without fine-tuning. The model answers questions using content retrieved from your document store rather than only its training data. This guide builds a complete local RAG pipeline: Ollama for LLM inference, ChromaDB for vector storage, … Read more

pgvector vs Dedicated Vector Databases: When to Use Each

pgvector extends PostgreSQL with vector similarity search, letting you store embeddings alongside your regular relational data and query them with standard SQL. For teams already running PostgreSQL, it is the lowest-friction path to adding vector search to an existing system — no new database to operate, no data synchronisation between services, and familiar tooling. But … Read more

ChromaDB vs Qdrant vs Weaviate vs Pinecone: Vector DB Comparison 2026

Choosing a vector database is one of the first architectural decisions in any RAG or semantic search project, and the options have proliferated significantly. ChromaDB, Qdrant, Weaviate, and Pinecone are the most commonly evaluated — each with a distinct positioning. This guide compares them on the dimensions that actually matter for most projects: ease of … Read more

How to Run Local LLMs on Windows: CUDA Setup, WSL2 and Best Tools

Windows is a perfectly capable platform for local LLM inference, with access to the full NVIDIA CUDA ecosystem, a choice between native Windows and WSL2 Linux environments, and dedicated GUI tools that make getting started straightforward. This guide covers the complete Windows local AI setup: CUDA drivers, Ollama on Windows, WSL2 as an alternative, and … Read more

ExLlamaV2 vs llama.cpp: Which Local Inference Engine Is Right for You?

ExLlamaV2 is an inference engine specifically optimised for NVIDIA GPUs running GPTQ-quantized models. If you have an NVIDIA GPU and want the fastest possible local LLM inference, ExLlamaV2 deserves serious consideration alongside llama.cpp. This guide compares the two engines on what actually matters for practical use: speed, model compatibility, ease of use, and ecosystem integration. … Read more

GGUF Quantization Formats Explained: Q4_K_M, Q5, Q8 and More

GGUF quantization format names — Q4_K_M, Q5_K_S, Q8_0, IQ2_XS — are cryptic at first glance but follow a consistent pattern once you understand the system. Choosing the right quantization is one of the most impactful decisions in local LLM deployment: it determines memory usage, inference speed, and output quality. This guide decodes the naming system, … Read more

llama.cpp vs Ollama: Differences, Speed and Python Bindings

llama.cpp and Ollama are not alternatives to each other — Ollama wraps llama.cpp. But developers often face a choice between using Ollama’s API and using llama.cpp directly through its Python bindings. This guide covers the real differences in speed, flexibility, and developer experience, and when the llama-cpp-python library is the better choice over the Ollama … Read more

How to Build llama.cpp from Source and Enable Metal GPU on Mac

llama.cpp is the C++ inference engine that powers Ollama, MLX-LM (partially), LM Studio, and most other local LLM tools. Running it directly — rather than through a wrapper — gives you access to the latest models and quantizations before they appear in higher-level tools, full control over compilation flags, and the ability to benchmark raw … Read more