refactor(examples): replace sector-specific example material with generic, fictitious examples
Reference files, test fixtures, the playground demo project and one design document now use generic, fictitious examples (buildings, energy, water, grants, municipal services). The playground demo (17 fixtures plus the embedded demo state) tells one consistent story: a municipal customer chatbot that pre-screens housing-benefit applications, classified under Annex III point 5(a). The embedded demo copies were edited in place rather than regenerated, because they already carry newer AI Act dates than the fixture files. Legal text is unchanged. Test semantics are unchanged. Four dark-theme onboarding screenshots with outdated placeholder text are removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
ced0c5f46d
commit
544934dc57
77 changed files with 363 additions and 368 deletions
4
tests/fixtures/ai-act/fixture-high-risk.md
vendored
4
tests/fixtures/ai-act/fixture-high-risk.md
vendored
|
|
@ -11,7 +11,7 @@
|
|||
| **Risikonivå** | Høyrisiko |
|
||||
| **Annex III-kategori** | Kategori 5: Tilgang til og bruk av essensielle offentlige tjenester og ytelser |
|
||||
| **GPAI-status** | Ja — basert på GPT-4o via Azure OpenAI |
|
||||
| **Klassifiseringsgrunnlag** | Systemet automatiserer vurdering av helsekrav ved søknad om saksbehandling (klasse B). Direkte påvirkning på borgeres rett til saksbehandling — en essensiell offentlig tjeneste. |
|
||||
| **Klassifiseringsgrunnlag** | Systemet automatiserer vurdering av vilkår ved søknad om tilskudd. Direkte påvirkning på borgeres rett til tilskudd — en essensiell offentlig tjeneste. |
|
||||
| **Konfidens** | Høy |
|
||||
|
||||
#### Steg 1: Forbudt-sjekk (Art. 5)
|
||||
|
|
@ -20,7 +20,7 @@ Ingen forbudte praksiser identifisert. Systemet scorer ikke individer sosialt, o
|
|||
#### Steg 2: Annex III høyrisiko-sjekk
|
||||
**Treffer kategori 5 (a):** AI-systemer som brukes av offentlige myndigheter for å vurdere berettigelse til offentlige ytelser og tjenester, inkludert tildelingsbeslutninger.
|
||||
|
||||
Tjenesten er en essensiell offentlig tjeneste i norsk kontekst. Automatisert vurdering av helsekrav påvirker direkte borgeres tilgang til denne tjenesten.
|
||||
Tjenesten er en essensiell offentlig tjeneste i norsk kontekst. Automatisert vurdering av tilskuddsvilkår påvirker direkte borgeres tilgang til denne tjenesten.
|
||||
|
||||
**Grensevurdering:** Det er ingen tvil om at dette er høyrisiko. Systemet tar beslutninger som direkte påvirker enkeltpersoners rettigheter og muligheter.
|
||||
|
||||
|
|
|
|||
10
tests/fixtures/ai-act/fixture.md
vendored
10
tests/fixtures/ai-act/fixture.md
vendored
|
|
@ -1,4 +1,4 @@
|
|||
## EU AI Act — Vurdering: FartsPrediksjonsagent
|
||||
## EU AI Act — Vurdering: Energiprognoseagent
|
||||
|
||||
**Dato:** 2026-02-22
|
||||
**Vurdert av:** AI Act Assessor
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
| **Risikonivå** | Minimal risiko |
|
||||
| **Annex III-kategori** | Ikke Annex III |
|
||||
| **GPAI-status** | Ja — basert på GPT-4o, men ikke systemisk risiko |
|
||||
| **Klassifiseringsgrunnlag** | Systemet predikerer gjennomsnittsfart på vegstrekninger basert på historiske trafikkdata. Ingen direkte påvirkning på individer, ingen biometrisk identifikasjon, ikke kritisk infrastrukturstyring. |
|
||||
| **Klassifiseringsgrunnlag** | Systemet predikerer energiforbruk i kommunale formålsbygg basert på historiske måledata. Ingen direkte påvirkning på individer, ingen biometrisk identifikasjon, ikke kritisk infrastrukturstyring. |
|
||||
| **Konfidens** | Høy |
|
||||
|
||||
#### Steg 1: Forbudt-sjekk (Art. 5)
|
||||
|
|
@ -29,10 +29,10 @@ Systemet treffer ingen av de 8 Annex III-kategoriene:
|
|||
- Ikke rettsforvaltning
|
||||
|
||||
#### Steg 3: GPAI-sjekk
|
||||
Systemet bruker Azure OpenAI GPT-4o som grunnmodell. GPT-4o er en GPAI-modell, men FartsPrediksjonsagent er en downstream-applikasjon — provider-forpliktelser for GPAI hviler på Microsoft som modell-provider.
|
||||
Systemet bruker Azure OpenAI GPT-4o som grunnmodell. GPT-4o er en GPAI-modell, men Energiprognoseagent er en downstream-applikasjon — provider-forpliktelser for GPAI hviler på Microsoft som modell-provider.
|
||||
|
||||
#### Steg 4: Begrenset/Minimal
|
||||
Systemet har ingen direkte brukerinteraksjon med borgere. Resultater vises kun til trafikkplanleggere internt. Klassifiseres som **minimal risiko**.
|
||||
Systemet har ingen direkte brukerinteraksjon med borgere. Resultater vises kun til energirådgivere internt. Klassifiseres som **minimal risiko**.
|
||||
|
||||
### 2. Rolle
|
||||
|
||||
|
|
@ -54,7 +54,7 @@ Systemet har ingen direkte brukerinteraksjon med borgere. Resultater vises kun t
|
|||
|
||||
| # | Tiltak | Prioritet | Frist | Ansvarlig |
|
||||
|---|--------|-----------|-------|-----------|
|
||||
| T1 | Formalisér AI-kompetanseplan for trafikkplanleggere | Lav | 2026-12-31 | Seksjonsleder |
|
||||
| T1 | Formalisér AI-kompetanseplan for energirådgivere | Lav | 2026-12-31 | Seksjonsleder |
|
||||
| T2 | Vurdér frivillig Code of Conduct-tilslutning | Lav | 2027-06-30 | AI-rådgiver |
|
||||
|
||||
### 5. Neste steg
|
||||
|
|
|
|||
2
tests/fixtures/cost-estimation/fixture.md
vendored
2
tests/fixtures/cost-estimation/fixture.md
vendored
|
|
@ -18,7 +18,7 @@
|
|||
| Drift/vedlikehold | 0 | 0 | 50K | 150K | 350K |
|
||||
| Overvåking | 0 | 0 | 20K | 80K | 100K |
|
||||
| Embedding-refresh | 0 | 0 | 20K | 60K | 60K |
|
||||
| Regional støtte/opplæring | 0 | 0 | 0 | 150K | 150K |
|
||||
| Lokal brukerstøtte/opplæring | 0 | 0 | 0 | 150K | 150K |
|
||||
| Risk buffer (drift) | 0 | 0 | 0 | 150K | 230K |
|
||||
| **3-års TCO** | **0** | **0** | **2 000K** | **6 335K** | **9 100K** |
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
3. **Incident Response-plan mangler** — Ingen prosedyre for AI-spesifikke hendelser (prompt injection breach, PII-lekkasje)
|
||||
|
||||
**P1 (Høy prioritet):**
|
||||
4. **Red team-testing av security trimming** — Må verifisere at regionbasert tilgangskontroll fungerer korrekt
|
||||
4. **Red team-testing av security trimming** — Må verifisere at rollebasert tilgangskontroll fungerer korrekt
|
||||
5. **AI-spesifikk alerting mangler** — Ingen varsling for anomalier i prompt-mønstre eller uvanlig token-forbruk
|
||||
6. **PIM ikke konfigurert** — Admin-tilgang til AI-ressurser bør styres via Privileged Identity Management
|
||||
|
||||
|
|
@ -52,12 +52,12 @@
|
|||
|
||||
| Datatype | Klassifisering | Behandlingsgrunnlag | Lagringssted |
|
||||
|----------|----------------|---------------------|--------------|
|
||||
| Håndbøker (N-serien) | Intern | Berettiget interesse | Azure AI Search (Norway East) |
|
||||
| Retningslinjer | Intern | Berettiget interesse | Azure AI Search (Norway East) |
|
||||
| Kontrakter | Fortrolig | Berettiget interesse | Azure AI Search (Norway East), security trimmed |
|
||||
| Inspeksjonsrapporter | Intern | Berettiget interesse | Azure AI Search (Norway East) |
|
||||
| Saksdokumenter | Intern | Berettiget interesse | Azure AI Search (Norway East) |
|
||||
| Avviksrapporter (PII) | Fortrolig | Samtykke/Lovhjemmel | Azure AI Search (Norway East), PII-maskert |
|
||||
| Chatlogger | Intern | Berettiget interesse | Application Insights (Sweden Central), 90d retention |
|
||||
| NVDB-data | Åpen | Åpne data | Ikke lagret — live API-oppslag |
|
||||
| Åpne statistikkdata | Åpen | Åpne data | Ikke lagret — live API-oppslag |
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
20
tests/fixtures/summary/fixture.md
vendored
20
tests/fixtures/summary/fixture.md
vendored
|
|
@ -2,35 +2,35 @@
|
|||
|
||||
### 1.1 Teknisk sammendrag
|
||||
|
||||
Denne utredningen vurderer innføring av en AI-assistert kunnskapssøk-løsning for drift- og vedlikeholdsavdelinger i en norsk statlig veietat med ~1500 ansatte fordelt på 5 regioner. Løsningen skal erstatte dagens fragmenterte, manuelle dokumentsøk på tvers av 65 000+ dokumenter i 5 separate systemer (SharePoint, Doculive, Landbruks-IT, lokale filservere, NVDB).
|
||||
Denne utredningen vurderer innføring av en AI-assistert kunnskapssøk-løsning for saksbehandlere i plan-, bygg- og eiendomsforvaltningen i en stor norsk kommune, med ~1500 ansatte fordelt på 3 tjenesteområder. Løsningen skal erstatte dagens fragmenterte, manuelle dokumentsøk på tvers av 65 000+ dokumenter i 5 separate systemer (SharePoint, ESDH-systemet, intranettet, lokale filservere, regelverksbasen).
|
||||
|
||||
**Anbefalt plattform:** Alternativ 2B — Hybrid (Copilot Studio + Azure AI Foundry RAG) (S2.5, S8.1)
|
||||
|
||||
Copilot Studio fungerer som Teams-native UI-lag («Veihjelper AI»), mens Azure AI Foundry gir full kontroll over RAG-pipeline med custom chunking, Presidio PII-filtrering og SharePoint ACL-basert security trimming. Multi-modell-strategi med GPT-4o for komplekse fagspørsmål og GPT-4o-mini for enkel gjenfinning (80/20 cost routing) sikrer kostnadseffektivitet (S4.2). Embedding med text-embedding-3-large (3072 dim) i Azure AI Search S1 med hybrid search og semantic reranking gir best ytelse for norsk fagterminologi (S4.3).
|
||||
Copilot Studio fungerer som Teams-native UI-lag («Fagassistent AI»), mens Azure AI Foundry gir full kontroll over RAG-pipeline med custom chunking, Presidio PII-filtrering og SharePoint ACL-basert security trimming. Multi-modell-strategi med GPT-4o for komplekse fagspørsmål og GPT-4o-mini for enkel gjenfinning (80/20 cost routing) sikrer kostnadseffektivitet (S4.2). Embedding med text-embedding-3-large (3072 dim) i Azure AI Search S1 med hybrid search og semantic reranking gir best ytelse for norsk fagterminologi (S4.3).
|
||||
|
||||
**Arkitektur (S8.2):** Brukerinteraksjon via Teams (mobil/desktop) → Entra ID-autentisering → Copilot Studio Agent → Azure AI Foundry RAG-pipeline (Azure OpenAI GPT-4o/mini i Sweden Central, Azure AI Search S1 i Norway East) + NVDB REST API via function calling. Presidio PII-filter (pre-indexing) og Azure AI Content Safety (runtime) sikrer personvern og innholdssikkerhet.
|
||||
**Arkitektur (S8.2):** Brukerinteraksjon via Teams (mobil/desktop) → Entra ID-autentisering → Copilot Studio Agent → Azure AI Foundry RAG-pipeline (Azure OpenAI GPT-4o/mini i Sweden Central, Azure AI Search S1 i Norway East) + ESDH-systemets REST API via function calling. Presidio PII-filter (pre-indexing) og Azure AI Content Safety (runtime) sikrer personvern og innholdssikkerhet.
|
||||
|
||||
**Sikkerhetsstatus (S5):** Totalscore 2.80/5.00 — BETINGET AKSEPTABEL. Tre P0-blokkere er identifisert: (1) DPIA ikke gjennomført (GDPR art. 35), (2) Schrems II TIA mangler for Azure OpenAI i Sweden Central, (3) Incident Response-plan mangler. Alle tre er innarbeidet som obligatoriske aktiviteter i Fase 0 av implementeringsplanen (S9.4). AI Act-klassifisering: Begrenset risiko — transparenskrav oppfylt med AI-merking og kildehenvisninger (S4.1).
|
||||
|
||||
**Kostnad (S6):** Etableringskostnad 2.035M NOK (Fase 1, innenfor 2M-budsjettramme). Årlig driftskostnad 1.35M NOK inkludert Copilot Studio capacity pack (230K), Azure OpenAI tokens (210K), Azure AI Search (200K), infrastruktur (120K), drift/vedlikehold (150K), overvåking (80K), embedding-refresh (60K), regional støtte (150K) og risk buffer (150K). 3-års TCO: 6.335M NOK. Fase 2 (Doculive + Landbruks-IT) budsjetteres separat til 850K.
|
||||
**Kostnad (S6):** Etableringskostnad 2.035M NOK (Fase 1, innenfor 2M-budsjettramme). Årlig driftskostnad 1.35M NOK inkludert Copilot Studio capacity pack (230K), Azure OpenAI tokens (210K), Azure AI Search (200K), infrastruktur (120K), drift/vedlikehold (150K), overvåking (80K), embedding-refresh (60K), lokal brukerstøtte (150K) og risk buffer (150K). 3-års TCO: 6.335M NOK. Fase 2 (ESDH-systemet + intranettet) budsjetteres separat til 850K.
|
||||
|
||||
**Implementeringsplan (S9):** Fasevis utrulling over 48 uker. Fase 0 (uke 1-4): Forberedelse, DPIA, Schrems II TIA, Azure OpenAI-søknad. Fase 1 (uke 5-32): MVP med SharePoint (39K dok) + NVDB, inkludert infrastruktur, RAG-pipeline, Copilot Studio agent, sikkerhetstesting, pilot med 50 brukere, opplæring (5 regioner) og region-for-region utrulling. Fase 2 (uke 33-48): Full dekning med Doculive (13K) og Landbruks-IT (10K). 8 milepæler definert (M0-M8), inkludert gevinstevaluering i uke 56 (S9.2).
|
||||
**Implementeringsplan (S9):** Fasevis utrulling over 48 uker. Fase 0 (uke 1-4): Forberedelse, DPIA, Schrems II TIA, Azure OpenAI-søknad. Fase 1 (uke 5-32): MVP med SharePoint (39K dok) + regelverksbasen, inkludert infrastruktur, RAG-pipeline, Copilot Studio agent, sikkerhetstesting, pilot med 50 brukere, opplæring (3 tjenesteområder) og utrulling område for område. Fase 2 (uke 33-48): Full dekning med ESDH-systemet (13K) og intranettet (10K). 8 milepæler definert (M0-M8), inkludert gevinstevaluering i uke 56 (S9.2).
|
||||
|
||||
**Arkitekturprinsipper (S3):** 3 av 7 Digdir-prinsipper fullt oppfylt, 4 delvis oppfylt. Hovedavvik: Schrems II-risiko (P4 Tillit), begrenset ekstern datadeling (P2/P7). Trade-off vedtatt: Sweden Central aksepteres med formell risikoaksept da Norway East ikke tilbyr Azure OpenAI.
|
||||
|
||||
**Digital samhandling (S7):** Juridisk samhandling er oppfylt (berettiget interesse, DPA med Microsoft, ingen vedtaksfatning). Organisatorisk samhandling er delvis under arbeid (RACI-matrise, AI-styringsgruppe). Semantisk samhandling er oppfylt (OData, Dublin Core, standardisert embedding). Teknisk samhandling er oppfylt (REST API, OAuth 2.0, SLA 99.8%). Styring planlagt med kvartalsvis AI-styringsgruppe og definerte KPI-er.
|
||||
|
||||
5 ADR-er er utarbeidet (S8.3): Copilot Studio som UI (ADR-001), custom RAG i Azure AI Foundry (ADR-002), Sweden Central med risikoaksept (ADR-003), batch-import fra Landbruks-IT (ADR-004), og Security Trimming med SharePoint ACL-mapping (ADR-005).
|
||||
5 ADR-er er utarbeidet (S8.3): Copilot Studio som UI (ADR-001), custom RAG i Azure AI Foundry (ADR-002), Sweden Central med risikoaksept (ADR-003), batch-import fra intranettet (ADR-004), og Security Trimming med SharePoint ACL-mapping (ADR-005).
|
||||
|
||||
---
|
||||
|
||||
### 1.2 Beslutningsnotat (Executive Summary)
|
||||
|
||||
**Anbefaling:** Iverksett Alternativ 2B — Hybrid Copilot Studio + Azure AI Foundry RAG for AI-assistert dokumentsøk i drift- og vedlikeholdsavdelingene.
|
||||
**Anbefaling:** Iverksett Alternativ 2B — Hybrid Copilot Studio + Azure AI Foundry RAG for AI-assistert dokumentsøk i plan-, bygg- og eiendomsforvaltningen.
|
||||
|
||||
**Bakgrunn:** Driftspersonell bruker 3-5 timer per uke på manuelt dokumentsøk i 5 ulike systemer. Produktivitetstapet er estimert til ~77M NOK/år for hele organisasjonen. Kunnskapen er fragmentert, eksisterende søk forstår ikke norsk vei-fagterminologi, og det finnes ingen felles søkeflate.
|
||||
**Bakgrunn:** Saksbehandlere bruker 3-5 timer per uke på manuelt dokumentsøk i 5 ulike systemer. Produktivitetstapet er estimert til ~77M NOK/år for hele organisasjonen. Kunnskapen er fragmentert, eksisterende søk forstår ikke norsk fagterminologi, og det finnes ingen felles søkeflate.
|
||||
|
||||
**Hva vi anbefaler:** En Teams-basert AI-assistent («Veihjelper AI») som gir umiddelbar tilgang til hele dokumentkorpuset (65 000+ dokumenter) med norskspråklig semantisk søk, kildehenvisninger og sanntids veidata fra NVDB. Løsningen bruker Microsofts AI-plattform med full kontroll over sikkerhet og personvern.
|
||||
**Hva vi anbefaler:** En Teams-basert AI-assistent («Fagassistent AI») som gir umiddelbar tilgang til hele dokumentkorpuset (65 000+ dokumenter) med norskspråklig semantisk søk, kildehenvisninger og oppdaterte saksdata fra ESDH-systemet. Løsningen bruker Microsofts AI-plattform med full kontroll over sikkerhet og personvern.
|
||||
|
||||
**Hvorfor dette alternativet:** Alt 2B gir den beste balansen mellom brukeropplevelse (Teams-native), sikkerhet (PII-filtrering, security trimming) og kostnad (innenfor 2M budsjett for Fase 1). Alt 1 (SharePoint AI Search) dekker kun 60% av dokumentene. Alt 2 (innebygd RAG) mangler kontroll over PII og security trimming. Alt 3 (full custom) er overingeniørt og sprenger budsjettet.
|
||||
|
||||
|
|
@ -72,7 +72,7 @@ Copilot Studio fungerer som Teams-native UI-lag («Veihjelper AI»), mens Azure
|
|||
| **Brutto produktivitetsgevinst** | ~77M NOK/år |
|
||||
| **Gevinstraliseringsgrad** | 30-50% (konservativt) |
|
||||
| **Dokumentkorpus** | 65 000+ dokumenter |
|
||||
| **Datakilder** | 5 (SharePoint, Doculive, Landbruks-IT, filservere, NVDB) |
|
||||
| **Datakilder** | 5 (SharePoint, ESDH-systemet, intranettet, filservere, regelverksbasen) |
|
||||
| **Primærbrukere** | ~750 (potensielt 1500) |
|
||||
| **Time-to-value (MVP)** | 7-8 måneder (Fase 1) |
|
||||
| **Full dekning** | 12 måneder (Fase 1 + 2) |
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ const PROFILE = [
|
|||
'Statlig',
|
||||
'',
|
||||
'## Virksomhet',
|
||||
'Statens vegvesen — nasjonal veiforvaltning',
|
||||
'Eksempeldirektoratet — nasjonal forvaltning',
|
||||
'',
|
||||
'## Størrelse',
|
||||
'2000-10000',
|
||||
|
|
@ -113,7 +113,7 @@ test('buildOrgSummary — strips frontmatter + H1, extracts H2 section => value
|
|||
assert.doesNotMatch(s, /Virksomhetsprofil/, 'H1 not included');
|
||||
assert.match(s, /Sektortype: Offentlig sektor/);
|
||||
assert.match(s, /Sektor: Statlig/);
|
||||
assert.match(s, /Virksomhet: Statens vegvesen/);
|
||||
assert.match(s, /Virksomhet: Eksempeldirektoratet/);
|
||||
assert.match(s, /Størrelse: 2000-10000/);
|
||||
assert.match(s, /Regulatoriske krav: .*Arkivloven/);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ function buildDemoState(opts) {
|
|||
projects: [{
|
||||
id: "p1",
|
||||
name: "Acme: Kunde-chatbot",
|
||||
description: "AI-system for objekt-deteksjon i sensordata.",
|
||||
description: "Innbyggerchatbot som forhåndsvurderer søknader om bostøtte.",
|
||||
createdAt: "2026-04-01T08:00:00.000Z",
|
||||
artifacts: {
|
||||
classify: {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue