ktg-plugin-marketplace/plugins/ms-ai-architect/skills/ms-ai-engineering/references/multi-modal/gpt4o-vision-architecture.md
Kjell Tore Guttormsen 6a7632146e feat(ms-ai-architect): add plugin to open marketplace (v1.5.0 baseline)
Initial addition of ms-ai-architect plugin to the open-source marketplace.
Private content excluded: orchestrator/ (Linear tooling), docs/utredning/
(client investigation), generated test reports and PDF export script.
skill-gen tooling moved from orchestrator/ to scripts/skill-gen/.

Security scan: WARNING (risk 20/100) — no secrets, no injection found.
False positive fixed: added gitleaks:allow to Python variable reference
in output-validation-grounding-verification.md line 109.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 17:17:17 +02:00

13 KiB

GPT-4o Vision Architecture and Capabilities

Last updated: 2026-02 Status: GA Category: Multi-Modal AI


Introduksjon

GPT-4o (Omni) representerer en fundamental endring i korleis multimodale AI-modellar fungerer. I motsetnad til tidlegare tilnærmingar der tekst- og bildeforståing var separate modellar kopla saman, integrerer GPT-4o tekst og bilete i ein enkelt modell. Dette gir lågare latency, betre kontekstuell forståing og meir nøyaktige svar som kombinerer visuell og tekstuell informasjon.

For norsk offentleg sektor opnar GPT-4o vision nye moglegheiter innanfor dokumentanalyse, tilgjengelegheitsvurdering, kartanalyse, byggesaksbehandling og kvalitetssikring av offentlege tenester. Modellen er tilgjengeleg via Azure OpenAI Service, noko som sikrar at data blir behandla innanfor Microsofts enterprise-grade tryggleiksrammeverk med full GDPR-etterleving.

Azure AI Foundry gir ein samla plattform for å deploye, administrere og overvake GPT-4o vision-deployments med innebygd innhaldsfiltrering, kostnadshandtering og tilgangskontroll via Microsoft Entra ID.


GPT-4o Vision Capabilities

Modelloversikt

Eigenskap GPT-4o GPT-4o mini GPT-4 Turbo with Vision
Max kontekstvindu 128 000 tokens 128 000 tokens 128 000 tokens
Max output tokens 16 384 16 384 4 096
Bildeinndata Ja Ja Ja
JSON Mode Ja Ja Ja
Parallel function calling Ja Ja Ja
Structured outputs Ja (2024-08-06+) Ja Nei
Fleirspråkleg ytelse Overlegen God Standard
Vision fine-tuning Ja (2024-08-06) Nei Nei

Støtta bildeformat

GPT-4o aksepterer bilete i følgjande format:

  • JPEG — Mest kompakt, eigna for foto
  • PNG — Støttar transparens, eigna for diagram og skjermbilete
  • WEBP — Moderne format med god komprimering
  • GIF — Statiske bilete (ikkje animerte)

Bilete kan leverast på to måtar:

  1. URL-referanse — Offentleg tilgjengeleg URL til bildet
  2. Base64-koda data — Inline bildedata i API-kallet
{
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Beskriv innhaldet i dette dokumentet."
        },
        {
          "type": "image_url",
          "image_url": {
            "url": "data:image/jpeg;base64,<base64_encoded_data>",
            "detail": "high"
          }
        }
      ]
    }
  ]
}

Ansiktsblurring og personvern

Azure OpenAI utfører automatisk ansiktsblurring på alle bildeinndata til GPT-4o. Dette beskyttar personvernet til individ i bileta og er spesielt relevant for norsk offentleg sektor som må etterleve personopplysningslova. Blurringa skal ikkje påverke kvaliteten på analysen i dei fleste tilfelle, men modellen kan i nokre tilfelle referere til blurringa.

Viktig: Modellen utfører ikkje ansiktsgjenkjenning eller individuell identifisering. Kontekstuelle signal (som klede, logo, stadier) kan framleis gjere at modellen identifiserer kjende personar.


Token-berekningsmodell for bilete

Lav oppløysingsmodus (detail: low)

Lav oppløysningsmodus prosesserer biletet som ein 512x512 versjon uavhengig av originalstorleik.

Modell Token per bilete Kommentar
GPT-4o 85 tokens Flat rate, uavhengig av storleik
GPT-4o mini 2 833 tokens Flat rate, uavhengig av storleik

Brukstilfelle: Rask klassifisering, generell bildeforståing der detaljar ikkje er kritiske.

Høg oppløysingsmodus (detail: high)

Høg oppløysningsmodus gir detaljert analyse gjennom ein fleirstegs prosess:

