RAG: Fra dokumenter til brugbar viden

RAG skal gøre virksomhedens viden anvendelig i det daglige arbejde. Begynd med et konkret spørgsmål, pålidelige kilder og en målbar forbedring. Udvid løsningen, når resultaterne viser, at den skaber værdi.

En sprogmodel kan formulere et overbevisende svar uden at kende jeres seneste produktvilkår, beslutninger eller arbejdsprocesser. Retrieval-Augmented Generation, RAG, forbinder modellen med relevante oplysninger, som hentes, når spørgsmålet bliver stillet. Det gør svarene mere efterprøvelige, men garanterer hverken korrekte kilder eller korrekte konklusioner. [1, 2]

1 Sådan fungerer RAG

RAG er en arbejdsform, der kombinerer søgning og generering. Dokumentlageret opbevarer originalerne. Et søgelag finder relevante uddrag eller data. En stor sprogmodel, en LLM, bruger materialet som kontekst til at besvare spørgsmålet. Det er normalt ikke nødvendigt at genoptræne selve sprogmodellen, når et dokument ændres. [1, 7]

  • Forbered viden: Udvælg kilder, udtræk tekst og tabeller, og opdel indholdet i meningsfulde afsnit, ofte kaldet chunks. Bevar overskrift, dokument-ID, version og adgangsoplysninger.
  • Gør indholdet søgbart: En embedding-model kan omsætte tekst til talvektorer, som gør det muligt at finde betydningsmæssigt beslægtet indhold. Ord- og fuldtekstsøgning finder samtidig præcise navne, fagudtryk og produktnumre. Kombinationen kaldes hybrid søgning. [1, 2]
  • Find og udvælg: Fortolk spørgsmålet, kontrollér brugerens adgang, og hent relevante resultater. En reranker kan derefter vurdere, hvilke resultater der bedst besvarer netop spørgsmålet. Flere uddrag er ikke altid bedre. [2]
  • Svar og vis grundlaget: Send de udvalgte oplysninger til modellen, og vis kilder med dokument, afsnit og version. Ved utilstrækkeligt eller modstridende grundlag skal løsningen forklare begrænsningen eller bede om en præcisering.

Et regneeksempel: En medarbejder spørger, om en bestemt kunde kan få en vare ombyttet. RAG finder de gældende returvilkår. Et godkendt databaseopslag henter købsdato og varetype. Modellen forklarer, hvordan vilkårene passer til oplysningerne, og henviser til begge kilder. En eventuel ombytning er en særskilt handling med egne rettigheder.

Værdien skal kunne ses i arbejdet

Mål eksempelvis tiden fra spørgsmål til kontrolleret svar, fejl og behovet for efterarbejde. Frigjort tid bliver først til forretningsværdi, når den bruges til noget. Et fælles, vedligeholdt vidensgrundlag kan desuden gøre oplæring og senere AI-initiativer lettere. Det er en potentiel indirekte værdi, som skal efterprøves.

Til få, korte dokumenter kan direkte vedhæftning være tilstrækkelig. RAG bliver især relevant, når vidensmængden, ændringerne eller adgangsbehovet gør det nødvendigt at udvælge kontekst. Vores anbefaling er at afprøve den enkleste løsning, der kan løse opgaven. [2]

2 RAG i de fire AI-miljøer

Skeln mellem en færdig assistent og en løsning bygget gennem en API. Assistenten gør det let at komme i gang. En egen løsning giver flere muligheder for at styre datakilder, adgang, søgning og evaluering, men kræver udvikling og drift. Funktioner og begrænsninger afhænger af produkt, abonnement og opsætning.

Microsoft: Fra arbejdsviden til egne løsninger

Microsoft 365 Copilot kan bruge virksomhedens arbejdsviden. Microsofts Retrieval API giver egne applikationer mulighed for at hente relevante uddrag fra SharePoint, OneDrive og Copilot connectors med brugerens adgangs- og styringsregler. Det kan mindske behovet for et separat indeks over det samme indhold. Adgangsformen afgør datakilder og licensvilkår. [3]

Copilot Studio bruges til at bygge agenter med udvalgte videnskilder, eksempelvis SharePoint, Dataverse, filer og eksterne systemer. Kontrollér hver forbindelses sikkerhedsmodel: delegeret SharePoint-adgang og en forbindelse til et Azure AI Search-indeks har ikke automatisk samme filtrering efter brugerens rettigheder. [4]

