ms-ai-architect/skills/ms-ai-engineering/references/azure-ai-services/content-understanding-multimodal-analysis.md
Kjell Tore Guttormsen 070141f06b chore(ms-ai-architect): refresh KB medium-bucket — 74 files [skip-docs]
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
2026-06-19 14:02:18 +02:00

600 lines
28 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Content Understanding - Multimodal Analysis and Video Intelligence
**Last updated:** 2026-06-19 | Verified: MCP 2026-06-19
**Status:** Preview (GA for core features, Limited Access for face description)
**Category:** Azure AI Services (Foundry Tools)
---
## Introduksjon
Azure AI Content Understanding er en generativ AI-tjeneste designet for å transformere ustrukturert multimodalt innhold dokumenter, bilder, video og audio til strukturert, maskinlesbar informasjon. Tjenesten kombinerer avansert innholdsekstraksjon med generative modeller for å skape skreddersydd metadata og innsikter på tvers av modaliteter.
For video- og audioanalyse opererer Content Understanding i to hovedfaser: **innholdsekstraksjon** (transcription, shot detection, keyframe extraction) og **feltekstraksjon** (custom fields, segmentering basert på generative modeller). Dette muliggjør alt fra RAG-optimaliserte workflows til detaljert media asset management og compliance-sjekk.
Tjenesten skiller seg fra Azure AI Video Indexer ved at den fokuserer på fleksibel, schema-drevet ekstraksjon med generative modeller, mens Video Indexer leverer et bredere spekter av pre-definerte AI-innsikter (face recognition, celebrity identification, content moderation, observed people detection). Content Understanding er ideell når du trenger tilpassede felt og segmenteringslogikk definert i naturlig språk, mens Video Indexer passer bedre for omfattende, predefinerte video-innsikter.
---
## Kjernekomponenter
### Støttede modaliteter
| Modalitet | Format-eksempler | Bruksområder |
|-----------|------------------|--------------|
| **Video** | MP4, AVI, MOV, MKV | Media asset management, advertising analysis, training videos |
| **Audio** | MP3, WAV, AAC, FLAC | Podcast transcription, call center analytics, audio content classification |
| **Dokumenter** | PDF, DOCX, XLSX, PPTX, HTML | Document intelligence, form processing, contract analysis |
| **Bilder** | JPEG, PNG, BMP, TIFF | Image classification, OCR, visual content analysis |
**Tekniske begrensninger (video/audio):**
- Frame sampling: ~1 FPS (raske bevegelser eller single-frame events kan gå tapt)
- Frame resolution: 512 × 512 px resize (små detaljer eller fjerne objekter kan bli utydelige)
- Audio: Kun tale transkriberes (musikk, lydeffekter, bakgrunnsstøy ignoreres)
### Prebuilt analyzers
| Analyzer ID | Formål | Output-format |
|-------------|--------|---------------|
| `prebuilt-videoSearch` | RAG-optimalisert video-analyse med markdown og JSON | Transcript (WEBVTT), keyframes, scene descriptions, segmentering |
| `prebuilt-videoAnalysis` | Generell video-metadata for asset management | JSON med visual + audio metadata |
| `prebuilt-documentSearch` | Dokument-ekstraksjon for RAG | Markdown med pages, tables, figures, paragraphs |
**Eksempel (prebuilt-videoSearch output):**
```markdown
# Video: 00:00.000 => 00:06.000
A lively room filled with people watching a sports event on television.
Transcript
WEBVTT
00:03.600 --> 00:06.000
<Speaker 1>Get new years ready.
Key Frames
- 00:00.600 ![](keyFrame.600.jpg)
- 00:01.200 ![](keyFrame.1200.jpg)
```
### Custom analyzers
Definer egne feltschemaer og segmenteringslogikk for å trekke ut domene-spesifikk informasjon.
**Nøkkelegenskaper:**
- **Field extraction**: Strukturerte felt (string, array, object, enum) definert i JSON-schema
- **Custom segmentation**: Naturlig språk-beskrivelser av hvordan video skal segmenteres (nyhetssegmenter, kapitler, annonser)
- **Face description** (Limited Access): Ansiktsattributter (facial hair, expressions), identifisering av kjente personer
**Eksempel (custom analyzer config):**
```json
{
"config": {
"enableSegment": true,
"contentCategories": {
"news-story": {
"description": "Segment video based on each distinct news segment. Use timestamp to identify start/end, no overlap. Ignore ads.",
"analyzerId": "NewsAnalyzer"
}
},
"fieldSchema": {
"fields": {
"brandLogo": {
"type": "string",
"method": "generate",
"description": "Brand being promoted in the video. Include product name if available."
},
"sentiment": {
"type": "string",
"method": "classify",
"enum": ["Positive", "Neutral", "Negative"]
}
}
}
}
}
```
### Ekstraherte elementer (audioVisual)
| Element | Audio | Video | Krever `returnDetails: true` |
|---------|-------|-------|------------------------------|
| Markdown content | ✓ | ✓ | Nei |
| Contents collection | ✓ | ✓ | Nei |
| Transcript phrases | ✓ | ✓ | Ja |
| Timing information | ✓ | ✓ | Nei |
| Key frames | ✗ | ✓ | Nei |
| Camera shots | ✗ | ✓ | Ja |
| Field extraction | ✓ | ✓ | Nei |
**Transcript phrases (JSON):**
```json
{
"transcriptPhrases": [
{
"speaker": "Speaker 1",
"startTimeMs": 280,
"endTimeMs": 3560,
"text": "Welcome to this first session",
"words": []
}
]
}
```
**Keyframes (JSON):**
```json
{
"keyFrameTimesMs": [660, 1320, 2970, 3927, 4884]
}
```
Keyframes er uniformt samplet fra hver camera shot, minimum én per shot (selv ved korte shots < 1 sekund). Deterministisk utvalg på tvers av kjøringer.
**Camera shots (JSON):**
```json
{
"cameraShotTimesMs": [2002, 22356, 26960, 53353]
}
```
Timestamps indikerer startpunktet for hver shot (unntatt første shot som alltid starter ved 0 ms). Detekterer abrupte og gradvise overganger.
---
## Arkitekturmønstre
### Mønster 1: RAG-optimalisert video-indexing
**Use case:** Gjøre video- og audio-innhold søkbart i RAG-workflows (chatbots, agent-systemer).
**Arkitektur:**
1. Last opp video/audio til Content Understanding med `prebuilt-videoSearch` analyzer
2. Tjenesten returnerer strukturert markdown (transcript + keyframes) og JSON (fields, segments)
3. Markdown + JSON lagres i Azure AI Search index med multimodal embeddings
4. RAG-systemet søker på tvers av tekst og visuelt innhold
**Fordeler:**
- Drop-in format for AI Search (ingen post-processing)
- Multimodal søk (tekst + bilde) i én pipeline
- Temporal context bevares (timestamps, keyframes)
**Ulemper:**
- Frame sampling (~1 FPS) kan miste raske handlinger
- Ikke egnet for real-time eller live video-analyse
- Krever Azure OpenAI/embedding-modeller for vektorisering
**Når bruke:** E-learning platforms, corporate training libraries, media archives, compliance video search.
---
### Mønster 2: Custom media asset management
**Use case:** Klassifisere og tagge stort video-library med domene-spesifikke kategorier (sport, nyheter, reklame).
**Arkitektur:**
1. Opprett custom analyzer med feltschema for `videoCategory`, `colorScheme`, `primaryTopic`, `brandPresence`
2. Aktiver `enableSegment: false` for hele-video-analyse
3. Batch-prosesser eksisterende video-bibliotek via REST API eller SDK
4. Lagre ekstraherte metadata i database/fabric for filtering og retrieval
**Fordeler:**
- Fleksibel feltdefinisjon i naturlig språk (ingen ML-trening)
- Støtter både klassifisering (enum) og generering (string)
- Confidence scores for kvalitetssikring
**Ulemper:**
- Generative modeller konsumerer tokens (kostnad skalerer med video-lengde og antall felt)
- Ikke real-time (asynkron long-running operation)
- Krever manuell validering av ekstraherte verdier for produksjonskritiske use cases
**Når bruke:** Broadcast media, advertising analysis, sports analytics, news archiving.
---
### Mønster 3: Compliance og brand safety screening
**Use case:** Skanne annonser/video-innhold for upassende innhold, konkurrent-merkevarer, eller regulatoriske krav.
**Arkitektur:**
1. Kombiner Content Understanding med Azure AI Content Safety (multimodal analysis)
2. Content Understanding ekstraherer `brandLogo`, `spokespersonName`, `productPlacement`
3. Content Safety analyserer visuelt innhold for harm categories (hate, violence, sexual)
4. Custom logic sammenligner ekstraherte felt mot whitelist/blacklist
**Fordeler:**
- Multimodal harm detection (tekst + bilde kombinert)
- Structured output for audit trails
- Integrasjon med Azure AI Services økosystem
**Ulemper:**
- Content Safety multimodal er limited til spesifikke regions (East US, West Europe)
- Ingen real-time screening (batch-orientert)
- False positives krever human-in-the-loop review
**Når bruke:** Ad network compliance, social media moderation, brand safety for advertisers.
---
## Beslutningsveiledning
### Når bruke Content Understanding vs. Video Indexer
| Kriterium | Content Understanding | Video Indexer |
|-----------|----------------------|---------------|
| **Custom field extraction** | ✅ Ja, via naturlig språk-schema | ❌ Nei, predefinerte insights |
| **RAG-optimalisert output** | ✅ Ja, markdown + JSON drop-in | ⚠️ Krever post-processing |
| **Face recognition** | ❌ Nei (kun face description med Limited Access) | ✅ Ja, celebrity + custom faces |
| **Custom segmentation** | ✅ Ja, NL-basert logic | ❌ Nei, predefinert scene detection |
| **Real-time analysis** | ❌ Nei (async batch) | ✅ Ja (live video streaming) |
| **Observed people tracking** | ❌ Nei | ✅ Ja (bounding boxes, clothing detection) |
| **Audio insights** | ⚠️ Transcript, diarization | ✅ Ja, keywords, emotions, topics, audio effects |
| **Pricing model** | Token-basert (generative models) | Page/minute-basert (predefined models) |
**Beslutningstre:**
```
Trenger du real-time analyse?
├─ Ja → Video Indexer (live streaming støtte)
└─ Nei → Trenger du custom fields definert i naturlig språk?
├─ Ja → Content Understanding
└─ Nei → Trenger du face recognition/celebrity identification?
├─ Ja → Video Indexer
└─ Nei → Trenger du RAG-optimalisert output uten post-processing?
├─ Ja → Content Understanding (prebuilt-videoSearch)
└─ Nei → Vurder begge basert på cost/features
```
### Vanlige feil
| Feil | Årsak | Løsning |
|------|-------|---------|
| **Manglende detaljer i transcript** | `returnDetails: false` i analyzer config | Sett `"returnDetails": true` for å få `transcriptPhrases`, `cameraShotTimesMs` |
| **Feil språk i transcript** | Multilingual transcription brukt på usupportert locale | Spesifiser språk eksplisitt (`"language": "nb-NO"`) eller bruk `"auto"` kun for supported locales |
| **Tomme custom fields** | Prompt-beskrivelse for vag eller motsier video-innhold | Iterer på field descriptions, test med sample videos, bruk `method: "classify"` + enum for standardiserte verdier |
| **Face description ikke tilgjengelig** | Limited Access feature, krever approval | Send Azure support request for å aktivere `disableFaceBlurring: true` |
| **Høy kostnad på lange videoer** | Generative models konsumerer tokens per frame + segment | Optimaliser med `enableSegment: false` for hele-video, reduser antall custom fields, bruk prebuilt analyzers hvor mulig |
### Røde flagg
- **Video > 2 timer:** Content Understanding er optimalisert for kortere videoer (ads, training, clips). For lang-format innhold (filmer, full-length shows), vurder Video Indexer.
- **Real-time krav:** Content Understanding er asynkron batch-prosessering. For live video, bruk Video Indexer real-time analysis.
- **Biometric data uten consent:** Face description krever Legal/Privacy review og brukersamtykke under GDPR/AI Act. Ikke aktiver uten juridisk godkjenning.
- **Mission-critical accuracy:** Generative modeller kan hallusinere. Krever human review for compliance/legal use cases.
---
## Integrasjon med Microsoft-stakken
### Azure AI Foundry
Content Understanding er en core Foundry service, tilgjengelig via:
- **Azure AI Foundry portal**: GUI for testing analyzers, viewing results
- **Foundry SDK** (Python, .NET): `ContentUnderstandingClient` klasse
- **REST API**: `POST /contentunderstanding/analyzers/{analyzerId}:analyze`
**Integrasjon med andre Foundry-tjenester:**
| Tjeneste | Integrasjonspunkt |
|----------|-------------------|
| **Azure OpenAI** | Generative modeller (GPT-4o, o1) for field extraction og segmentering |
| **Azure AI Speech** | Transcription engine (samme språkstøtte som Speech in Foundry Tools) |
| **Azure AI Vision** | Image analysis for keyframes (OCR, object detection) |
| **Azure Document Intelligence** | Document extraction for multimodal documents (PDF, DOCX) |
### Azure AI Search
**Multimodal search skillset:**
Content Understanding kan integreres som skill i Azure AI Search indexer pipeline via `Azure Content Understanding skill` (cognitive-search-skill-content-understanding).
**Sammenligning med Document Layout + Vision vectorization:**
| Komponent | Document Extraction skill | Document Layout skill | Content Understanding skill |
|-----------|---------------------------|------------------------|------------------------------|
| **Text location metadata** | Nei | Ja (single page) | Ja (cross-page) |
| **Image location metadata** | Ja (PDF only) | Ja (multi-format) | Ja (multi-format) |
| **Table extraction** | Nei | Nei | Ja (cross-page tables) |
| **Semantic chunking** | Nei (use Text Split skill) | Ja (paragraph boundaries) | Ja (semantic units) |
| **Supported formats** | PDF, images | PDF, DOCX, XLSX, PPTX | PDF, DOCX, XLSX, PPTX |
| **Pricing** | AI Search pricing | Document Intelligence pricing | Content Understanding pricing |
**Når bruke Content Understanding skill:**
- Krever cross-page table extraction (contracts, financial reports)
- Multimodal dokumenter med innebygde videoer/audio
- Trenger semantic chunking over paragraph-level chunking
### Microsoft Fabric
Ekstraherte metadata kan eksporteres til Fabric for:
- **Data lakehouse**: Strukturert lagring av video metadata
- **Power BI**: Dashboards for video analytics (views, sentiment, brand exposure)
- **Dataflows**: ETL-prosessering av ekstraherte felt
**Eksempel-workflow:**
1. Content Understanding → JSON output til Azure Blob Storage
2. Fabric dataflow leser JSON fra blob
3. Transformasjon til tabellformat (flate strukturer)
4. Lagre i Fabric lakehouse
5. Power BI rapport over video library insights
### Power Platform
**Power Automate:**
- Trigger: "When video uploaded to SharePoint/Blob"
- Action: Call Content Understanding REST API
- Action: Parse JSON response og lagre til Dataverse/SharePoint list
**Power Apps:**
- Custom connector for Content Understanding API
- Video metadata viewer app for content editors
**AI Builder:**
- Ingen direkte integrasjon (AI Builder fokuserer på structured data, forms, text)
- Bruk Content Understanding som preprocessing step før AI Builder models
---
## Offentlig sektor (Norge)
### GDPR og personvern
**Risikovurdering:**
| Feature | GDPR-risiko | Mitigering |
|---------|-------------|------------|
| **Transcript (speaker diarization)** | Moderat (personidentifisering via stemme) | Anonymiser speaker labels ("Speaker 1" vs. navn), lagre transkripsjon separert fra audio-fil |
| **Face description** | Høy (biometric data, Article 9) | Krever eksplisitt samtykke, DPIA, Legal review. Ikke aktiver uten godkjenning. |
| **Keyframes** | Lav-Moderat (kan inneholde personer) | Blur faces i keyframes hvis nødvendig (custom post-processing) |
| **Custom fields (names, roles)** | Høy hvis felt ekstraherer persondata | Definer klare data retention policies, tilgangskontroll, slettingsrutiner |
**Face description (Limited Access):**
- Krever Azure support request + justification
- Microsoft vurderer use case før godkjenning
- Må dokumentere legal basis (consent, public interest, legitimate interest)
- Under AI Act (EU): High-risk system hvis brukt til identifisering i offentlige rom
### Schrems II og datasuverenitet
Content Understanding er en Azure Foundry service, underlagt samme datasuverenitet-krav som andre Azure-tjenester.
**Data processing locations:**
- **EU-regioner:** West Europe, North Europe (data residency i EU)
- **Generative models (Azure OpenAI):** Kan prosesseres i US-regions (avhenger av OpenAI deployment)
**Anbefalinger:**
- Deploy Content Understanding resources i **Norway East** eller **West Europe** for EU data residency
- Verifiser at Azure OpenAI deployment også er i EU-region (eller bruk customer-managed keys + EU Boundary)
- For sensitive offentlige videoer: Vurder Azure Government Cloud (ikke tilgjengelig i Norge, men for US gov customers)
**Data retention:**
- Input-filer lagres ikke av tjenesten (kun transiently under prosessering)
- Output (JSON/markdown) returneres til customer storage (blob, AI Search index)
- Ingen logging av video-innhold i Microsoft telemetry (kun metadata som file size, duration)
### AI Act (EU)
Content Understanding faller inn under flere AI Act-kategorier:
| Use Case | AI Act Classification | Obligations |
|----------|----------------------|-------------|
| **Video surveillance (public spaces)** | High-risk (Annex III) | Conformity assessment, risk management, transparency, human oversight |
| **Emotion detection (face description)** | Prohibited (Article 5) hvis brukt til inferring emotions in workplace/education | Ikke bruk `faceSmilingFrowning` felt i HR/school contexts |
| **Content moderation** | High-risk hvis brukt til automated decision-making | Human review loop, appeal mechanism |
| **Media asset management** | Low-risk / minimal risk | Transparency notice (AI-generated metadata) |
**Compliance checklist:**
- [ ] DPIA utført hvis face description aktiveres
- [ ] Transparency notice til brukere om AI-genererte metadata
- [ ] Human-in-the-loop for high-risk decisions (content removal, compliance violations)
- [ ] Dokumentasjon av training data (for custom models, hvis relevant)
- [ ] Regular accuracy testing og bias monitoring
### Forvaltningsloven (Norge)
Hvis Content Understanding brukes i saksbehandling (f.eks. analyse av innsendte videoer i klagesaker):
**§ 11 (informasjonsplikt):**
- Informer sakspart om at video analyseres med AI
- Forklar hvilke metadata som ekstraheres (transcript, faces, sentiment)
- Gi rett til å motsette seg automatisert behandling
**§ 17 (begrunnelsesplikt):**
- Vedtak basert på AI-ekstraherte insights må begrunnes
- Ikke "systemet sa at videoen inneholder X" — menneskelig vurdering må dokumenteres
**Anbefalinger:**
- Bruk Content Understanding som beslutningsstøtte, ikke automatisert saksbehandling
- Lagre audit trail av hvilke felt som ble ekstrahert og hvordan de påvirket beslutning
- Tilby innsyn i ekstraherte metadata til sakspart
---
## Kostnad og lisensiering
### Prismodell
Content Understanding prises basert på **token consumption** for generative models + **content extraction** for audio/video processing.
**Komponenter:**
| Komponent | Prisingsmetrikk | Estimert kostnad (NOK, Feb 2026) |
|-----------|-----------------|-----------------------------------|
| **Content extraction (video)** | Per minute video | ~0.50 NOK/min |
| **Content extraction (audio)** | Per minute audio | ~0.30 NOK/min |
| **Field extraction (generative)** | Per 1000 tokens (input + output) | ~0.10 NOK/1K tokens (GPT-4o) |
| **Segmentation (generative)** | Per 1000 tokens | Inkludert i field extraction |
**Eksempel-beregning (5-minutters reklame-video):**
1. **Content extraction:** 5 min × 0.50 NOK = 2.50 NOK
2. **Keyframe extraction:** 5 frames/min × 5 min = 25 keyframes (inkludert i extraction)
3. **Transcript:** ~150 ord/min × 5 min = 750 ord ≈ 1000 tokens (inkludert i extraction)
4. **Field extraction (3 custom fields):**
- Input: 750 transcript tokens + 25 keyframes × 1000 tokens/image = 25,750 tokens
- Output: ~500 tokens (3 felt × ~150 tokens hver)
- Total: 26,250 tokens ≈ 26K tokens × 0.10 NOK/1K = 2.60 NOK
5. **Total:** 2.50 + 2.60 = **5.10 NOK per video**
**Prebuilt analyzers:**
- `prebuilt-videoSearch`: Lavere kostnad enn custom (færre tokens, optimaliserte prompts)
- Estimat: 60-70% av custom analyzer kostnad
### Optimaliseringstips
| Strategi | Besparelse | Trade-off |
|----------|------------|-----------|
| **Bruk prebuilt analyzers** | 30-40% lavere kostnad | Mindre fleksibilitet i output-format |
| **Disable segmentation** (`enableSegment: false`) | 20-30% lavere tokens | Ingen segment-level metadata |
| **Reduser antall custom fields** | Lineær besparelse per felt | Mindre granulær metadata |
| **Batch-prosessering** | Ingen direkte besparelse, men bedre ressursutnyttelse | Ingen real-time output |
| **Lower frame sampling** | Ikke konfigurerbart (fast ~1 FPS) | N/A |
| **Bruk AI Search skill** | AI Search absorber en del preprocessing-kostnad | Krever AI Search subscription |
### Lisensiering
Content Understanding er en **Azure Foundry Tools** tjeneste, inkludert i:
| Lisens | Inkludert | Begrensninger |
|--------|-----------|---------------|
| **Azure subscription (pay-as-you-go)** | Full tilgang | Kostnad per bruk (token-basert) |
| **Azure commitment (EA)** | Inkludert i Foundry commitment | Samme prising, men prepaid credits |
| **Free tier** | Ikke tilgjengelig | Krever betalt subscription |
**MCP-servere (for Claude Code):**
- Ingen lisensieringskrav utover Azure subscription
- Bruk `microsoft-learn` MCP for dokumentasjonssøk (gratis)
- Content Understanding API-tilgang krever Azure keys
---
## For arkitekten (Cosmo)
### Spørsmål å stille kunden
1. **Volum og format:**
- Hvor mange videoer/audio-filer skal prosesseres? (per dag/uke/måned)
- Typisk video-lengde? (< 5 min, 5-30 min, > 30 min)
- Format-variasjon? (kun MP4, eller også legacy formater?)
2. **Custom fields vs. prebuilt:**
- Trenger dere domene-spesifikke metadata-felt? (Eksempler: `productType`, `complianceStatus`, `brandSafety`)
- Er predefinerte insights (transcript, keyframes, scene descriptions) tilstrekkelig?
- Hvor kritisk er accuracy? (toleranse for feil i ekstraherte verdier)
3. **Segmentering:**
- Skal videoer analyseres som helhet, eller segmentert i kapitler/scener?
- Har dere eksisterende segmenteringslogikk? (timecodes, manual tagging)
- Trenger dere variable segment-lengder? (news clips vs. full episodes)
4. **Personvern og compliance:**
- Inneholder videoer personer? (faces, voices)
- Trenger dere face description/identification? (krever Legal review + Limited Access)
- Er dette offentlige videoer (web-published) eller interne/sensitive?
- Hvilke GDPR Article 6/9 legal bases gjelder?
5. **Integrasjon:**
- Hvor skal metadata lagres? (AI Search, SQL, Fabric, SharePoint)
- Trenger dere RAG-optimalisert output? (markdown + embeddings)
- Eksisterende video storage? (blob, SharePoint, on-prem NAS)
- Real-time krav? (live video streams vs. batch uploaded files)
6. **Kostnad:**
- Hva er budsjettet per video? (eller totalt per måned)
- Er token-basert prising akseptabelt? (variabel kostnad per video-kompleksitet)
- Preferanse for flat-rate pricing? (vurder Video Indexer hvis ja)
7. **Modenhet:**
- Har teamet erfaring med generative AI APIs?
- Finnes ML/AI-kompetanse for å validere output-kvalitet?
- Trenger dere managed service (Azure support) eller self-serve?
8. **Fallback og feilhåndtering:**
- Hva skjer hvis analyse feiler? (retry logic, manual fallback)
- Toleranse for hallucinations i custom fields?
- Human-in-the-loop review-prosess etablert?
### Fallgruver
| Fallgruve | Symptom | Forebygging |
|-----------|---------|-------------|
| **Over-engineering custom fields** | Høy kostnad, treg prosessering, inkonsistente verdier | Start med prebuilt analyzer, iterer til custom fields kun hvis nødvendig |
| **Manglende human review** | Feil metadata i produksjon, compliance-brudd | Implementer confidence thresholds, flag lav-confidence outputs for review |
| **Ignorer technical constraints** | Klager om "hvorfor fant ikke systemet denne 1-sekunders hendelsen?" | Dokumenter frame sampling (1 FPS) + resolution limits i user documentation |
| **Face description uten Legal review** | GDPR/AI Act violations, PR-kriser | Alltid involver Legal før aktivering av `disableFaceBlurring` |
| **Ingen test av multilingual transcription** | Feil språk i transkripsjon, uleselig output | Test med sample files, spesifiser språk eksplisitt vs. `auto` |
| **Undervurdere token consumption** | Budsjettoverskridelse | Kalkuler tokens på forhånd, bruk prebuilt analyzers for cost control |
| **Synkron polling-mønster** | Timeout issues, dårlig UX | Bruk async polling (`.begin_analyze()` + polling hver 20 sek), eller webhooks (ikke GA, men preview) |
### Anbefalinger per modenhetsnivå
**Nivå 1 - Exploratory (PoC):**
- Bruk `prebuilt-videoSearch` for rask demonstrasjon av RAG on video
- Test med 5-10 sample videos (varierende lengde, innhold)
- Deploy i development subscription (ikke prod)
- Fokus: Bevise at teknologien kan ekstrahere relevant info
**Nivå 2 - Pilot (MVP):**
- Definer 1-3 custom fields basert på faktisk business need
- Implementer confidence thresholds (f.eks. flag outputs < 0.7 confidence for review)
- Deploy i prod-lignende miljø (West Europe eller Norway East)
- Integrer med eksisterende storage (blob, AI Search)
- Etabler cost monitoring (Azure Cost Management alerts)
**Nivå 3 - Production (Scale):**
- Optimaliser custom field descriptions basert på pilot-data
- Implementer batch-prosessering pipeline (Azure Functions + Durable Functions for orchestration)
- Sett opp monitoring (Application Insights, Log Analytics)
- Legal/Privacy review av face description hvis aktivert
- Etabler SLA for processing time (f.eks. "videoer < 10 min prosesseres innen 5 min")
**Nivå 4 - Optimization (Mature):**
- A/B-test prebuilt vs. custom analyzers (cost vs. accuracy trade-offs)
- Fine-tune field descriptions basert på production feedback
- Implementer caching av frequently accessed metadata
- Vurder Video Indexer for real-time use cases (hybrid approach)
- Contributor til Microsoft feedback (feature requests, bug reports)
---
## Kilder og verifisering
### Microsoft Learn (MCP-verifiserte)
| Seksjon | Kilde-URL | Konfidensnivå |
|---------|-----------|---------------|
| Video overview, capabilities | https://learn.microsoft.com/en-us/azure/ai-services/content-understanding/video/overview | Verified (Feb 2026) |
| AudioVisual elements, JSON schema | https://learn.microsoft.com/en-us/azure/ai-services/content-understanding/video/elements | Verified (Feb 2026) |
| Video Indexer scene/shot/keyframe detection | https://learn.microsoft.com/en-us/azure/azure-video-indexer/scene-shot-keyframe-detection-insight | Verified (Feb 2026) |
| Standard vs. Pro modes | https://learn.microsoft.com/en-us/azure/ai-services/content-understanding/concepts/standard-pro-modes | Verified (2026-06-19) |
| Multimodal search (AI Search integration) | https://learn.microsoft.com/en-us/azure/search/multimodal-search-overview | Verified (2026-06-19) |
| Azure AI Video Indexer insights overview | https://learn.microsoft.com/en-us/azure/azure-video-indexer/insights-overview | Verified (Feb 2026) |
| Python SDK (ContentUnderstandingClient) | https://learn.microsoft.com/en-us/python/api/overview/azure/ai-contentunderstanding-readme | Verified (Feb 2026) |
| Data privacy and security | https://learn.microsoft.com/en-us/azure/foundry/responsible-ai/content-understanding/data-privacy | Verified (Feb 2026) |
### Baseline (modellkunnskap)
| Seksjon | Konfidensnivå | Merknad |
|---------|---------------|---------|
| Kostnadsestimater (NOK) | Baseline (est. Feb 2026) | Priser kan variere, sjekk Azure Pricing Calculator for nøyaktige tall |
| GDPR/AI Act compliance | Baseline (legal interpretation) | Krever juridisk review per use case, ikke definitive legal advice |
| Offentlig sektor (Norge) guidance | Baseline (expert recommendation) | Basert på generell forståelse av norske lover, ikke case law |
| Fallgruver og best practices | Baseline (arkitektur-erfaring) | Basert på typiske anti-patterns, ikke spesifikke customer incidents |
### Manglende dokumentasjon (gaps)
- **Webhooks for async completion**: Preview feature, ikke dokumentert i GA docs (per Feb 2026)
- **Token consumption per field type**: Ingen offisiell dokumentasjon av hvordan `method: "classify"` vs. `"generate"` påvirker token usage
- **Face description approval process**: Limited Access request-prosedyre er dokumentert, men approval-kriterier er ikke offentlige
- **AI Search skill pricing**: Content Understanding skill pricing er ikke eksplisitt skilt fra Document Extraction/Layout skills i Azure Search pricing page
---
**Sist oppdatert av:** Cosmo Skyberg
**Neste review:** 2026-09-19 (eller ved ny GA release av Content Understanding)