Faktura Mojo -- en AI-app til at udtrække data fra PDF-fakturaer
Jeg har fået flere spørgsmål om, hvordan man selv kan bygge (gratis) AI-løsninger/automatiseringer, så jeg besluttede at vise det med noget konkret.
Warning
Bemærk venligst hvornår denne artikel er skrevet. AI-teknologi udvikler sig hurtigt, og det, der er sandt i dag, kan være forældet i morgen.
Faktura Mojo -- en lille lokal browser-app, der bruger AI til at udtrække information fra PDF-fakturaer som FI-nummer, dato, beløb, tekst, bankkonto mv., så informationer er nemme at kopiere til en webbank til betaling. Det burde jo være en standardfunktion i enhver netbank (upload en PDF og få felter forudfyldt), men indtil min egen bank tager skridtet over det teknologiske dørtrin, mangler jeg en lille app. Og hvis det virker for én faktura, kan det hurtigt udvides til flere -- og måske endda eksportere til CSV til videre brug i regnskab eller webbank.
Helt ærligt -- idéen er ikke revolutionerende og heller ikke super brugbar -- men måske kan den være en inspiration til, hvordan du selv nemt kan bygge en AI-app.
Appen blev bygget af os (GitHub Copilot og jeg) på nogle timer lørdag samtidig med, at Jonas fik tæsk i Criterium du Dauphiné.
Rent praktisk fungerer den ved, at:
- brugeren "uploader" (lokal til browseren) en PDF
- et JavaScript-bibliotek udtrækker al tekst
- teksten sendes til en LLM-model hos OpenRouter med en prompt, der anmoder om at finde forskellige data
- data vises i en tabel
Prøv den selv på:
https://devcronberg.github.io/fakturamojo/
Og læs om den på GitHub:
https://github.com/devcronberg/fakturamojo?tab=readme-ov-file#faktura-mojo
Husk at læse afsnittet om datasikkerhed!!!
Hvis du har lyst, kan du selv se koden på ovennævnte repo (læs readme), men mest interessant er nok brugen af gratis LLM-modeller hos OpenRouter (https://openrouter.ai/), som gør det supernemt at komme i gang med at tale med mange forskellige LLM-modeller. OpenRouter fungerer som en proxy for alle mulige forskellige udbydere af modeller -- fra OpenAI til DeepSeek og alt det imellem -- og flere af dem er gratis. Det eneste, det kræver, er en gratis konto og en API-nøgle.
Der er en del udvidelsesmuligheder, som kunne være interessante -- mest oplagt vil være at arbejde 100 % lokalt, support for billeder (OCR), batch-processering mv. (igen se readme). Men så er der lidt til de lange tour-etaper til sommer.
I øvrigt er appen skrevet med GitHub Copilot, og jeg bliver mere og mere imponeret over, hvor effektiv den er, hvis den bliver styret rigtigt. Jeg tror -- hånden på hjertet -- at jeg har skrevet 5 % af koden, og design (HTML og CSS) har jeg slet ikke rørt. Men jeg har også vidst, hvad jeg ville have den til at bygge -- det skal være denne type app, den skal bruge dette PDF-bibliotek, dette CSS bibliotek, den skal bruge OpenRouter osv.
Så jeg (og ChatGPT) har brugt lidt tid på at skrive den fil, du finder i .github-mappen, som er direkte instruktioner til Copilot. Når den først er på plads, skriver koden sig selv. Jeg har klart haft en fordel ved at være udvikler, men hvis en ikke-udvikler bruger noget tid på at finde den rigtig tech stack og stuktur kan man godt nok komme langt. Prøv det selv!