KB-currency refresh (medium priority, 2026-06-19) via /architect:kb-update. 74 medium-prioritets filer re-verifisert mot Microsoft Learn (MCP) — delegert til 15 parallelle Opus-subagenter (3 bølger) gruppert etter delt kilde, med disjunkte fil-sett. Verifisert i hovedkontekst (scope-sjekk + diff-review av de faktatunge gruppene + tester). Hovedendringer (faktuelle korreksjoner + currency): - Azure AI Search semantic ranker: TILGJENGELIG PÅ ALLE TIERS (også Free/Basic m/ gratis månedlig kvote) — gammel KB sa feilaktig "kun S1+". Korrigert i tier-tabell, anti-patterns og beslutningstabell (azure-ai-search-setup). - APIM score-threshold = DISTANSE (lavere = strengere): tuning-tabellen i rag-caching-optimization hadde retningen baklengs — invertert til korrekt. - Agentic retrieval GA/preview-nyanse presisert (hovedkontekst-korreksjon mot agentic-retrieval-how-to-migrate): GA via REST 2026-04-01 returnerer EKSTRAKTIV grounding (references + activity), IKKE syntetiserte svar. Answer synthesis, ikke-minimal reasoning effort (LLM query planning) og multi-turn messages forblir preview (2026-05-01-preview). Subagent hadde overforenklet til "hele kjernepipelinen GA"; rettet i agentic-rag-patterns + citation-tracking. - Copilot Studio modell-tabeller (platforms/copilot-studio): fjernet Claude Opus 4.5 + GPT-5.2 (borte fra kilde), lagt til Claude Sonnet 4.6/Opus 4.6 (GA), Opus 4.7 + Mistral Medium 3.5 (experimental); GPT-5 Reasoning/Auto = preview; A2A GA (apr 2026). - Computer Use (CUA): Copilot Studio GA 2026-05-07; 4 modeller m/ tier/status (OpenAI CUA + Sonnet 4.5 GA, Sonnet 4.6 + Opus 4.6 experimental); 5 credits/ steg standard, 15 premium; US-only region-krav FJERNET i GA-dok; Cloud PC pool + Hosted browser + bring-your-own-machine. - Azure AI Search REST API-versjoner bumpet: 2025-09-01 -> 2026-04-01 (stabil), 2025-11-01-preview -> 2026-05-01-preview (hybrid-search, rag-security-rbac, chunking). - Power Automate-integrasjon: trigger "Run a flow from Copilot" -> "When an agent calls the flow"; App Service innebygd MCP (preview) lagt til. - M365 Copilot-manifest v1.26 -> v1.28 (GA, mai) / v1.29 dokumentert (juni); "Tenant graph grounding" -> "Work IQ". - Speech fast transcription 2t/300MB -> 5t/500MB; multilingual 14 -> 15 locales (+ pt-BR). Content Understanding reasoning preview -> GA (v1.0, 2025-11-01). - Security Copilot E5 -> E5+E7. Død Databricks-URL ci-cd/best-practices -> ci-cd/flows. Prompt Flow retirement (2027-04-20 -> MAF) notert der den presenteres som go-forward. Gateway-topologi-tabell-feil rettet. - Alle 74 Last updated -> 2026-06-19. Discovery ikke kjørt (historisk kun Databricks-støy) -> 389-telling uendret, ingen resync. validate 239 PASS, kb-integrity 115/115 (262 orphan-warnings uendret), gitleaks clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01REiKFhP4w6xGXXqWKpPCJJ
21 KiB
Multimodal Prompt Design with Images and Text
Last updated: 2026-06-19 | Verified: MCP 2026-06-19 Status: GA Category: Prompt Engineering & LLM Optimization
Introduksjon
Multimodal prompt design handler om å utforme effektive instruksjoner som kombinerer tekst og bilder for å maksimere responskvaliteten fra Large Multimodal Models (LMM). Vision-enabled modeller som GPT-4o, GPT-4o mini, GPT-4 Turbo with Vision, GPT-5-serien og o-serien kan analysere bilder og generere tekstlige responser basert på både visuelt og tekstlig innhold.
Nøkkelkonsepter:
- Vision-enabled modeller kombinerer Natural Language Processing (NLP) med visuell forståelse
- Støtter både URL-baserte bilder (HTTP/HTTPS) og Base64-enkodede bilder
- Bildeinput teller som tokens og påvirker kostnad og latency
- Kan håndtere opptil 10 bilder per chat request
- Detail-parameter (
low,high,auto) styrer tokenforbruk og responskvalitet
Tekniske tokens:
| Modell | Low detail | High detail (1024×1024) |
|---|---|---|
| GPT-4o / GPT-4 Turbo | 85 tokens | 4160 tokens |
| GPT-4o mini | 2833 tokens | Varierer med dimensjon |
Kjernekomponenter
1. Input-formater
URL-basert bildeinnput:
{
"type": "image_url",
"image_url": {
"url": "https://example.com/image.jpg",
"detail": "high"
}
}
Base64-enkodet bildeinnput:
{
"type": "image_url",
"image_url": {
"url": "data:image/jpeg;base64,<base64_string>"
}
}
Python-eksempel for lokal fil:
import base64
from mimetypes import guess_type
def local_image_to_data_url(image_path):
mime_type, _ = guess_type(image_path)
if mime_type is None:
mime_type = 'application/octet-stream'
with open(image_path, "rb") as image_file:
base64_encoded_data = base64.b64encode(image_file.read()).decode('utf-8')
return f"data:{mime_type};base64,{base64_encoded_data}"
2. Detail Parameter Settings
| Setting | Oppførsel | Use case | Token-påvirkning |
|---|---|---|---|
auto |
Modellen velger selv basert på bildestørrelse | Default, balansert | Varierer |
low |
512×512 lavoppløselig analyse | Rask responsgivning, grov kategorisering | Lavt (85 tokens GPT-4o) |
high |
Segmentert analyse i 512×512-blokker | Detaljanalyse, OCR, objektdeteksjon | Høyt (4160+ tokens) |
3. Message Content Array Structure
Multimodale prompts bruker content-array i stedet for enkel string:
messages=[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "Describe this picture:"
},
{
"type": "image_url",
"image_url": {
"url": "<image_url>",
"detail": "high"
}
}
]
}
],
max_tokens=2000
Viktig: Alltid sett max_tokens eller output blir trunkert.
Arkitekturmønstre
Pattern 1: Single Image Analysis
Bruksområde: Bildeanalyse, beskrivelse, kategorisering Best practice: Plasser bildet FØR teksten i prompten
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": image_url}},
{"type": "text", "text": "What objects are visible in this image?"}
]
}
],
max_tokens=500
)
Pattern 2: Multi-Image Comparison
Bruksområde: Before/after, A/B testing, damage assessment Begrensning: Maks 10 bilder per request
content = [
{"type": "text", "text": "Compare these two images and identify differences:"},
{"type": "image_url", "image_url": {"url": image1_url, "detail": "high"}},
{"type": "image_url", "image_url": {"url": image2_url, "detail": "high"}}
]
Pattern 3: Few-shot Learning with Images
Bruksområde: Konsistent formatering, klassifisering med eksempler
messages = [
{"role": "system", "content": "You classify dog breeds with weight and height."},
{"role": "user", "content": [
{"type": "text", "text": "Q: What breed is this?"},
{"type": "image_url", "image_url": {"url": pomeranian_url}}
]},
{"role": "assistant", "content": "Breed: Pomeranian; weight: 3-7 lbs; height: 8-14 inches"},
{"role": "user", "content": [
{"type": "text", "text": "Q: What breed is this?"},
{"type": "image_url", "image_url": {"url": new_dog_url}}
]}
]
Pattern 4: Step-by-step Visual Analysis
Bruksområde: Komplekse scenarioer, recipe extraction, damage assessment
# Steg 1: Beskrivelse
"First, describe everything you see in this image in detail."
# Steg 2: Ekstraksjon
"Based on your description, extract the recipe ingredients and instructions."
# Steg 3: Strukturering
"Format the output as a JSON object with 'ingredients' and 'steps' arrays."
Pattern 5: Multimodal RAG (Retrieval-Augmented Generation)
Bruksområde: Enterprise search over dokument med bilder/diagrammer
To tilnærminger:
- Image verbalization: LLM beskriver bilder → embeddes som tekst → hybrid search
- Direct multimodal embeddings: Bilder og tekst embeddes direkte i samme vektorrom
| Tilnærming | Fordel | Ulempe | Use case |
|---|---|---|---|
| Verbalization | Semantisk dybde, LLM-sitérbare beskrivelser | LLM-kall per bilde, høyere latency | Diagrammer, flowcharts, infografikk |
| Direct embeddings | Rask, ingen LLM-kall ved indexing | Ingen forklaring av relasjoner | Visual similarity, produktsøk |
Azure AI Search multimodal pipeline (Verified MCP 2026-06-19):
- Content extraction — to anbefalte innebygde skills:
- Document Extraction skill: rask prototyping/produksjon der eksakt posisjon ikke kreves; bilde-posisjonsmetadata kun for PDF; ingen innebygd chunking (bruk Text Split skill)
- Azure Content Understanding skill: avansert — cross-page tabeller, semantisk chunking (innebygd), AI-genererte bildebeskrivelser, og tekst-/bilde-posisjonsmetadata for PDF, DOCX, XLSX, PPTX
- (Document Layout skill er fortsatt støttet for eksisterende pipelines, men for nye skillsets anbefaler Microsoft Azure Content Understanding skill, som slår sammen ekstraksjon og chunking i én skill.)
- Text chunking: Text Split skill (ikke nødvendig med Content Understanding, som chunker semantisk)
- Image verbalization: GenAI Prompt skill + LLM (phi-4, gpt-4o, gpt-5) → naturlig-språklig beskrivelse
- Embedding: Azure OpenAI / Microsoft Foundry / Azure Vision multimodal embeddings
- Knowledge store: Lagrer bilder for retrieval; image-lokasjon lagres i indeks for sitert visning
To retrieval-stier:
- Verbalized content → hybrid queries (text + vector). Gir semantisk dybde og LLM-siterbare beskrivelser.
- Direct multimodal embeddings (Azure Vision) → image-to-vector queries. Effektiv visual similarity uten LLM-kall ved indexing.
- Mange løsninger kombinerer begge: forklaringsrike visuals verbaliseres, foto/produktbilder embeddes direkte.
Beslutningsveiledning
Når bruke multimodal prompting?
| Scenario | Anbefalt tilnærming | Detail setting |
|---|---|---|
| Produktkatalog beskrivelser | Single image + kontekstuell system prompt | auto eller high |
| Skadevurdering (forsikring) | Multi-image + task-oriented prompt | high |
| OCR + strukturert ekstraksjon | High detail + step-by-step prompting | high |
| Social media content moderation | Low detail for rask screening | low |
| Medisinske bilder | IKKE bruk (out of scope for modellen) | N/A |
Prompt Engineering Prinsipper
| Prinsipp | Beskrivelse | Eksempel |
|---|---|---|
| Contextual specificity | Legg til kontekst om bruksområde | "Describe for an outdoor product catalog, enthusiastic tone" |
| Task-oriented | Definer spesifikk oppgave | "Analyze car damage for insurance report, detail all visible damage" |
| Handle refusals | Be om forklaring, bryt ned request | "What information do you need to plan this meal?" |
| Add examples | Few-shot learning med bilde+tekst par | Se Pattern 3 over |
| Break down requests | Del komplekse oppgaver i steg | Se Pattern 4 over |
| Define output format | Spesifiser JSON, Markdown, HTML, osv. | "Return as JSON with 'ingredients' and 'steps' arrays" |
Håndtering av refusals
# Initial prompt
"Plan this meal" # → "Sorry, I can't provide that information."
# Follow-up strategy
"What information do you need?"
# → Modellen lister opp: antall personer, allergier, anledning, osv.
# Refined prompt
"Plan a dinner for 4 people, vegetarian, casual setting. Image shows [...]"
# → Modellen gir detaljert plan
Integrasjon med Microsoft-stakken
Azure OpenAI Service
Endpoint: https://{RESOURCE_NAME}.openai.azure.com/openai/v1/chat/completions
Autentisering:
- API key:
api-keyheader - Managed Identity:
DefaultAzureCredential+ bearer token provider
Python SDK:
from openai import OpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(),
"https://cognitiveservices.azure.com/.default"
)
client = OpenAI(
base_url="https://YOUR-RESOURCE.openai.azure.com/openai/v1/",
api_key=token_provider
)
Azure AI Foundry (tidligere Azure AI Studio)
Supported models for multimodal:
- GPT-5 series (gpt-5, gpt-5-mini, gpt-5-nano)
- GPT-4.1 series
- GPT-4.5
- GPT-4o series (gpt-4o, gpt-4o-mini)
- o-series reasoning models (o1, o3, o4-mini)
Model deployment types:
- Standard deployment (region-bound)
- Global-standard deployment (dynamic routing, høyere quota)
Prompt Flow Integration
Azure OpenAI GPT-4 Turbo with Vision tool:
# Prompt template
# system:
As an AI assistant, your task involves interpreting images and responding to questions.
Remember to provide accurate answers based on the information present in the image.
# user:
Can you tell me what the image depicts?

