Guide
Så bygger ni en AI-assistent som söker i interna dokument och vägrar gissa
En AI-assistent som söker i interna dokument ska bara svara när den kan peka på källan, och annars lämna över frågan till en människa. Det är hela designen. Guiden är skriven av Vynatix, ett mjukvarukonsultbolag i Göteborg som bygger AI-system i produktion, och visar hur ni bygger den och mäter att den avböjer rätt.
I korthet bygger ni den så här:
- Välj ut de dokument som faktiskt är godkända, och ge varje dokument en ägare.
- Dela upp dokumenten i avsnitt och indexera dem med metadata och behörigheter.
- Hämta de avsnitt som matchar frågan, med en sökning som klarar svenska.
- Låt modellen svara enbart utifrån de avsnitten, med citat, och avböja när de inte räcker.
- Mät vid varje ändring hur ofta assistenten svarar fel och hur ofta den avböjer i onödan.
Vi byggde 2025 en assistent med den designen för en kund i reglerad verksamhet. Den svarar bara utifrån godkända dokument, varje svar hänvisar till sin källa, och frågor som den inte kan belägga i källorna avböjer den och lämnar över till en människa. Kunden är anonym, så guiden beskriver inte just den lösningen utan hur en sådan assistent byggs i allmänhet.
Varför ska assistenten vägra svara, och var går gränsen?
Assistenten ska vägra svara när den saknar stöd i dokumenten, eftersom ett felaktigt svar som låter säkert kostar mer än ett ärligt nej. En språkmodell är byggd för att formulera ett svar. Saknas underlag fyller den gärna i med det som låter rimligt, och när frågan gäller en rutin eller ett avtal kan användaren inte se skillnad på ett belagt svar och en gissning. Ett avböjande är därför inget fel utan en del av designen, och frågor som avböjs ofta visar var dokumentationen har luckor.
Gränsen bör gå vid källan: assistenten svarar på det som står i de godkända dokumenten, men inte på det som kräver tolkning, en bedömning av ett enskilt fall eller kunskap utanför dokumenten. Dra den medvetet och se till att ni kan visa var den går och varför, så som vi gjorde för den reglerade kunden.
Vilka dokument ska ingå, och vem äger dem?
Bara dokument som är godkända för ändamålet ska ingå, och varje dokument behöver en namngiven ägare som ansvarar för att innehållet är aktuellt. Ett utkast eller en gammal version ger svar som ser lika trovärdiga ut som alla andra.
- Börja med en avgränsad samling, till exempel rutinerna inom ett område, i stället för hela intranätet.
- Ta bort ersatta versioner när en ny godkänns, så att två versioner aldrig konkurrerar.
- Bestäm vem som tar emot de frågor assistenten lämnar över innan den tas i bruk.
Indexering
Hur delar ni upp och indexerar dokumenten?
Dela upp dokumenten efter deras egen struktur, rubrik för rubrik och stycke för stycke, så att varje avsnitt handlar om en sak och bär med sig metadata om var det kommer ifrån. Lägg dokumentets titel och de överordnade rubrikerna först i varje avsnitt, så att ”4.2 Undantag” fortfarande går att knyta till rätt rutin.
Behörigheter. Filtrera på behörighet redan i sökningen, innan modellen ser någon text. En instruktion i prompten är inget skydd.
Ren text. Kontrollera den extraherade texten innan ni indexerar. PDF-filer ger ofta avstavade ord, upprepade sidhuvuden och tabeller som blir en rad siffror.
Svensk text. Välj en embeddingmodell som hanterar svenska väl, och testa den på era egna dokument och frågor.
Följer med varje avsnitt
- Dokumentets titel och överordnade rubriker
- Version och giltighetsdatum
- Dokumentets ägare
- Vilka som får läsa avsnittet
- Länk till avsnittet, som citatet pekar på
Hur hämtar ni rätt avsnitt för svenska frågor?
Använd hybridsökning, alltså nyckelordssökning och vektorsökning tillsammans, eftersom de missar olika saker. Vektorsökningen hittar avsnitt som säger samma sak med andra ord. Nyckelordssökningen hittar det exakta, som paragrafnummer, produktkoder och förkortningar.
I nyckelordssökningen ställer svenskan två särskilda krav. Det första är sammansatta ord: en användare skriver ”ersättning vid semester” medan dokumentet säger ”semesterersättning”, och en sökning som bara jämför hela ord missar träffen. Dela därför upp sammansatta ord i indexet. Det andra är böjningar: ”avtal”, ”avtalet” och ”avtalen” ska räknas som samma ord, vilket svensk stemming eller lemmatisering löser.
Låt en reranker, en modell som sorterar om träffarna efter relevans, välja ut ett fåtal avsnitt som språkmodellen får se. Fler avsnitt ger inte automatiskt bättre svar, men mer att ta fel på.
Hur tvingar ni modellen att citera källan och avböja annars?
Ni tvingar fram citat och avböjanden genom att kontrollera dem i koden, inte bara be om dem i prompten. Instruera modellen att svara enbart utifrån de bifogade avsnitten, ange källan för varje påstående och annars avböja med en fast formulering. Eftersom en instruktion inte alltid följs gör systemet runt modellen tre saker.
- Före modellen: hittar sökningen inget tillräckligt relevant avsnitt anropas modellen inte alls, och frågan går direkt till en människa.
- Efter modellen: varje citat måste peka på ett avsnitt som faktiskt hämtades. Ett svar utan giltigt citat visas inte.
- Vid överlämning: frågan och de avsnitt som hämtades skickas med till den som ska svara, så att personen inte börjar från noll.
Citatkontrollen visar att citatet pekar på ett verkligt avsnitt, inte att avsnittet säger det som svaret påstår. Det senare fångar utvärderingen. Visa citatet som en länk till rätt avsnitt, så kan användaren kontrollera svaret själv.
Hur mäter ni att assistenten avböjer rätt?
Ni mäter det med ett utvärderingsset som innehåller både frågor som ska besvaras och frågor som ska avböjas, och som ni kör om varje gång modellen, promptarna, sökningen eller dokumenten ändras. Ta fram setet med dokumentägarna, som vet vad det rätta svaret är, och ta med de svåra fallen: frågor som ligger nära området men inte täcks, och frågor där bara en äldre version av dokumentet hade svaret.
| Utfall | Vad som hände |
|---|---|
| Rätt svar | Frågan skulle besvaras, och svaret stämmer med källan. |
| Falskt svar | Assistenten svarade fel, eller svarade på något den borde ha avböjt. |
| Rätt avböjande | Frågan låg utanför dokumenten, och assistenten lämnade över. |
| Falskt avböjande | Dokumenten hade svaret, men assistenten avböjde. |
Följ båda typerna av fel. Falska svar kostar mest, men falska avböjanden får folk att sluta använda assistenten, och den ena sortens fel går alltid att pressa ner genom att låta den andra öka. Bestäm i förväg vilken nivå verksamheten accepterar, och gör varje fel som upptäcks i produktion till en ny fråga i setet.
Hur kör ni assistenten i er egen miljö?
Ni kör den där era data redan får finnas, på egna servrar (on-prem) eller i ett suveränt moln, med modeller, index och loggar i samma miljö. Det styr valet av språkmodell, som måste gå att köra där och påverkar svarskvaliteten, så jämför kandidaterna med samma utvärderingsset. Loggarna kan innehålla personuppgifter och behöver samma skydd som dokumenten och tydliga regler för gallring. Driftsättning i kundens egen miljö, även on-prem och i suveränt moln, ingår i det Vynatix gör inom AI-utveckling.
Vad kostar det i arbete?
Det mesta av arbetet ligger i dokumenten, utvärderingssetet och överlämningen, inte i modellen: att välja ut och städa dokumenten, att få tid med dem som kan området och att bestämma vem som tar emot avböjda frågor. Efter lansering tillkommer löpande arbete med ändrade dokument, nya utvärderingskörningar och avböjda frågor som någon går igenom, plus kostnaden för modellanrop eller egen hårdvara. Hur mycket det blir beror på hur många dokument det gäller och hur ordnade de är, så ett ärligt besked kräver att någon har sett dem.
Vanliga frågor
Vad är skillnaden mellan en RAG-assistent och en vanlig chattbot?
En RAG-assistent (retrieval-augmented generation) hämtar först relevanta avsnitt ur era egna dokument och svarar utifrån dem, medan en vanlig AI-chattbot svarar utifrån det som språkmodellen lärde sig under träningen. Därför kan varje svar från en RAG-assistent hänvisa till ett avsnitt som användaren kan läsa och kontrollera.
Går det att få en AI-assistent att aldrig hitta på svar?
Nej, ingen språkmodell har bokstavligen noll fel. Det som går att bygga är en assistent som bara svarar med stöd i godkända dokument, citerar källan och lämnar över resten till en människa, och vars fel mäts vid varje ändring. Då syns felen, och ni kan bestämma var gränsen ska gå.
Fungerar en RAG-assistent med dokument och frågor på svenska?
Ja, om sökningen är byggd för svenska. Nyckelordssökningen måste hantera sammansatta ord och böjningar, embeddingmodellen måste klara svenska väl, och testerna ska göras med frågor formulerade så som användarna faktiskt skriver.
Kan en AI-assistent för interna dokument köras i vår egen miljö?
Ja. Vynatix driftsätter AI-system i kundens egen miljö, även on-prem och i suveränt moln. Vilken språkmodell som går att använda beror på vad som kan köras där, och vi säger rakt ut vad det betyder för kvaliteten.
Om Vynatix
Vynatix AB är ett mjukvarukonsultbolag i Göteborg, grundat 2023 och en del av Ultra Group. Våra seniora utvecklare arbetar som en del av kundernas organisationer inom Android Automotive, AI och molnplattformar, med Volvo Trucks och Volvo Cars bland kunderna.
Läs mer om vår AI-utveckling, eller om assistenten för den reglerade kunden (på engelska).
Nästa steg
En assistent som inte får gissa? Börja med gränsen.
Berätta vilka dokument det gäller och vilka frågor som måste gå till en människa. Vi svarar inom en arbetsdag.
Kontakta oss