Steg 1: Resizing

  1. Biletet blir skalert til å passe innanfor eit 2048 x 2048 pikslar kvadrat
  2. Om kortaste side er større enn 768 pikslar, skalerast bildet slik at kortaste side er 768 pikslar
  3. Aspektforholdet bevares

Steg 2: Tile-beregning

  • Det skalerte bildet delast i 512 x 512 piksel-fliser
  • Delvis utfylte fliser rundast opp til heile fliser

Steg 3: Token-beregning

Modell Token per tile Base tokens Formel
GPT-4o 170 85 (tiles x 170) + 85
GPT-4o mini 5 667 2 833 (tiles x 5667) + 2833

Eksempel: Token-beregning for ulike biletestorleikar

Originalstorleik Resized til Tiles GPT-4o tokens GPT-4o mini tokens
512 x 512 512 x 512 1 255 8 500
1024 x 1024 768 x 768 4 765 25 501
2048 x 4096 768 x 1536 6 1 105 36 835
4096 x 8192 (low) 512 x 512 - 85 2 833

Detail-parameter

{
  "type": "image_url",
  "image_url": {
    "url": "<image_url>",
    "detail": "high"  // "low", "high", eller "auto"
  }
}
Verdi Oppførsel
auto Standard. Modellen vel mellom low og high basert på biletestorleik
low Brukar alltid 512x512, raskare respons, færre tokens
high Full analyse med tile-basert prosessering

Native vs. External Vision Integration

Native integrasjon (Chat Completions API)

Native bildeanalyse brukar GPT-4o direkte via Chat Completions API. Bileta sendast som ein del av meldingsstrukturen.

Fordelar:

  • Lågast latency — eitt API-kall
  • Full kontekstuell forståing mellom tekst og bilete
  • Structured outputs for standardisert respons
  • Enkel implementering

Avgrensingar:

  • Maks 64 bilete per request (ved vision fine-tuning)
  • Kvar bilete maks 10 MB
  • Ingen spesialisert dokumentforståing (layout, tabellar)
from openai import AzureOpenAI

client = AzureOpenAI(
    api_version="2024-08-06",
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    azure_ad_token_provider=token_provider
)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {
            "role": "system",
            "content": "Du er ein dokumentanalytiker for norsk offentleg sektor."
        },
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Analyser dette skjemaet og ekstraher nøkkelfelter."},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/png;base64,{encoded_image}",
                        "detail": "high"
                    }
                }
            ]
        }
    ],
    max_tokens=4096
)

External vision med Azure AI Services

For avanserte dokumentscenario, kombiner GPT-4o med spesialiserte Azure AI-tenester:

Teneste Brukstilfelle Integrasjon med GPT-4o
Azure Document Intelligence Strukturert dokumentekstraksjon, tabellar, skjema Ekstraher strukturdata, send til GPT-4o for resonnering
Azure AI Vision Objektdeteksjon, OCR, bildeanalyse Detaljert bildeanalyse som input til GPT-4o
Azure Video Indexer Videoanalyse, ansiktsdeteksjon Ekstraher keyframes, analyser med GPT-4o
Azure Content Understanding Semantisk chunking, cross-page tabellar Avansert dokumentforståing

Arkitekturmønster: Enrichment pipeline

Dokument → Document Intelligence → Strukturerte felt
                                 → Tabellar (JSON)
                                 → Bilete (ekstraherte)
                                       ↓
                              GPT-4o Vision Analysis
                                       ↓
                              Kombinert innsikt (tekst + visuell)

Vision Fine-Tuning

GPT-4o (versjon 2024-08-06) støttar fine-tuning med bildedata:

Krav:

  • Maks 50 000 eksempel med bilete per treningsfil
  • Maks 64 bilete per eksempel
  • Kvar bilete maks 10 MB
  • Format: JPEG, PNG, WEBP (RGB eller RGBA)
  • Minimum 10 eksempel

Avgrensingar:

  • Bilete med personar/ansikt blir ekskludert frå treningsdata
  • CAPTCHAs blir ekskludert
  • Bilete kan ikkje vere output frå assistant-meldingar

Performance og Latency-optimalisering

Strategiar for lågare latency

Strategi Effekt Trade-off
Bruk detail: low 50-70% raskare Lågare bildekvalitet
Reduser bildeoppløysing før sending 20-40% raskare Manuell preprosessering
Batch-prosessering Betre throughput Høgare per-request latency
Streaming responses Opplevd raskare Inga endring i total tid
Bruk GPT-4o mini Raskare, billegare Noko lågare kvalitet

Bildeoptimalisering for Azure OpenAI

from PIL import Image
import io
import base64

