Skip to main content

Retrieval-Augmented Generation (RAG)

Retrieval-Augmented Generation (RAG) enhances AI responses by retrieving relevant information from your documents before generating answers. This reduces hallucinations and grounds responses in your actual data.

How RAG Works

RAG follows a two-step process:
  1. Index: Convert documents to embeddings and store them in a vector database
  2. Retrieve: Find relevant documents and use them as context for generation

Basic RAG Flow

Here’s a complete RAG implementation:

Embedders

Embedders convert text into vector representations. Genkit supports multiple embedder providers:

Vector Stores

Genkit provides plugins for various vector databases:

Local Vector Store (Development)

Perfect for development and testing:

Pinecone

PostgreSQL (pgvector)

Weaviate

Indexing Documents

Add documents to your vector store:

Retrieving Documents

Find relevant documents based on a query:

Multimodal RAG

RAG also works with images and videos:

Document Metadata

Add metadata to documents for filtering and context:

Best Practices

Chunk Documents Appropriately

Break large documents into smaller, focused chunks:
  • Too small: Lacks context
  • Too large: Contains irrelevant information
  • Recommended: 200-500 words per chunk

Use Meaningful Metadata

Add metadata to help with filtering and ranking:
Go

Optimize Retrieval Parameters

Adjust k based on your use case:
  • Simple Q&A: k=1-3
  • Comprehensive answers: k=5-10
  • Research/summarization: k=10-20

Use System Prompts

Guide how the model uses retrieved context:
Go

Complete RAG Example

Here’s a production-ready RAG flow:

Next Steps

  • Explore Multimodal for image and video RAG
  • Learn about Evaluation to test RAG quality
  • Check out Flows for production deployment