Ved mere specialiserede behov kan Azure AI Search kombineres med modeller og applikationer i Microsoft Foundry. Her kan man styre hybrid søgning, rangering og flere datakilder. Agentbaseret søgning kan opdele komplekse spørgsmål i delspørgsmål. Det bør vælges, når ekstra søgninger giver en påvist kvalitetsgevinst. [5]

ChatGPT og OpenAI: Projektkontekst eller egen RAG

I ChatGPT kan Projects samle filer, instruktioner og tilsluttede kilder på tværs af samtaler. Tilgængelige apps og plugins kan give adgang til andre systemer. Det er en praktisk begyndelse til arbejde med fælles materiale; et projekt er ikke i sig selv et dokumentkatalog med jeres godkendelses- og versionsregler. [6]

Til en egen applikation tilbyder OpenAI File Search i Responses API. Uploadede filer organiseres i vector stores og søges med både semantisk søgning og nøgleord. Man kan også hente kontekst fra sit eget søgelag og give den til modellen. Applikationen skal sikre, at kun autoriseret indhold udvælges. ChatGPT-filer og API-lagre er forskellige opsætninger. [7]

Claude: Projektviden og eksterne søgeresultater

Claude Projects kan søge i projektets dokumenter. RAG aktiveres automatisk, når projektviden nærmer sig eller overskrider kontekstvinduets grænse. Det gør større dokumentsamlinger anvendelige uden at sende alt med hver gang. [8]

I Claude API kan en egen søgefunktion returnere search_result-blokke med indhold, titel og kilde, som Claude kan citere. Anthropic beskriver også Contextual Retrieval: korte forklaringer af et afsnits sammenhæng tilføjes før indeksering. Det kan forbedre genfinding, men skal afprøves på egne dokumenter. [9, 2]

Gemini: En håndteret vej til en dokumentpilot

Gemini API File Search håndterer import, opdeling, embeddings og søgning i et File Search Store og kan returnere kildehenvisninger. Det passer til EnableAIs planlagte første pilot. Google Docs og Drive kan fortsat være originalernes hjem; en import til File Search etablerer ikke automatisk en løbende synkronisering af ændringer og rettigheder. Det kræver en særskilt proces. [10]

3 Fælles viden, flere modeller og datakilder

GPT, Claude og Gemini kan bruge samme autoriserede viden gennem et fælles søgelag. Et API eller en forbindelse via Model Context Protocol, MCP, kan gøre søgefunktionen tilgængelig for flere assistenter. Det kræver konkrete integrationer; modellerne får ikke automatisk adgang til hinandens projektfiler eller leverandørspecifikke søgelagre.

Et muligt samarbejde er, at én model præciserer spørgsmålet, søgelaget vælger dokument-, SQL- eller grafopslag, og en anden model formulerer svaret. En tredje kan kontrollere, om centrale påstande støttes af kilderne. Dette er et arkitekturforslag. Enighed mellem modeller er ikke bevis for korrekthed, og en modelkontrol erstatter hverken adgangskontrol eller faglig vurdering. [9, 14]

Lad kilder, rettigheder og versionsregler være fælles, mens modellerne kan udskiftes efter opgave, kvalitet, svartid og pris. Bevar kildeoplysninger gennem hele forløbet. Hver modeludbyder, som modtager uddrag, indgår i databehandlingen. Begynd med én svarmodel og tilføj flere, når målinger begrunder kompleksiteten.

Vælg opslag efter spørgsmålet

Datakilde: Dokumenter og filer

God til: Vilkår, vejledninger, beslutninger og forklaringer.

Det skal løsningen håndtere: Semantisk og præcis søgning; gældende version, overskrifter, tabelstruktur og kildelink.

Datakilde: Relations- og SQL-databaser

God til: Aktuelle ordrer, beholdning og beregninger på tværs af poster.

Det skal løsningen håndtere: Godkendte forespørgsler, fælles definitioner, rækkeadgang og tidspunkt for opslag. [11]

Datakilde: Grafer og GraphRAG

God til: Forbindelser mellem kunder, produkter, systemer og afhængigheder.

Det skal løsningen håndtere: Entydige identiteter, retning og gyldighed af relationer samt sporbarhed til dokumentation. [12]

Datakilde: API’er og andre systemer

God til: Aktuel status fra eksempelvis CRM, supportsystemer og eksterne registre.

