← Tilbage til guides

RAG: Retrieval-Augmented Generation

Giv din LLM adgang til opdateret viden, virksomhedsdata og private dokumenter uden at fine-tune. RAG er fremtidens måde at bygge intelligente AI applikationer på.

Hvad er RAG?

RAG står for Retrieval-Augmented Generation - en teknik hvor du først finder (retriever) relevant information fra en vidensbase, og derefter bruger den som kontekst når LLM'en genererer sit svar.

I stedet for at stole på hvad modellen "husker" fra sin træning, giver du den præcis den information den har brug for til at besvare spørgsmålet.

Simpelt forklaret:

Det er som at have en assistent der først slår op i relevant dokumentation, og derefter bruger det de fandt til at give dig et godt svar - i stedet for at gætte baseret på hvad de husker.

Hvorfor Bruge RAG?

Opdateret Information

LLMs har en knowledge cutoff dato. Med RAG kan du give dem adgang til den nyeste information fra dine databaser eller internettet.

Private Data

Brug dine egne dokumenter, wikis, og databaser uden at skulle fine-tune eller uploade sensitiv data til træning.

Reducér Hallucinations

Når modellen har konkret information at referere til, er den mindre tilbøjelig til at opfinde facts.

Source Citations

Du kan vise brugere præcis hvilke dokumenter der blev brugt, så de kan verificere informationen.

Cost-Effective

Meget billigere end fine-tuning, og du kan opdatere din vidensbase når som helst uden at re-træne.

Dynamisk Viden

Tilføj, opdater eller fjern information i real-time uden at skulle re-deploye din model.

Sådan Fungerer RAG

1️⃣

Forbered Din Vidensbase

Opdel dine dokumenter i mindre "chunks" (typisk 200-500 tokens hver). Dette gør det lettere at finde præcis relevante dele.

Eksempel:

En 50-siders manual opdeles i ~200 små chunks, hver med et afsnit eller koncept.

2️⃣

Generér Embeddings

Konverter hver chunk til en "embedding" - en numerisk vektor der repræsenterer meningen af teksten. Lignende tekster får lignende vektorer.

Populære embedding modeller:

  • • OpenAI: text-embedding-3-small/large
  • • Cohere: embed-multilingual-v3.0
  • • Open source: sentence-transformers
3️⃣

Gem i Vector Database

Gem alle embeddings i en vector database der kan søge effektivt efter semantisk lignende vektorer.

Pinecone

Managed cloud service

Weaviate

Open source & cloud

Chroma

Simple & embedded

Qdrant

High performance

4️⃣

Retrieval: Find Relevant Info

Når brugeren stiller et spørgsmål, generer du også en embedding af spørgsmålet og søger efter de mest lignende chunks i din database.

Spørgsmål: "Hvordan nulstiller jeg mit password?"
Finder: Top 3-5 chunks om password reset fra dokumentationen

5️⃣

Augmentation: Byg Prompt

Kombiner brugerens spørgsmål med den relevante information du fandt, og send det hele til LLM'en.

Her er relevant dokumentation:
[Chunk 1: Password reset instruktioner...]
[Chunk 2: Sikkerhedspolitik for passwords...]

Brugerens spørgsmål: Hvordan nulstiller jeg mit password?

Besvar spørgsmålet baseret på dokumentationen.
6️⃣

Generation: LLM Svarer

LLM'en bruger den givne kontekst til at generere et præcist, faktuel svar baseret på din virksomheds dokumentation.

Hvordan Implementerer Du RAG

Quick Start: Simpel Python Implementation

# 1. Installer dependencies
pip install openai chromadb

# 2. Forbered data og opret embeddings
import chromadb
from openai import OpenAI

client = OpenAI()
chroma_client = chromadb.Client()
collection = chroma_client.create_collection("docs")

# 3. Tilføj dokumenter
documents = [
    "For at nulstille password, gå til indstillinger...",
    "Vores sikkerhedspolitik kræver at passwords...",
]

for i, doc in enumerate(documents):
    collection.add(
        documents=[doc],
        ids=[f"doc_{i}"]
    )

# 4. Retrieval + Generation
def rag_query(question):
    # Find relevante dokumenter
    results = collection.query(
        query_texts=[question],
        n_results=3
    )

    # Byg context
    context = "\n".join(results['documents'][0])

    # Generer svar
    response = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[
            {"role": "system", "content": "Besvar baseret på konteksten"},
            {"role": "user", "content": f"Context: {context}\n\nQ: {question}"}
        ]
    )

    return response.choices[0].message.content

# 5. Brug det
answer = rag_query("Hvordan nulstiller jeg password?")
print(answer)

Frameworks & Tools

LangChain

Mest populære framework til at bygge RAG pipelines. Mange integrationer.

Python & JavaScript

LlamaIndex

Specialiseret i data ingestion og intelligent retrieval.

Python & TypeScript

Haystack

Open source framework med fokus på production-ready RAG.

Python

Vercel AI SDK

Moderne TypeScript framework til AI apps med RAG support.

TypeScript

Best Practices

Chunk Size er Kritisk

For små chunks mangler kontekst. For store chunks har irrelevant info. Start med 300-500 tokens og eksperimenter.

Brug Metadata til Filtrering

Tilføj metadata som dato, forfatter, kategori. Så kan du filtrere søgningen til kun relevante dokumenttyper.

Hybrid Search

Kombiner semantic search (embeddings) med keyword search for bedre resultater, især med tekniske termer.

Rerank Results

Brug en reranking model til at sortere retrieved chunks mere præcist før du sender dem til LLM'en.

Citér Sources

Inkluder altid source citations så brugere kan verificere informationen. Øger tilliden markant.

Håndter "No Results"

Hvis retrieval ikke finder noget relevant, instruér LLM'en til at sige "Jeg har ikke information om det" i stedet for at gætte.

Populære RAG Use Cases

📚 Dokumentations-Chatbot

Hjælp brugere med at finde svar i produktdokumentation, wikis, eller manualer.

🎓 Intern Vidensbase

Gør virksomhedens policies, procedurer og viden søgbar og tilgængelig.

💼 Customer Support

Automatiser support ved at søge i tidligere tickets og support artikler.

📊 Research Assistant

Søg gennem research papers, rapporter og noter for at finde relevant information.

⚖️ Legal & Compliance

Find relevant love, regulativer og compliance krav i store dokumentsamlinger.

🛍️ E-commerce

Produktanbefalinger og Q&A baseret på produktkataloger og reviews.

📖 Relaterede Guides