Hoppa till innehållet
AI-grafen
F· AI engineeringrag-informationssokning· ca 90 min· volatil — kontrolleras ofta· verifierad 2026-09-20

Kunskapsgrafer och graph-RAG

Kunna kombinera graftraversering med retrieval — som plattformens egen kunskapsgraf.

Förkunskaper

Intuition

Vanlig RAG hämtar oberoende textbitar. Det fungerar dåligt för frågor som kräver att man följer samband:

  • «Vad behöver jag kunna innan jag börjar med LoRA?» → kräver traversering av förkunskapskedjan.
  • «Vilka projekt påverkas om den här källan ändras?» → kräver beroendegrafen.
  • «Sammanfatta allt vi vet om X» → kräver aggregering över många dokument.

Graph-RAG kombinerar två steg: hitta ingångsnoder med vektorsök, och traversera grafen därifrån för att samla sammanhanget.

AI-grafen är i sig ett exempel: (:KnowledgeNode)-[:REQUIRES]->(:KnowledgeNode) plus embeddings över källtexter. Lärvägen är en graftraversering; förklaringarna hämtas med vektorsök.

Kod

def graph_rag(fraga, vektorindex, graf, k_ingangar=3, djup=2, max_noder=15):
    """1) hitta ingångsnoder semantiskt  2) expandera i grafen  3) bygg kontext"""
    ingangar = [t["node_slug"] for t in vektorindex.search(fraga, k=k_ingangar)]

    besokta, kant = set(ingangar), list(ingangar)
    for _ in range(djup):
        nasta = []
        for slug in kant:
            for granne in graf.grannar(slug, relationer=("REQUIRES", "TEACHES")):
                if granne not in besokta and len(besokta) < max_noder:
                    besokta.add(granne); nasta.append(granne)
        kant = nasta

    # Sortera topologiskt så kontexten följer inlärningsordningen
    ordning = graf.topologisk(besokta)
    delar = []
    for slug in ordning:
        n = graf.nod(slug)
        delar.append(f"### {n['titel']} (nivå {n['niva']})\nFörkunskaper: {', '.join(n['requires']) or '—'}\n{n['sammanfattning']}")
    return "\n\n".join(delar), ordning

kontext, vag = graph_rag("Vad behöver jag kunna innan LoRA?", index, graf)
# vag: ['vektorer', 'matriser', 'matrisfaktorisering', 'neuronnat', ..., 'lora']

Kostnaden är byggandet. En kunskapsgraf kräver entiteter och relationer som är korrekta — vilket betyder redaktionellt arbete eller LLM-extraktion med granskning. Microsofts GraphRAG extraherar entiteter och bygger community-sammanfattningar automatiskt, vilket kostar många LLM-anrop över hela korpusen.

Välj graph-RAG när: relationerna redan finns strukturerade (som här), eller när frågorna systematiskt kräver flersteg och aggregering. Välj vanlig RAG när: frågorna besvaras av enskilda passager — vilket är de flesta.

Behärskning innebär

  • Kombinerar graftraversering med vektorsökning
  • Vet när graph-RAG slår vanlig RAG
  • Bedömer kostnaden för att bygga grafen

Logga in för att göra övningarna och bygga upp din behärskning.

Källor

Alla källor och licenser