|
| 1 | +<small>**Project:** AI Bibliotek · **Status:** Prototype · **Date:** May 2026</small> |
| 2 | + |
| 3 | +# AI Bibliotek |
| 4 | + |
| 5 | +**Et fælles bibliotek hvor danske myndigheder kan dele og hjemtage AI-assistenter — så lokale use cases kan skaleres op på nationalt niveau.** |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## Baggrund |
| 10 | + |
| 11 | +I Storskalaprojektet udvikles AI-assistenter til konkrete kommunale opgaver — borgerservice, sagsbehandling, journalisering, mødereferater og meget mere. Assistenterne bygges i dag typisk lokalt i den enkelte kommune, ofte oven på OpenWebUI, og bliver sjældent delt på tværs. Det betyder, at den samme assistent reelt udvikles flere gange parallelt i forskellige kommuner. |
| 12 | + |
| 13 | +Samtidig efterspørger OS2ai-kommunerne en måde at genbruge hinandens arbejde på: hvis Aarhus har bygget en velfungerende FAQ-assistent til borgerservice, bør Odense kunne hjemtage den, tilpasse den lokalt og tage den i brug — uden at starte forfra. |
| 14 | + |
| 15 | +Et AI-bibliotek kan udstille assistenterne ét sted, så de kan fremsøges, vurderes og hjemtages. På sigt kan det samme bibliotek rumme tools, skills og hele økosystemet omkring assistenterne — og måske brede sig ud over kommunegrænserne til hele det offentlige Danmark. |
| 16 | + |
| 17 | +## Formål |
| 18 | + |
| 19 | +Prototypen undersøger spørgsmålet: **Hvordan kan et fælles bibliotek for delte AI-assistenter se ud i praksis — så en assistent udviklet i én kommune kan hjemtages og anvendes i en anden?** |
| 20 | + |
| 21 | +Biblioteket skal understøtte to bevægelser: |
| 22 | + |
| 23 | +- **Dele** — en kommune udstiller en assistent, den har udviklet lokalt, sammen med dens datagrundlag (i opskriftsform), modelkort og readme |
| 24 | +- **Hjemtage** — en anden kommune fremsøger, vurderer og henter assistenten (eksporterer dens JSON) og bygger sit eget lokale datagrundlag efter opskriften |
| 25 | + |
| 26 | +## Hvad prototypen viser |
| 27 | + |
| 28 | +Prototypen er en single-page application, der bruger `localStorage` som backend og simulerer AI-understøttet metadata med en kort spinner. Den er et **visuelt og funktionelt diskussionsgrundlag** — teksten er illustrativ (lorem-agtig, men realistisk), netop fordi det er en visualisering af et koncept og ikke en færdig løsning. |
| 29 | + |
| 30 | +### Forsiden |
| 31 | + |
| 32 | +Hero med søgefelt, kort introduktion og statistik (antal assistenter, deltagende kommuner, antal sprogmodeller). En rail med "Senest opdateret" og en sektion der **teaser fremtidige muligheder** (tools, skills, ratings, API, abonnement, testcases) som "kommer snart". |
| 33 | + |
| 34 | +### Registrering og login |
| 35 | + |
| 36 | +Simpel brugerflade hvor en medarbejder kan oprette en konto (i første omgang opret sig selv) eller logge ind. Brugere gemmes i `localStorage`. Ingen reel auth — kun til demoformål. |
| 37 | + |
| 38 | +### Katalog og søgning |
| 39 | + |
| 40 | +Fritekstsøgning kombineret med facetter: **oprindelseskommune, sprogmodel, rammeværk** (i dag OpenWebUI) og **datafølsomhed** (almindelige personoplysninger / fortrolige / personfølsomme). Resultater vises som kort med badges. |
| 41 | + |
| 42 | +### Assistent-side |
| 43 | + |
| 44 | +Detaljevisning af en enkelt assistent med adskilte visninger: |
| 45 | + |
| 46 | +- **Beskrivelse** — assistentens formål |
| 47 | +- **Modelkort** — hvilken sprogmodel, kontekstvindue, parametre og hvilke hensyn der er til assistenten |
| 48 | +- **Readme** — praktisk dokumentation |
| 49 | +- **Viden** — *i opskriftsform*: hvad den enkelte kommune selv skal levere af datagrundlag lokalt (de faktiske vidensfiler kan sjældent deles på tværs af kommuner) |
| 50 | +- **JSON** — vælg blandt **flere versioner** af assistenten og **eksportér** den valgte version som en JSON-fil (datagrundlag svarende til OpenWebUIs eksportformat) |
| 51 | + |
| 52 | +Metadata i sidepanelet: oprindelseskommune, sprogmodel, rammeværk, datafølsomhed, dato for oprettelse og opdatering samt antal versioner. En **OpenWebUI-tag** markerer rammeværket, så biblioteket med tiden kan rumme assistenter til flere typer rammeværk. |
| 53 | + |
| 54 | +### Del assistent |
| 55 | + |
| 56 | +Et flow hvor en kommune udstiller en assistent: indsæt eller upload assistentens OWUI-JSON → systemet foreslår metadata (navn, beskrivelse, tags, sprogmodel) → kommunen gennemgår, vælger datafølsomhed og udgiver. Kvittering med permalink. |
| 57 | + |
| 58 | +### Mine assistenter & favoritter |
| 59 | + |
| 60 | +Personligt overblik over egne delte assistenter samt en favoritliste, begge gemt i `localStorage`. |
| 61 | + |
| 62 | +--- |
| 63 | + |
| 64 | +## Krav (v0.1) |
| 65 | + |
| 66 | +- Webapplikation med simpel brugerstyring (opret sig selv) |
| 67 | +- En assistent består af — og skal kunne udvides uendeligt med — mindst: eksporterbar **JSON** (datagrundlag svarende til OpenWebUI), **viden/filer i opskriftsform**, **modelkort**, **readme** og en **beskrivelse** |
| 68 | +- Metadata: sprogmodel, viden, dato for oprettelse/opdatering, oprindelseskommune samt om assistenten er beregnet til personfølsomme / fortrolige / almindelige personoplysninger |
| 69 | +- Flere versioner af JSON på samme assistent |
| 70 | +- Det skal være muligt at tilføje nye entiteter (fx tools og skills) på sigt |
| 71 | +- En assistent skal kunne tagges med sit rammeværk (OpenWebUI i dag), så biblioteket senere kan rumme flere rammeværk |
| 72 | +- AI-genererede tags (evt.) |
| 73 | +- Forskellige filtrerings- og søgemuligheder |
| 74 | + |
| 75 | +--- |
| 76 | + |
| 77 | +## Afklarende spørgsmål |
| 78 | + |
| 79 | +Prototypen er et diskussionsgrundlag, ikke en implementeringsklar løsning. En række forhold skal afklares inden et reelt system bygges. |
| 80 | + |
| 81 | +### Hvad må udstilles åbent — og hvad skal bag login? |
| 82 | + |
| 83 | +I prototypen er **kataloget offentligt at browse**, mens det at **dele og eksportere** kræver login. Det er en antagelse, ikke en beslutning. Skal selve eksistensen af en assistent (navn, formål, kommune) være åben, mens JSON og modelkort er bag login? Eller skal hele biblioteket være lukket for ikke-myndigheder? |
| 84 | + |
| 85 | +### Hvad er der i JSON-filerne? |
| 86 | + |
| 87 | +Kan vi ukritisk dele indholdet af en OWUI-assistents JSON? Systemprompter kan indeholde interne formuleringer, henvisninger til konkrete sager eller forudsætninger, der ikke bør deles bredt. Der skal tages stilling til, hvad der reviewes inden deling. |
| 88 | + |
| 89 | +### Hvordan fungerer download og upload på tværs af forskellige løsninger? |
| 90 | + |
| 91 | +Biblioteket forudsætter, at en assistent eksporteret ét sted kan importeres et andet sted. Hvor ens skal afsender- og modtagermiljøet være? Hvad sker der, når en kommune kører en anden version af OpenWebUI — eller et helt andet rammeværk? |
| 92 | + |
| 93 | +### Er der en standard for assistenter? |
| 94 | + |
| 95 | +Findes der en standard (JSON, XML eller andet) for, hvordan en assistent beskrives og overdrages? OpenWebUIs eksportformat er udgangspunktet, men en bibliotek-standard på tværs af rammeværk vil kræve en aftalt struktur. |
| 96 | + |
| 97 | +### Datagrundlaget |
| 98 | + |
| 99 | +De faktiske vidensfiler kan sjældent deles på tværs af kommuner (interne data, persondata, rettigheder). Prototypen løser det ved at beskrive datagrundlaget **i opskriftsform**, så den enkelte kommune selv kan opbygge sit lokale grundlag. Er opskriftsformen tilstrækkelig, eller skal der mere standardisering til? |
| 100 | + |
| 101 | +--- |
| 102 | + |
| 103 | +## På sigt |
| 104 | + |
| 105 | +Følgende er ikke en del af v0.1, men biblioteket skal kunne rumme det. I prototypen er mulighederne teaset som "kommer snart": |
| 106 | + |
| 107 | +- Deling af **tools** og **skills** |
| 108 | +- Mulighed for at **rate** assistenter, tools og skills |
| 109 | +- **API** så man kan oprette og vedligeholde assistenter fra egen løsning |
| 110 | +- Mulighed for at **abonnere** på en assistent og få besked ved ændringer (og dermed hente ny version) |
| 111 | +- Deling af **testcases og resultater** på en assistent |
| 112 | + |
| 113 | +--- |
| 114 | + |
| 115 | +## Succeskriterie |
| 116 | + |
| 117 | +At der er delt **to AI-assistenter fra AarhusAI** i AI-biblioteket. Derudover inviteres andre OS2ai-kommuner til at være testkommuner — både til at dele lokalt udviklede assistenter og til at tage delte assistenter i anvendelse lokalt. |
| 118 | + |
| 119 | +--- |
| 120 | + |
| 121 | +## Drift og økonomi |
| 122 | + |
| 123 | +Se [Estimeringsnotat](./estimeringsnotat) for økonomisk estimat, tidshorisont og opmærksomhedspunkter om drift og driftsomkostninger. |
| 124 | + |
| 125 | +--- |
| 126 | + |
| 127 | +## Interaktiv prototype |
| 128 | + |
| 129 | +<a href="/research-projects/projects/ai-bibliotek/mocks/index.html" class="mock-button" target="_blank">Åbn prototypen ↗</a> |
0 commit comments