Problemet med PDF-fakturor
En PDF-faktura är inte strukturerad data. Det är ett dokument som ser ut att innehålla tydlig information — belopp, datum, motpart, momsrad — men för ett datorprogram är det en bild av text, inte ett strukturerat dataflöde.
Att manuellt bokföra en faktura innebär att du läser dokumentet, identifierar de relevanta fälten, väljer rätt konton i BAS-kontoplanen och skapar en verifikation med korrekta debet- och kreditrader. Det tar tid. Det är repetitivt. Och det är precis det en lokal LLM kan hjälpa till med.
Extraktionspipelinen steg för steg
Steg 1 — PDF-inläsning och textextraktion
När du laddar upp en PDF-faktura i BOKNORD:s inkorg extraheras texten från dokumentet. För PDF-filer med inbäddad text (vilket de flesta moderna fakturor är) sker detta direkt. För skannade dokument används OCR som ett förbehandlingssteg.
Resultatet är en textrepresentation av fakturans innehåll — inte strukturerat, men läsbart för en språkmodell.
Steg 2 — Strukturerad extraktion via lokal LLM
Den extraherade texten skickas till den lokala modellen (körs via Ollama på din maskin) tillsammans med en instruktion som specificerar exakt vilka fält som ska identifieras:
- —Fakturadatum (YYYY-MM-DD)
- —Förfallodatum
- —Fakturanummer
- —Motpartens namn och organisationsnummer (om angivet)
- —Nettobelopp exklusive moms
- —Momsbelopp och momssats (25 %, 12 % eller 6 %)
- —Totalbelopp inklusive moms
- —Betalningssätt (om angivet)
Modellen returnerar ett strukturerat svar — ett JSON-objekt med de extraherade fälten.
Steg 3 — Tillförlitlighetsbedömning och flaggning
BOKNORD Private AI frågar inte modellen hur säker den är på sitt eget svar — små modellers självrapporterade säkerhet är dåligt kalibrerad. I stället räknas en tillförlitlighetsbedömning fram från två oberoende signaler:
| Signal | Vad den mäter |
|---|---|
| Deterministiska kontroller | Stämmer belopp (netto + moms = totalt)? Är motparten en känd leverantör? Balanserar konteringsförslaget? |
| Modellens tokensäkerhet | Hur säker modellen var på de avgörande valen i sitt svar — kontokod och momsbehandling |
Tröskelvärdena för vad som räknas som tillräckligt säkert är inte fasta, publicerade tal — de kalibreras internt mot faktisk rättningsfrekvens och justeras över tid. Ett fält som inte klarar bedömningen flaggas för manuell granskning i stället för att godkännas automatiskt. Du ser exakt vilket fält som är osäkert och varför.
Steg 4 — Konteringsförslag
Med de extraherade fälten bekräftade genererar systemet ett konteringsförslag baserat på:
- —Momssatsen (avgör vilket momsredovisningskonto som används: 2610, 2641 m.fl.)
- —Dokumenttypen (leverantörsfaktura → D-serie, konton 2440/4xxx/2641)
- —Motpartskategori (om känd från tidigare verifikationer)
Konteringsförslaget presenteras som en ofullständig verifikation med debet- och kreditrader ifyllda men inte bekräftade.
Steg 5 — Manuell granskning och godkännande
Du granskar konteringsförslaget. Fält och rader kan justeras fritt. När du är nöjd godkänner du — och verifikationen skrivs till bokföringen som en oföränderlig post med fullständig historik.
AI:n skriver ingenting till böckerna utan ditt godkännande. Det är ett designkrav, inte ett tillval.
Vad som kan gå fel — och hur det hanteras
Varför lokal körning spelar roll här
Extraktionspipelinen bearbetar fakturans fullständiga textinnehåll — inklusive leverantörens kontaktuppgifter, referensnummer och eventuella avtalsbeskrivningar. Det är känslig affärsinformation.
Att skicka den till en extern AI-tjänst skapar ett dataflöde som kräver GDPR-hantering: dataskyddsavtal, bedömning av ändamålsenlighet och potentiellt samtycke från de personer vars uppgifter förekommer i fakturan.
Lokal körning eliminerar det problemet. Ingen extern AI-tjänst tar del av texten — extraktionen och konfidenspoängen beräknas lokalt, på din dator, och resultatet skickas tillbaka till din arbetsyta.
Sammanfattning
PDF till verifikation i BOKNORD Private AI är en pipeline i fem steg: textextraktion, strukturerad LLM-extraktion, konfidenstösklar, konteringsförslag och manuellt godkännande. Varje steg är transparent — du ser vad modellen extraherade, hur säker den var och vilket konteringsförslag som följer.
Du bestämmer vad som skrivs till böckerna. Alltid.