Det skal løsningen håndtere: Adgang, opdateringsfrekvens, svartid og en tydelig reaktion, når kilden er utilgængelig.

SQL kan både levere strukturerede resultater til modellen og, med passende funktioner, understøtte søgning i tekst og vektorer. Ved spørgsmålet ‘Hvad er vores samlede salg?’ bør databasen beregne summen over de korrekte poster. Et udvalg af de mest lignende tekstafsnit giver ikke et fuldstændigt beregningsgrundlag. Aftal eksempelvis, hvordan valuta, returneringer og periode afgrænses. [11]

Naturligt sprog til SQL kræver mere end en prompt: brug begrænsede læserettigheder, tilladte tabeller eller views, validerede forespørgsler, parameteriserede værdier og grænser for tid og resultatmængde. En parameteriseret værdi gør ikke vilkårlig modelgenereret SQL sikker. [14, 16]

En vidensgraf kan følge relationer over flere led. Microsofts GraphRAG udleder en graf og gruppesammenfatninger fra tekst, hvilket især kan hjælpe med sammenhænge og overordnede temaer. Udledte relationer kan være forkerte og kræver kontrol. Vurder vedligeholdelse og beregningsomkostninger, før grafen bygges. Microsoft Graph, adgangsfladen til Microsoft 365, er et andet begreb end en selvstændig vidensgraf. [3, 12]

4 Sikkerhed og datakvalitet følger hele kæden

RAG gør information lettere at finde. Derfor bliver for brede rettigheder og dårligt vedligeholdte dokumenter mere synlige og mere alvorlige. Sikkerhed skal fungere fra kildesystem til søgeindeks, model, svar, cache og logning.

Adgang skal afgøres uden for modellen

Identificér brugeren og kontrollér virksomhed, rolle og dokumentadgang, før oplysninger sendes til en model. Brug mindst mulige rettigheder og klar adskillelse mellem virksomheders data. Det er utilstrækkeligt at hente fortrolige dokumenter og derefter bede modellen undlade at vise dem. Kildelinks skal også respektere adgang. [13]

Afprøv ændringer i rettigheder og sletninger. De skal slå igennem i søgning og afledte kopier inden for en aftalt frist; ved usikker adgang bør systemet afvise opslaget. Microsoft beskriver eksempelvis en SharePoint-ACL-integration i Azure AI Search som preview, hvor ændrede rettigheder kræver genindeksering af berørte dokumenter. En connector er derfor ikke i sig selv dokumentation for løbende korrekt adgang. [13]

Dokumenter kan indeholde angreb

Prompt injection opstår, når tekst i fx et dokument forsøger at få modellen til at følge instruktioner, afsløre oplysninger eller bruge værktøjer forkert. Behandl hentet materiale som data. Afgræns tilladte værktøjer, validér deres input og kontrollér svar. Hold læsning og handling adskilt, og kræv passende kontrol ved væsentlige handlinger. Ingen enkelt prompt eller ekstra kontrolmodel fjerner risikoen. [14]

Vælg databehandling ud fra den konkrete tjeneste og aftale: hvad sendes hvorhen, hvad gemmes, hvem har adgang, og må indhold bruges til træning? Afklar regioner, opbevaring, sletning og underleverandører. Kryptering alene afgør ikke disse spørgsmål. Begræns personoplysninger og hemmeligheder i både kontekst og fejlrapporter. Det er forhold, der skal afklares for løsningen, ikke en egenskab, som ordet RAG garanterer.

Kilderne skal kunne vedligeholdes og forstås

Vi anbefaler én kanonisk original pr. dokument og sprog med stabilt ID, ejer, status, version, gyldighed og dato for næste gennemgang. Registrér emner, kildelink og adgangsklasse. En godkendt tekstkopi kan fastholde præcis den version, et svar bygger på. Et søgeindeks skal kunne genskabes fra originaler og godkendte kopier.

Kontrollér tekstudtræk, især fra scannede PDF’er, tabeller og billeder. Bevar enheder, kolonneoverskrifter, undtagelser og sammenhæng: ‘må ikke’ må ikke blive til ‘må’, og en pris uden valuta er utilstrækkelig. Fjern dubletter og fastlæg, hvilken kilde der gælder, når vejledninger er uenige. Oversættelser skal kunne spores til originalens version.

