RAG (Retrieval-Augmented Generation) is de techniek die AI daadwerkelijk nuttig maakt voor je data. In plaats van antwoorden te verzinnen, doorzoekt de AI eerst je documenten en genereert dan antwoorden op basis van echte informatie. Hazina maakt dit belachelijk eenvoudig.
Wat RAG Doet
- Indexeren – Je documenten worden in stukken gesplitst en omgezet naar vector embeddings
- Ophalen – Wanneer een gebruiker een vraag stelt, worden relevante stukken gevonden via een gelijkeniszoektocht
- Genereren – De AI beantwoordt de vraag met behulp van de opgehaalde context
Snelle Setup
// Configureer opslag
builder.Services.AddHazina(config => {
config.Storage.UseSqlite("hazina-rag.db");
config.AI.SetupOpenAI(apiKey);
});
Documenten Indexeren
var ragEngine = serviceProvider.GetRequiredService<IRagEngine>();
// Indexeer een enkel document
await ragEngine.IndexDocumentAsync(new Document {
Title = "Company Policy",
Content = File.ReadAllText("policy.txt"),
Metadata = new { Department = "HR", Year = 2026 }
});
// Indexeer een directory
await ragEngine.IndexDirectoryAsync("./documents",
pattern: "*.txt",
recursive: true);
Vragen met Context
// Eenvoudige vraag
var answer = await ragEngine.AskWithContextAsync(
"What is our vacation policy?"
);
Console.WriteLine(answer.Response);
Console.WriteLine($"Sources: {string.Join(", ", answer.Sources)}");
// Met metadatafilter
var answer = await ragEngine.AskWithContextAsync(
"What changed in 2026?",
filter: new { Year = 2026 }
);
Hoe Chunking Werkt
Hazina splitst documenten automatisch in optimale stukken voor retrieval:
- Standaard chunkgrootte: 500 tokens met 50-token overlap
- Respecteert alinea-grenzen
- Behoudt codeblokken en gestructureerde inhoud
- Configureerbaar:
config.RAG.ChunkSize = 1000;
Opslag Backends
Vector embeddings kunnen worden opgeslagen in:
- SQLite – Geen setup nodig, ideaal voor ontwikkeling en kleine datasets
- PostgreSQL – Klaar voor productie met pgvector-extensie
- Supabase – Beheerde PostgreSQL met vectorondersteuning
In de volgende post bespreken we de Document Store – de persistente laag achter RAG en meer.
Veelgestelde Vragen
De Hazina RAG-engine maakt gebruik van Retrieval-Augmented Generation (RAG) om AI-antwoorden te verbeteren door eerst relevante documenten te doorzoeken voordat antwoorden worden gegenereerd. Deze techniek minimaliseert onnauwkeurigheden door te vertrouwen op feitelijke data uit geïndexeerde documenten.
Om documenten te indexeren in Hazina RAG, kun je de methode `IndexDocumentAsync` gebruiken voor enkele documenten of `IndexDirectoryAsync` voor meerdere bestanden in een directory. De engine splitst de inhoud automatisch in optimale stukken voor efficiënte retrieval.
Hazina RAG ondersteunt verschillende opslag backends, waaronder SQLite voor eenvoudige setup, PostgreSQL voor productieomgevingen, en Supabase voor beheerde PostgreSQL met vectorondersteuning. Elke optie helpt bij het effectief opslaan van vector embeddings op basis van je gebruikssituatie.
Hazina RAG splitst documenten automatisch in stukken van een standaardgrootte van 500 tokens met een overlap van 50 tokens, waarbij alinea-grenzen worden gerespecteerd. Dit helpt de structuur van de inhoud te behouden en verbetert de retrieval nauwkeurigheid.