Dify is an open-source platform for building AI applications and agents, with a visual workflow canvas, prompt management, a RAG knowledge base and LLMOps layers. You can self-host the whole thing with Docker Compose on top of Postgres, Redis and a vector database. This guide explains how to deploy it and when it beats Flowise and Langflow.
A vector embedding is a list of real numbers that represents the semantic meaning of a piece of text, an image, or any other data. Two sentences with the same meaning produce vectors that are close together; two unrelated ones produce vectors that are far apart. Semantic search, RAG, and recommendation systems are all built on this principle.
Hybrid RAG in 2026 combines dense and lexical search fused with RRF, cross-encoder reranking over the top-50 candidates, structure-aware chunking, and continuous evaluation with Ragas or TruLens. It is the pattern that survives in serious production systems three years after the initial embeddings boom.
Redis 8.2 ships vector search as a native data type. The real question is whether it replaces a dedicated engine like Qdrant, Weaviate, or pgvector on workloads with millions of vectors and tight latency budgets, or only works as a bonus on top of the cache you already run.
RAG 2.0 means retrieval built from several sources at once rather than a single vector search: dense embeddings, lexical matching, and knowledge graphs that capture relationships between entities, with a reranking layer ordering the final candidates. The 2023 pattern of one vector database plus an LLM no longer describes what production systems actually do.
For a decade, knowledge graphs were an academic idea with few real use cases, held back by the cost of building and maintaining the schema. LLMs have changed that equation: they now extract entities automatically and help anchor answers, audit reasoning, and support agents without hallucinating.
Continuous RAG evaluation catches the quiet kind of failure: the system never goes down, never returns errors, never trips a latency alert, it simply answers worse as the index, the model, and user questions drift. Track retrieval precision, effective recall, faithfulness to the retrieved context, answer relevance, and p99 latency.
Graph RAG layers an explicit graph of entities and relationships on top of retrieval, so a question can be answered by traversing connections rather than by vector similarity alone. Microsoft Research published the GraphRAG paper in April 2024 and open-sourced the code that July. Lighter variants such as LightRAG and HippoRAG followed, running on Neo4j or Memgraph.
GraphRAG has been in real enterprise use for over a year: during indexing, an LLM builds a knowledge graph that answers global questions about a corpus well, precisely where classic RAG fails because no single chunk holds the full answer. Here I compare indexing costs, the cases where it pays off, and the hybrid pattern that teams have settled on.
Measuring RAG quality rigorously takes more than skimming a handful of answers: it requires objective metrics (faithfulness, relevance, context precision, and coverage), a golden set of hundreds of curated questions, and regular human validation of the LLM judge to avoid misleading conclusions.
Hybrid search combines BM25 and vector retrieval to cover what each misses alone. Vectors fail on exact identifiers like SKUs or CVEs; BM25 fails when query and document use different vocabulary for the same idea. Reciprocal Rank Fusion (RRF) merges both rankings without depending on their score scales.
OpenAI's Assistants API offers persistent threads, sandboxed code execution, and managed document search, but OpenAI is shutting it down completely on August 26, 2026 in favor of the Responses API. We look at when it used to pay off against Chat Completions with your own infrastructure, and what to do if your project still depends on it.
nomic-embed-text-v1.5 from Nomic AI is an embedding model with weights, code and training data released under Apache 2.0: 137 million parameters, up to 8192 tokens of context, and an MTEB score of 62.4, almost matching the 62.3 of OpenAI's text-embedding-3-small, at 768 dimensions instead of 1536.
Gemini 1.5 Pro launched in February 2024 with a verified one-million-token context window. It retrieves over 95% of data up to 530,000 tokens in recall tests, reshaping RAG system design, making full-document analysis viable, and enabling new architectural patterns through context caching.
OpenAI released text-embedding-3 on 25 January 2024 in two variants: small and large. It improves MTEB quality over ada-002, adds variable dimensions you can truncate without retraining, and lowers the price for small. Migration pays off for most serious RAG setups, but measure real recall on your own corpus before reindexing everything.
pgvector matured in 2023-2024 with the HNSW index type and parallel construction that arrived in version 0.6. For projects already running PostgreSQL, a dedicated vector database is not needed in most cases: this guide explains when PostgreSQL is enough, how to configure the index, and where it starts to fall short.
Cohere Embed v3 is an embedding model that distinguishes queries from documents via the input_type parameter and scores intrinsic text quality, with multilingual support for over 100 languages at 1024 dimensions. It costs $0.10 per million tokens versus OpenAI's $0.02, and delivers better recall in multilingual RAG.
Vector databases have gone from an experimental curiosity to the central component of most LLM-based products. This comparison covers Qdrant, Pinecone, and Weaviate: architecture, strengths, limitations, and a decision tree for choosing the right option based on your operational priorities and budget.
pgvector turns PostgreSQL into a fully functional vector database without adding a separate service to the stack. It extends Postgres with the vector type, IVFFlat indexes for approximate nearest-neighbour search (ANN), and the ability to combine relational SQL filters with vector ranking in a single query. For most RAG projects and internal chatbots, those limits never become a problem.
LangChain is a Python framework that unifies building LLM applications: prompt templates, retrievers over vector databases, function-calling agents, and conversational memory. It earns its keep in fast prototypes and multi-model systems, but for a single well-defined production use case, direct code usually stays more maintainable.
Chroma is the easiest vector database to get started with embeddings and semantic search: install it with pip install chromadb, no extra infrastructure required, and it exposes a minimal API (add, query, delete). It suits prototypes and mid-sized RAG systems well; past a few million vectors, Qdrant or Milvus scale better.
Fine-tuning your own LLM pays off in three cases: you need a very specific style or voice, a rigid structured output format, or you want lower cost and latency from a small specialised model. LoRA and QLoRA have cut the GPU cost, but preparing data and running the model in production are still expensive. For everything else, RAG and prompt engineering are usually enough.
4 min2674.6
We use first- and third-party cookies to analyze site traffic. You can accept them, reject them, or configure your choice.
Learn more about cookies
Cookie preferences
NecessaryEssential for the site to work. Always on.
AnalyticsHelp us understand how the site is used (Google Analytics).