Vad är RAG, och behöver vi det för att AI ska kunna söka i våra dokument?
Gustav Brochmann
RAG (retrieval-augmented generation) betyder att en AI först söker fram de textstycken i era dokument som är relevanta för frågan och sedan svarar med dem som underlag. Ni behöver det när mängden text är för stor för att klistra in i en chatt och svaren ska bygga på just era dokument. Tekniken har fyra steg och fem vanliga fallgropar, och den vanligaste är att sökningen ger en användare text hen inte borde se.
Problemet RAG löser
En AI-modell kan bara svara utifrån det den fått se. Den har inte läst era avtal, mötesanteckningar eller offerter. Små mängder text går att klistra in i frågan. Men har ni tusentals dokument räcker inte plats, och det vore dessutom slöseri att skicka allt varje gång.
RAG löser det genom att lägga ett söksteg före svaret. Modellen får inte hela arkivet, bara de få stycken som sökningen bedömer hör till frågan.
Så fungerar det i fyra steg
- Dokumenten delas upp. Texterna bryts i stycken av rimlig storlek, så att varje bit handlar om en sak.
- Varje stycke får en numerisk beskrivning av sin betydelse. Den kallas ofta embedding, och gör att stycken som betyder ungefär samma sak hamnar nära varandra, även om orden skiljer sig. Beskrivningarna lagras i ett index, till exempel i en vanlig Postgres-databas med tillägget pgvector.
- Frågan söks mot indexet. Den som frågar får tillbaka de stycken som ligger närmast i betydelse.
- Modellen svarar med styckena som underlag. Ett bra system anger också varifrån varje uppgift kommer, så att användaren kan kontrollera.
I vårt eget system, Altu Central Command, är dokument, anteckningar och mötesunderlag indexerade på det sättet. Både människor och agenten kan ställa frågor i fritext.
När behöver ni RAG?
- Ni har mer text än som ryms i en fråga, och användarna ställer frågor som ”vad sa vi till kunden om uppsägningstiden?”.
- Svaren ska bygga på era egna dokument, inte på modellens allmänna kunskap.
- Texten ändras, så att en AI som tränats en gång inte skulle hänga med.
När behöver ni det inte?
- Datan är strukturerad. Frågan ”vilka kunder har öppna offerter äldre än tre veckor?” besvaras bäst med en vanlig databasfråga, via ett verktyg. Läs mer i Vad är ett datalager?.
- Det rör sig om ett fåtal dokument. Ligger allt i en handfull sidor går det ofta att ge modellen dem direkt.
Fem fallgropar
1. Dålig källtext
Sökningen hittar det som finns. Är dokumenten föråldrade, motsägelsefulla eller bara halva anteckningar får ni svar i samma kvalitet, formulerade på ett övertygande sätt.
2. Fel storlek på styckena
För små stycken tappar sammanhanget. För stora ger sökningen utspädda träffar. Det går att pröva sig fram på era egna dokument.
3. Inga källhänvisningar
Utan referens kan användaren inte avgöra om svaret stämmer. Kräv att varje svar pekar på sin källa.
4. Behörigheter som glöms
Den farligaste. Om sökningen letar i alla dokument, men användaren bara får se vissa, kan svaret avslöja något hen inte borde nå. Sökningen ska köras med den inloggade personens rättigheter. Samma princip gäller för skrivningar i Hur låter man en AI-agent uppdatera ett CRM utan att den förstör något?: kontrollera behörigheten först.
5. Indexet blir gammalt
Dokument ändras och tas bort. Bestäm hur indexet uppdateras, och att borttagna dokument också försvinner ur det.
Hur ni går vidare
Börja med en avgränsad dokumentmängd där någon redan ställer frågorna ofta, och kontrollera svaren mot fem verkliga frågor. Behöver ni hjälp att avgöra om RAG eller en databasfråga passar? Hör av er.