def optimize_image_for_vision(image_path, max_size=2048, quality=85):
    """Optimaliser bilete for GPT-4o vision API."""
    img = Image.open(image_path)

    # Resize om nødvendig
    if max(img.size) > max_size:
        ratio = max_size / max(img.size)
        new_size = (int(img.size[0] * ratio), int(img.size[1] * ratio))
        img = img.resize(new_size, Image.LANCZOS)

    # Konverter til RGB om nødvendig
    if img.mode in ('RGBA', 'P'):
        img = img.convert('RGB')

    # Komprimer til JPEG
    buffer = io.BytesIO()
    img.save(buffer, format='JPEG', quality=quality)
    buffer.seek(0)

    return base64.b64encode(buffer.read()).decode('utf-8')

Rate Limits og kvotering

Deployment type TPM (Tokens Per Minute) RPM (Requests Per Minute)
Standard Varierer per region Avheng av TPM
Global Standard Høgare kvoter Avheng av TPM
Provisioned (PTU) Garantert throughput Avheng av PTU-tal

Viktig: Bilete telles mot TPM-kvoten. Eit stort bilete i high detail-modus kan bruke over 1000 tokens, noko som reduserer effektiv RPM.

Caching-strategi for biletanalyse

For gjentakande analysar av same bilete, implementer caching:

import hashlib
import json
from functools import lru_cache

def get_image_hash(image_data: bytes) -> str:
    """Generer hash for biletecaching."""
    return hashlib.sha256(image_data).hexdigest()

# Redis-basert caching for produksjon
async def analyze_image_cached(image_data: bytes, prompt: str, cache_client):
    cache_key = f"vision:{get_image_hash(image_data)}:{hashlib.md5(prompt.encode()).hexdigest()}"

    cached = await cache_client.get(cache_key)
    if cached:
        return json.loads(cached)

    result = await call_gpt4o_vision(image_data, prompt)
    await cache_client.set(cache_key, json.dumps(result), ex=3600)
    return result

Brukstilfelle for norsk offentleg sektor

Dokumentanalyse og saksbehandling

Scenario Detail-modus Tilnærming
Byggesøknad med teikningar high Ekstraher mål, material, plassering
Passfoto-validering low Grunnleggjande kvalitetssjekk (ansiktsblurring aktiv)
Vegskilt-inventering high Klassifisering og tilstandsvurdering
Kartanalyse high Identifiser markerte område, målestokk
Fakturabehandling high Kombiner med Document Intelligence

Tilgjengelegheitsvurdering

GPT-4o kan analysere bilete av offentlege bygg og infrastruktur for tilgjengelegheitsutfordringar:

accessibility_prompt = """
Analyser dette biletet av ein offentleg bygning.
Vurder følgjande tilgjengelegheitskriterier:
1. Rullestolrampe tilgjengeleg?
2. Taktile leielinjer synlege?
3. Kontrastmerking på trapper?
4. Automatiske dører?
Gje ein strukturert vurdering i JSON-format.
"""

Avgrensingar og kjende utfordringar

Avgrensing Detaljar Workaround
Ingen bildegenereringsevne GPT-4o analyserer bilete, genererer ikkje Bruk DALL-E 3 / GPT-image-1
Metadata ikkje tilgjengeleg EXIF, geo-data, kamerainfo blir ikkje lest Ekstraher metadata separat
Spatial resonnering Avgrensa evne til nøyaktig avstandsvurdering Bruk spesialiserte vision-modellar
Handskrift Variabel kvalitet, spesielt for norsk Kombiner med Document Intelligence
Tidsavgrensing Komplekse bilete kan ta opptil 60 sekund Optimaliser biletestorleik

For Cosmo

  • GPT-4o vision brukar ein to-nivå token-modell: low (flat 85 tokens) vs. high (tile-basert, 170 tokens per 512x512 tile + 85 base). Alltid berekn token-kostnad før du designar ein pipeline med mange bilete.
  • Ansiktsblurring er automatisk i Azure OpenAI og kan ikkje deaktiverast for GPT-4o. Dette er ein fordel for norsk personvern, men avgrensar brukstilfelle som ansiktsbasert identifisering.
  • Kombiner native vision med Azure Document Intelligence for strukturert dokumentanalyse. GPT-4o gir generell forståing; Document Intelligence gir presis feltekstraksjon.
  • Vision fine-tuning er tilgjengeleg for GPT-4o (2024-08-06) og kan forbetrast for spesifikke domene som norske byggesøknadar eller vegskilt. Merk at bilete med personar blir filtrert ut.
  • For kostnadsoptimalisering, bruk detail: auto som standard og low for screeing/klassifisering. Reservar high for tilfelle der detaljar er kritiske.