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:
Kjell Tore Guttormsen 2026-09-23 14:03:53 +02:00
commit 544934dc57
Signed by: ktg
SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q
77 changed files with 363 additions and 368 deletions

View file

@ -24,7 +24,7 @@
Multimodal prompt engineering er kunsten å skrive effektive instruksjonar som kombinerer tekst og bilete for å utnytte kapabilitetane til vision-enabled modellar som GPT-4o, GPT-4o mini og GPT-4 Turbo with Vision. Desse modellane aksepterer både tekst og bilete som input, og kan utføre oppgåver som bildeanalyse, visuelt resonnement, dokumentforståing og diagramtolking.
Microsoft sin offisielle rettleiing for image prompt engineering identifiserer seks grunnprinsipp: kontekstuell spesifisitet, oppgåveorienterte prompts, handtering av nekting (refusals), eksempelbruk, oppdeling av komplekse oppgåver, og definering av output-format. Desse prinsippa er like relevante for norsk offentleg sektor, der multimodale modellar kan nyttast til alt frå byggesaksanalyse til kvalitetssikring av veginfrastruktur.
Microsoft sin offisielle rettleiing for image prompt engineering identifiserer seks grunnprinsipp: kontekstuell spesifisitet, oppgåveorienterte prompts, handtering av nekting (refusals), eksempelbruk, oppdeling av komplekse oppgåver, og definering av output-format. Desse prinsippa er like relevante for norsk offentleg sektor, der multimodale modellar kan nyttast til alt frå byggesaksanalyse til tilstandsvurdering av offentlege bygg.
Microsoft Foundry Playground tilbyr eit interaktivt miljø for å eksperimentere med multimodale prompts, og GPT-4o sin image tokenization-mekanisme påverkar både kostnader og ytelse. Forståing av korleis bilete vert konvertert til tokens er kritisk for kostnadsoptimalisering i produksjonssystem.
@ -71,13 +71,13 @@ response = client.chat.completions.create(
messages=[
{
"role": "system",
"content": """Du er ein vegingeniør-assistent. Analyser
biletet av vegkrysset og beskriv:
"content": """Du er ein arealplanleggjar-assistent. Analyser
biletet av bustadfeltet og beskriv:
1. Kva som er i NORD (øvst i biletet)
2. Kva som er i SØR (nedst)
3. Kva som er i ØST (høgre)
4. Kva som er i VEST (venstre)
5. Eventuelle trafikkproblem du observerer
5. Eventuelle arealkonfliktar du observerer
Returner som strukturert JSON."""
},
{
@ -85,12 +85,12 @@ response = client.chat.completions.create(
"content": [
{
"type": "text",
"text": "Analyser dette vegkrysset for trafikkplanlegging:"
"text": "Analyser dette bustadfeltet for arealplanlegging:"
},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/intersection.jpg",
"url": "https://example.com/site-plan.jpg",
"detail": "high"
}
}
@ -120,7 +120,7 @@ response = client.chat.completions.create(
{
"role": "user",
"content": [
{"type": "text", "text": "Identifiser alle trafikkskilt "
{"type": "text", "text": "Identifiser alle nødutgangsskilt "
"og deira posisjon i biletet."},
{"type": "image_url", "image_url": {"url": image_url}}
]
@ -142,14 +142,14 @@ def classify_with_examples(target_image_url: str,
Klassifiser med few-shot bilete-eksempel.
examples = [
{"url": "...", "label": "HULLROT", "forklaring": "..."},
{"url": "...", "label": "FUKTSKADE", "forklaring": "..."},
{"url": "...", "label": "SPREKK", "forklaring": "..."},
]
"""
messages = [
{
"role": "system",
"content": "Du er ein vegskade-klassifiseringsekspert. "
"content": "Du er ein bygningsskade-klassifiseringsekspert. "
"Bruk dei gitte eksempla som referanse."
}
]
@ -159,7 +159,7 @@ def classify_with_examples(target_image_url: str,
messages.append({
"role": "user",
"content": [
{"type": "text", "text": "Klassifiser denne vegskaden:"},
{"type": "text", "text": "Klassifiser denne bygningsskaden:"},
{"type": "image_url",
"image_url": {"url": ex["url"], "detail": "low"}}
]
@ -174,7 +174,7 @@ def classify_with_examples(target_image_url: str,
messages.append({
"role": "user",
"content": [
{"type": "text", "text": "Klassifiser denne vegskaden:"},
{"type": "text", "text": "Klassifiser denne bygningsskaden:"},
{"type": "image_url",
"image_url": {"url": target_image_url, "detail": "high"}}
]
@ -343,16 +343,16 @@ AVGRENSINGAR:
- Ikkje gjett — be om tilleggsinformasjon om nødvendig
"""
# Eksempel: Vegskade-vurdering
# Eksempel: Bygningsskade-vurdering
system_message = VISUAL_SYSTEM_TEMPLATE.format(
rolle="Fagingeniør med 20 års erfaring frå norsk offentleg sektor",
kontekst="Årlege fagvise inspeksjonar i Noreg",
oppgåve="Vurder vegskade og anbefal vedlikehaldstiltak",
oppgåve="Vurder bygningsskade og anbefal vedlikehaldstiltak",
steg_for_steg_instruksjonar="""
1. Identifiser skadetypen (sprekk, hullrot, setning, kantskade)
1. Identifiser skadetypen (sprekk, fuktskade, avskalling, rotskade)
2. Vurder alvorlegheit på skala 1-5
3. Estimer utbreiing i m2
4. Anbefal tiltak (lappearbeid, fresing, full omlegging)
4. Anbefal tiltak (flekkreparasjon, utskifting, full rehabilitering)
5. Prioriter (akutt, innan 3 mnd, neste sesong)""",
format_spesifikasjon="""JSON med felt:
{
@ -373,7 +373,7 @@ system_message = VISUAL_SYSTEM_TEMPLATE.format(
| Rolle | System message-fokus | Typisk output |
|-------|---------------------|---------------|
| Byggesak-konsulent | TEK17-samsvar, reguleringsplan | Avviksliste med referanse |
| Vegingeniør | Skadeklassifisering, NVDB-kategori | Vedlikehaldsprioritering |
| Bygningsingeniør | Skadeklassifisering, bygningsdel | Vedlikehaldsprioritering |
| Kulturminne-rådgjevar | Tilstandsvurdering, freding | Tilstandsrapport |
| Miljørådgjevar | Artsidentifisering, habitatvurdering | Konsekvensutgreiing |
@ -442,14 +442,14 @@ print(f"Estimerte tokens: {tokens}") # 85 + (170 * 6) = 1105
### Bruksområde for multimodal prompt engineering
- **Byggesak**: Visuell vurdering av samsvar med reguleringsplanar
- **Vegforvaltning**: Automatisk skadeklassifisering frå dronefoto
- **Eigedomsforvaltning**: Automatisk skadeklassifisering frå dronefoto
- **Kulturarv**: Tilstandsvurdering av kulturminne frå bilete
- **Plan og kart**: Analyse av reguleringsplanar og kartutsnitt
- **Miljø**: Artsidentifisering og habitatvurdering
### Prompt-design for norsk kontekst
- Skriv system messages på norsk for domene-spesifikk terminologi
- Referer til norske standardar (TEK17, NVDB, NS-EN-standardar)
- Referer til norske standardar (TEK17, NS-EN-standardar)
- Inkluder norske einskapar (NOK, m2, km/t)
- Bruk norske stadnamn og referansar