Tool configuration:
- Select Azure OpenAI connection
- Specify deployment (GPT-4o, GPT-4o-mini, etc.)
- Set
image_inputparameter (URL eller upload) - Validate and parse input
- Run flow
Azure AI Search Multimodal Integration
Import data wizard → Multimodal RAG:
Forutsetninger:
| Provider | Image verbalization | Multimodal embeddings |
|---|---|---|
| Azure Foundry | phi-4, gpt-4o, gpt-5 (LLM) + text-embedding-3-* | N/A |
| Azure OpenAI | gpt-4o, gpt-5 (LLM) + text-embedding-3-* | N/A |
| Azure Vision | N/A | Multimodal embeddings (built-in) |
Pipeline-steg (wizard):
- Data source: Azure Blob / ADLS Gen2
- Content extraction: Document Extraction skill eller Azure Content Understanding skill (Document Layout skill kun for eksisterende pipelines)
- Text chunking: Text Split skill
- Image verbalization (optional): GenAI Prompt skill
- Embedding: Azure OpenAI / Foundry / Azure Vision
- Knowledge store: Lagrer bilder for retrieval
Query-tid:
- Hybrid queries (text + vector) for verbalized content
- Image-to-vector queries KUN med Azure Vision multimodal embeddings vectorizer
Power Platform Integration
AI Builder + GPT-4o via Azure OpenAI connector:
- Custom connector til Azure OpenAI endpoint
- Parse Base64-enkoded input fra Power Apps
- Return response til Power Automate flow
Offentlig sektor (Norge)
Compliance og databehandling
| Aspekt | Vurdering |
|---|---|
| GDPR | Bilder kan inneholde personopplysninger → databehandleravtale påkrevd |
| Schrems II | Azure OpenAI EU-regioner (West Europe, North Europe) anbefales |
| Sikkerhetsloven | Klassifisert informasjon: IKKE send til sky-LLM |
| Offentleglova | Vurder om bildeinnhold er offentlig eller unntatt |
Use cases offentlig sektor
| Sektor | Use case | Multimodal pattern |
|---|---|---|
| Direktoratet | Skaderegistrering vei/bruer fra drone-bilder | Multi-image damage assessment |
| NAV | Automatisk dokumentklassifisering (skjema med vedlegg) | OCR + structured extraction |
| Helsedirektoratet | Visuell analyse av offentlige helsedata (grafer) | ⚠️ IKKE medisinske bilder |
| Kulturminnevern | Katalogisering av bygninger/artefakter | Product catalog pattern |
| Krisehåndtering | Situasjonsanalyse fra feltbilder | Step-by-step visual analysis |
Viktig: Multimodal embeddings er IKKE designet for medisinsk diagnostikk.
Kostnadskontroll
Strategier:
- Bruk
lowdetail for initielt screening,highkun for prioriterte bilder - Pre-filter bilder med Azure AI Vision (klassisk) før LLM-analyse
- Batch-prosessering med Azure Batch + OpenAI
- Monitor token usage via Azure Monitor + Cost Management
Kostnad og lisensiering
Token-kostnader (per bilde)
GPT-4o (2024-11-20 deployment):
| Detail | Dimensjon | Input tokens | Estimert kostnad (NOK)* |
|---|---|---|---|
low |
Any | 85 | ~0.11 kr |
high |
1024×1024 | 4160 | ~5.41 kr |
high |
1024×1536 (portrait) | 6240 | ~8.11 kr |
high |
1536×1024 (landscape) | 6208 | ~8.07 kr |
GPT-4o mini (2024-07-18 deployment):
| Detail | Dimensjon | Input tokens | Estimat kostnad (NOK)* |
|---|---|---|---|
low |
Any | 2833 | ~0.47 kr |
high |
1024×1024 | Lavere enn GPT-4o | ~1-2 kr |
*Basert på ca. $0.0025 per 1K input tokens GPT-4o, $0.00015 per 1K GPT-4o mini (jan 2026), vekslingskurs ~10.5 NOK/USD. Verifiser aktuelle priser.
Lisensiering
Azure OpenAI:
- Krever Azure-abonnement
- Pay-as-you-go (consumption-based)
- Ingen lisenskostnad utover API-kall
M365 Copilot:
- Multimodal capabilities i Copilot for M365 (chat with images)
- Krever M365 E3/E5 + Copilot lisens (~$30/bruker/måned)
- Begrenset til M365-kontekst (SharePoint, OneDrive, Teams)
Power Platform:
- AI Builder credits for custom connectors til Azure OpenAI
- Premium connector: $40/bruker/måned eller $200/kapasitet/måned
- Per-request costing via Azure OpenAI on top
TCO-optimalisering
| Strategi | Besparelse | Trade-off |
|---|---|---|
| Bruk GPT-4o mini i stedet for GPT-4o | ~94% | Noe lavere kvalitet |
low detail i stedet for high |
~98% (GPT-4o) | Mister findetaljer |
| Pre-filter med Azure AI Vision | 50-80% | Ekstra kompleksitet |
| Batch-prosessering (asynkront) | 50% rabatt (Azure OpenAI batch API) | Latency 24t |
| Cache responses (semantic cache) | Varierer | Treff-rate avhengig |
For arkitekten (Cosmo)
Discovery-spørsmål
Når kunde ønsker multimodal løsning, kartlegg:
-
Bildetyper:
- Hva slags bilder? (foto, skjermbilder, diagrammer, dokumenter)
- Typisk oppløsning og størrelse?
- Volum (bilder/dag, bilder/måned)?
-
Use case:
- Hva skal skje med bildene? (kategorisering, OCR, beskrivelse, damage assessment)
- Responstidskrav? (sanntid vs. batch)
- Ønsket output-format? (JSON, tekst, strukturert data)
-
Integrasjon:
- Hvor kommer bildene fra? (bruker-upload, blob storage, SharePoint)
- Hvor skal responser? (app, database, Power BI)
- Eksisterende systemer?
-
Compliance:
- Inneholder bildene personopplysninger?
- Klassifiseringsnivå (offentlig, begrenset, konfidensiell)?
- GDPR-krav?
Decision Tree
Multimodal scenario?
├─ Volum < 100 bilder/dag
│ └─ Azure OpenAI direct API (GPT-4o mini, low detail)
│
├─ Volum 100-10k bilder/dag
│ ├─ Sanntid påkrevd?
│ │ ├─ Ja → Azure OpenAI + caching + auto-scaling
│ │ └─ Nei → Azure OpenAI Batch API (50% rabatt)
│ └─ OCR primært? → Azure AI Document Intelligence i stedet
│
├─ Volum > 10k bilder/dag
│ └─ Azure AI Search multimodal pipeline + Azure Vision embeddings
│
├─ Trengs søk over historiske bilder?
│ └─ Azure AI Search multimodal RAG (verbalization eller direct embeddings)
│
└─ RAG over PDF/Office-dokumenter med embedded diagrammer?
├─ Forklaringsrike visuals: Azure Content Understanding skill (eller Document Extraction) + GenAI Prompt verbalization
└─ Visual similarity: Azure Content Understanding + Azure Vision embeddings
Red Flags
⚠️ Unngå multimodal LLM når:
- Medisinsk diagnostikk (out of scope)
- Høy sikkerhetsgradert materiale (risiko for datalekkasje)
- Sanntids-video (bruk Azure Video Indexer i stedet)
- Kun OCR behov (Azure AI Document Intelligence er billigere)
- Ekstrem høy volum real-time (cost explosion)
Proof-of-Concept anbefaling
2-ukers POC:
-
Uke 1: Bygg baseline med Azure OpenAI Playground
- Test 20-50 representative bilder
- Evaluer
lowvshighdetail - Test 3-5 prompt-variasjoner
- Mål accuracy og token usage
-
Uke 2: Implementer mini-pipeline
- Python/C# script med OpenAI SDK
- Integrer med blob storage
- Logger tokens og cost
- Demo til stakeholders
Success criteria:
- Accuracy > 85% på use case
- Token cost innenfor budsjett
- Latency < 5 sekunder (95th percentile)
Arkitekturmaler
Template 1: Simple image analysis API
User → Azure Function (HTTP trigger)
→ OpenAI SDK (GPT-4o mini)
→ Parse response
→ Return JSON
Template 2: Multimodal RAG
Documents (PDF) → Azure AI Search Multimodal wizard
→ GenAI Prompt skill (verbalization)
→ Azure OpenAI embedding
→ Vector index
User query → Hybrid search (text + vector)
→ GPT-4o with grounding
→ Response + image citations
Template 3: Batch processing
Blob upload → Event Grid trigger
→ Azure Function (queue message)
→ OpenAI Batch API submit
→ Poll for completion (24h)
→ Write results to Cosmos DB
Monitoring og observability
Nøkkel-metrikker:
- Tokens per request (avg, p50, p95, p99)
- Cost per image analyzed (NOK)
- Latency (end-to-end)
- Error rate (content filter, API errors)
- Accuracy (human-in-the-loop validation)
Azure Monitor dashboard:
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.COGNITIVESERVICES"
| where OperationName == "ChatCompletions_Create"
| extend tokens_used = toint(properties_s.usage.total_tokens)
| extend has_image = properties_s contains "image_url"
| summarize avg(tokens_used), percentile(tokens_used, 95) by bin(TimeGenerated, 1h), has_image
Kilder og verifisering
Microsoft Learn dokumentasjon (re-verifisert MCP 2026-06-19):
- Use vision-enabled chat models — Offisiell how-to guide for GPT-4o/GPT-4 Turbo with Vision
- Image prompt engineering techniques — Best practices for multimodal prompting
- Multimodal search in Azure AI Search (Re-verified MCP 2026-06-19) — RAG-arkitektur; to anbefalte extraction skills (Document Extraction og Azure Content Understanding; Document Layout kun for eksisterende pipelines); verbalization vs direct embeddings; image-to-vector-queries krever Azure Vision / AML multimodal embeddings-vectorizer; hybrid query-alternativ
- Azure OpenAI models — Modelloversikt og token-kostnader
- Quickstart: Multimodal search in Azure portal — Wizard-basert oppsett
- Get started with multimodal vision chat apps (Re-verified MCP 2026-06-19) — End-to-end sample app: Base64-enkoder opplastet bilde i frontend (FileReader), sender via Azure OpenAI Responses API (
input_image/input_text, default gpt-4o), managed identity-autentisering, deploy til Azure Container Apps
Code samples:
- Azure-Samples/cognitive-services-sample-data-files (GitHub)
- Azure AI Foundry multimodal RAG sample app (https://aka.ms/azs-multimodal-sample-app-repo)
Confidence markers:
- ✅ High confidence: Token counts, API structure, detail parameter behavior (direkte fra offisiell docs)
- ✅ High confidence: Prompt engineering patterns (bekreftet i Microsoft Learn)
- ⚠️ Medium confidence: Kostberegninger i NOK (basert på jan 2026 pricing, kan variere)
- ⚠️ Medium confidence: Offentlig sektor use cases (inferert fra generelle patterns, ikke Microsoft-spesifikt)
Sist verifisert: 2026-06-19 Neste review: 2026-09-19 (eller ved nye GPT-modeller/AI Search features)