Indekser kun ét valgt tekstformat af samme indholdsversion. DOCX og mobil-PDF er læseformater, ikke ekstra videnskilder. Importprocessen skal registrere kontrolsum og resultat, opdatere ændret indhold og fjerne tilbagetrukket materiale. I EnableAI holdes udkast uden for produktionssøgning, indtil indhold, rettigheder og adgang er afklaret.

5 Gør kvaliteten bedre med ML og feedback

Maskinlæring kan forbedre embedding-modeller, rangering og valg af datakilde. AI kan foreslå metadata, opdage dubletter og tilføje forklarende kontekst til afsnit. Forslagene skal kontrolleres; et automatisk resumé kan videreføre en fejl. RAG lærer ikke automatisk af brugen. Nye dokumenter, ændret søgeopsætning og egentlig modeltræning er forskellige ændringer. [2]

Etablér et testsæt med virkelige spørgsmål, forventede kilder og fagligt vurderede svar. Medtag danske og engelske formuleringer, ubesvarelige spørgsmål og adgangsforsøg. Hold et separat sæt tilbage til slutmåling. Mål både, om de rigtige kilder findes, og om svaret er relevant, dækkende og understøttet af dem. Mål også svartid, omkostning og brugerens efterarbejde. En LLM kan hjælpe med vurderingen, men menneskelige stikprøver skal kontrollere den. [15]

Brug fejl og brugerfeedback til at vælge én forbedring ad gangen: ret kilden, justér opdeling, tilføj synonymer eller afprøv en reranker. Træning af en søgerangerer kræver validerede relevansvurderinger; klik og tilfredshed er kun signaler. Sammenlign på samme testsæt, før ændringen frigives, og bevar en vej tilbage. Ved skift af embedding-model skal indeks og forespørgsler bruge et kompatibelt vektorrum, normalt gennem ny indeksering. Overvåg løbende forældet indhold og nye spørgsmål. Aftal på forhånd, hvilke fejl der blokerer en udgivelse, og hvor ofte en indholdsejer følger op.

Udvikl RAG gennem de tre stadier

Eksperiment: Afprøv én arbejdsgang og de vigtigste spørgsmål på få kvalitetssikrede dokumenter. MVP: Kobl løsningen til rigtige brugere med adgangskontrol, kilder, feedback og målbar forventet værdi. Skalering: Udvid først, når kvalitet og effekt holder; tilføj synkronisering, driftsansvar og nye datakilder efter behov. Denne fremgangsmåde er EnableAIs anbefaling. Korte feedbackforløb skal give dokumenteret læring og en begrundet næste investering.

Kundeeksempel med mål og opfølgning

En intern vidensassistent i serviceeksemplet skal hjælpe med 4.000 månedlige sager. Målet er tre minutters kortere samlet arbejdstid pr. sag, inklusive kildekontrol og rettelser. Udvælg spørgsmål med både gyldige svar, modstridende versioner og utilstrækkeligt grundlag.

Hvis assistenten svarer hurtigt, men medarbejderen må kontrollere forældede returregler, kan gevinsten forsvinde. Følg derfor korrekt kilde og version sammen med tid pr. afsluttet sag. En mulig senere kundeportal er indirekte værdi, som kræver sin egen afprøvning.

Brug den samlede VP/SE-model, VP-vejledningen og SE-vejledningen. Begge estimater revurderes før Hypotese, MVP og Skalering. VP/SE er et lokalt præferenceindeks, ikke økonomisk ROI eller WSJF. Lær anvendelsen på halvdag 1 om VP og halvdag 2 om SE og prioritering, hver fire timer inklusive pause.

Kilder og videre læsning

Produktbeskrivelserne bygger på nedenstående primærkilder. Eksempler, arkitekturvalg og udviklingstrin er EnableAIs faglige vurdering.

[1] OpenAI · Retrieval

[2] Anthropic · Contextual Retrieval

[3] Microsoft · Microsoft 365 Copilot Retrieval API

[4] Microsoft · RAG i Copilot Studio

[5] Microsoft · RAG i Azure AI Search

[6] OpenAI · Projects and chats

[7] OpenAI · File search

[8] Anthropic · RAG for projects

[9] Anthropic · Search results

[10] Google · Gemini API File search

[11] Microsoft · SQL Server og AI

[12] Microsoft · GraphRAG

[13] Microsoft · Security best practices for Azure AI Search

[14] OWASP · LLM Prompt Injection Prevention

[15] Microsoft · RAG evaluators

[16] OWASP · SQL Injection Prevention