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
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue