Ti API'er og et forkert spørgsmål

Det, jeg ledte efter i AI, lå i offentlige API'er, der har været åbne i årevis. Jeg fandt det først, da jeg byttede ét ord ud i spørgsmålet.

Rasmus Gutfelt3 min.

I månedsvis stillede jeg det samme spørgsmål: hvordan automatiserer vi tjeklisterne?

En tjekliste er der, hvor arbejdet ligger. 109 punkter på bogføring og regnskab, og for hvert punkt skal der findes et grundlag. Log ind ét sted, slå op et andet, ned i et regneark, videre til næste punkt. Klient for klient. (Det lyder kedeligt, når man skriver det ned. Det er også derfor, jeg gerne ville af med det.)

Hver gang jeg stillede spørgsmålet til Claude, fik jeg pæne generelle svar tilbage. Forslag, der lød rigtige, og som ikke flyttede noget. Sådan gik der måneder.

Ét ord

En søndag i august byttede jeg ét ord ud. I stedet for at spørge, hvad vi kunne gøre med AI, spurgte jeg, hvad vi kunne gøre med API'er.

Og så væltede det ud.

109 punkter gennemgået ét ad gangen. 68 konkrete forslag. 10 eksterne API'er testet med rigtige kald. Da weekenden begyndte, var 13 af de 109 punkter fuldt løst inde i systemet. Da forslagene var bygget, var tallet 86.

Dagene efter gik med at bygge det. Torsdag aften kørte det på rigtige klienter, og forslagene holdt.

Hvorfor ordet gjorde en forskel

Det ligner et prompt-trick, og jeg tror, der er noget større på spil.

Da jeg spurgte om AI, pegede jeg spørgsmålet mod det, en model er god til: at læse noget og skrive noget. Så fik jeg forslag om at lade en model læse dokumenter og udlede, hvad der stod i dem. Det er også en løsning. Den er bare dyr, langsom og usikker på præcis den slags oplysninger, hvor man har brug for at være sikker.

Da jeg spurgte om API'er, pegede jeg spørgsmålet et andet sted hen: hvilke af de her oplysninger findes allerede som struktureret data, som jeg kan hente?

Svaret var ubehageligt mange af dem.

Det har ligget åbent hele tiden

Erhvervsstyrelsen udleverer indberettede årsrapporter gratis, uden nøgle og uden aftale. EU har et opslag, der validerer momsnumre. Datafordeleren har BBR, altså bygningerne på en ejendom.

Det er hverken hemmeligt eller nyt. Det har ligget åbent i årevis, mens jeg gik og ventede på, at en model blev god nok til at gætte sig til det samme.

Adgangen var der hele tiden. Det, der manglede, var, at nogen hentede tallene frem præcis dér, hvor et menneske sad og skulle bruge dem.

Ti API'er, testet med rigtige kald

Det vigtigste ord i "10 eksterne API'er testet med rigtige kald" er "testet".

En model kan fortælle dig, at et endpoint findes, hvilke felter det returnerer, og hvordan man autentificerer sig, uden at nogen af delene passer. Den lyver ikke. Den har bare set tusind sider om lignende API'er, og det er rigeligt til at skrive en overbevisende beskrivelse af et, der ikke findes.

Så hvert eneste af de ti blev kaldt for alvor, med en rigtig URL og et rigtigt svar tilbage, før det talte som et forslag. Det er en kedelig time at bruge. Den er også forskellen på en plan og en ønskeseddel.

Hvad jeg gør nu

Jeg spørger om API'erne først. Hver gang.

Modellen er stadig med. Den er bare rykket hen til det, der er tilbage bagefter: at læse et dokument, en klient har uploadet, og finde ud af, hvilket punkt det hører til. Det er også et rigtigt problem. Det er bare mindre, og det er meget nemmere at løse, når resten allerede er hentet hjem.

Mange sidder og venter på, at modellerne bliver gode nok. Det er en rimelig ting at vente på, og det sker sikkert også. Men en stor del af det, man mangler i mellemtiden, ligger i et API, som har været åbent, længe før nogen af os begyndte at bygge med modeller.

Og for at være helt tydelig, fordi det er den slags, der bliver misforstået: intet punkt lukker sig selv. Systemet henter grundlaget frem. Beslutningen ligger stadig hos den, der skriver under.