feat(ultraplan-local): v1.6.0 — /ultraresearch-local deep research command

Add /ultraresearch-local for structured research combining local codebase
analysis with external knowledge via parallel agent swarms. Produces research
briefs with triangulation, confidence ratings, and source quality assessment.

New command: /ultraresearch-local with modes --quick, --local, --external, --fg.
New agents: research-orchestrator (opus), docs-researcher, community-researcher,
security-researcher, contrarian-researcher, gemini-bridge (all sonnet).
New template: research-brief-template.md.

Integration: --research flag in /ultraplan-local accepts pre-built research
briefs (up to 3), enriches the interview and exploration phases. Planning
orchestrator cross-references brief findings during synthesis.

Design principle: Context Engineering — right information to right agent at
right time. Research briefs are structured artifacts in the pipeline:
ultraresearch → brief → ultraplan --research → plan → ultraexecute.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-04-08 08:58:35 +02:00
commit baa2d0220b
488 changed files with 213221 additions and 0 deletions

View file

@ -0,0 +1,355 @@
# Azure AI Vision - OCR and Document Processing
**Last updated:** 2026-02
**Status:** GA
**Category:** Azure AI Services (Foundry Tools)
---
## Introduksjon
Azure AI Vision tilbyr optisk tegngjenkjenning (OCR) som gjør det mulig å ekstraherne synlig tekst fra bilder og dokumenter og konvertere den til strukturerte tekststrenger. OCR-tjenesten kan lese både trykt og håndskrevet tekst fra et bredt spekter av kilder – fra produktetiketter, skilt og screenshots til fakturaer, rapporter og forretningsdokumenter. Dette gjøres ved hjelp av avanserte maskinlæringsmodeller som støtter flere språk og skriftsystemer, inkludert latinske, kyrilliske, arabiske og devanagari-tegnsett.
Microsoft tilbyr to hovededisjoner av Read OCR-tjenesten, hver optimalisert for ulike scenarioer. **Azure Vision v4.0 Read OCR** er designet for raske, synkrone operasjoner på enkeltbilder og "in-the-wild"-bilder som etiketter, skilt og sosiale medieposter. **Document Intelligence Read Model** er derimot optimalisert for teksttunge dokumenter (PDF, Office-filer, HTML) med asynkrone API-kall som muliggjør storskalig intelligent dokumentprosessering. Begge tjenestene benytter samme OCR-motor, men tilpasses for forskjellige bruksområder og integrasjonsmønstre.
For norsk offentlig sektor er OCR en kritisk byggekloss i digitalisering av arkivmateriale, automatisering av saksbehandling og tilgjengeliggjøring av informasjon. Ved å ekstrahere tekst fra skannet materiale kan organisasjoner gjøre innhold søkbart, automatisere dataregistrering og forbedre universell utforming gjennom tekstbaserte grensesnitt.
## Kjernekomponenter
### OCR-motoren (Read)
Microsofts **Read OCR-motor** er basert på flere dyplæringsmodeller med støtte for universal skriftbasert modellering som muliggjør global språkstøtte:
| Komponent | Beskrivelse | Versjon |
|-----------|-------------|---------|
| **Azure Vision v4.0 Read** | Synkron API for rask tekstekstraksjon fra enkeltbilder. Del av Image Analysis 4.0 API. | v4.0 (GA) |
| **Azure Vision v3.2 Read** | Asynkron API (legacy). Ingen videre oppdateringer etter v3.2. | v3.2 (GA, legacy) |
| **Document Intelligence Read** | Asynkron API optimalisert for teksttunge dokumenter (PDF, TIFF, Office-filer). | GA |
| **Florence Foundation Model** | Underliggende AI-modell som driver forbedret semantisk forståelse i v4.0. | v4.0+ |
### OCR-kapabiliteter
- **Trykt tekst:** Støtte for flere språk inkludert engelsk, fransk, tysk, italiensk, portugisisk, spansk, kinesisk, japansk, koreansk, russisk, arabisk, hindi og flere internasjonale språk.
- **Håndskrift:** Støtte for engelsk, kinesisk (forenklet), fransk, tysk, italiensk, japansk, koreansk, portugisisk og spansk.
- **Bounding boxes:** Koordinater for hver tekstlinje og hvert ord for presis lokalisering.
- **Confidence scores:** Verdier mellom 0 og 1 som indikerer tjenestens tillit til ekstraksjonen (f.eks. 0.82 = 82 % sikkerhet).
- **Språkdeteksjon:** Automatisk identifisering av språk i bilde/dokument.
- **Handwritten classification:** Klassifisering av tekstlinjer som håndskrevne eller trykte (kun latinsk alfabet).
- **Multispråklig støtte:** Støtte for blandede språk og skrifttyper i samme dokument.
### API-alternativer
| API | Type | Input | Bruksområde |
|-----|------|-------|-------------|
| **Image Analysis 4.0 (Read)** | Synkron (REST) | JPEG, PNG, BMP, GIF | Lette OCR-scenarioer, "in-the-wild"-bilder, real-time brukeropplevelser |
| **Document Intelligence Read** | Asynkron (REST) | PDF, TIFF, JPEG, PNG, BMP, Office-filer | Teksttunge dokumenter, intelligent dokumentprosessering, batch-operasjoner |
| **Azure Vision v3.2 Read** | Asynkron (REST) | JPEG, PNG, BMP, PDF, TIFF | Legacy-støtte (ingen nye funksjoner) |
### Input-krav
- **Filformater:** JPEG, PNG, BMP, PDF, TIFF
- **Filstørrelse:** Maks 500 MB (4 MB for gratisnivå)
- **Dimensjoner:** Minimum 50 x 50 piksler, maksimum 10 000 x 10 000 piksler
- **PDF/TIFF:** Opptil 2000 sider (kun de to første sidene for gratisnivå)
- **Minimum teksthøyde:** 12 piksler for et 1024 x 768 bilde (ca. 8-punkts skrift ved 150 DPI)
## Arkitekturmønstre
### 1. Real-time OCR for brukergrensesnitt (Synkron v4.0)
**Bruk når:** Brukere laster opp enkeltbilder for øyeblikkelig tekstekstraksjon (f.eks. skanne kvitteringer, visittkort, skilt).
**Arkitektur:**
```
Bruker → Web/mobil-app → Azure Vision v4.0 (Analyze Image API med Read-feature) → JSON-respons → Visning/prosessering
```
**Fordeler:**
- Synkron respons (sub-sekund latens)
- Enkel integrasjon (ett API-kall)
- Kombineres med andre Image Analysis-features (caption, tags, objektdeteksjon)
**Ulemper:**
- Ikke optimalisert for multisiders dokumenter
- Høyere kostnad per transaksjon ved høyt volum
**Eksempel:** Kvitteringsskanning i en reisekostnad-app, visittkortskanning i CRM, real-time tekstgjenkjenning i mobilapp.
---
### 2. Batch-dokumentprosessering (Asynkron Document Intelligence)
**Bruk når:** Prosessering av store mengder dokumenter (fakturaer, kontrakter, arkivmateriale) med behov for strukturert dataekstraksjon.
**Arkitektur:**
```
Dokumenter → Azure Blob Storage → Azure Logic App/Function → Document Intelligence Read → Azure AI Search → Søkegrensesnitt
```
**Fordeler:**
- Optimalisert for PDF og multisiders dokumenter
- Asynkron behandling (skalerer bedre for batch)
- Strukturert output med layout-informasjon
- Lavere kostnad per side ved høyt volum
**Ulemper:**
- Polling-basert workflow (asynkron kompleksitet)
- Lengre responstid (sekunder til minutter avhengig av dokumentstørrelse)
**Eksempel:** Arkivdigitalisering, fakturaautomatisering, kontraktsanalyse, compliance-dokumentasjon.
---
### 3. Hybrid OCR med AI Search Skillset
**Bruk når:** Bygge søk- og kunnskapsløsninger over skannet innhold med berikelse (entity extraction, sentiment, oversettelse).
**Arkitektur:**
```
Dokumenter → Azure Blob Storage → AI Search Indexer → OCR Skill (Vision v3.2 eller DI Read) → Entity Extraction → Key Phrase Extraction → Search Index
```
**Fordeler:**
- Integrert med Azure AI Search berikelsespipeline
- Kombineres med andre Cognitive Skills (NER, PII-deteksjon, oversettelse)
- Automatisk re-indexing ved nye dokumenter
**Ulemper:**
- Bundet til AI Search berikelsesmodellen
- Skill-integrasjon bruker v3.2 API (legacy) – for v4.0 kreves custom Web API skill
**Eksempel:** Kunnskapsgrafbygning over juridiske dokumenter, søk i historiske arkiver, compliance-dokumentasjon.
## Beslutningsveiledning
### Valg mellom Azure Vision OCR og Document Intelligence Read
| Kriterium | Azure Vision v4.0 Read | Document Intelligence Read |
|-----------|------------------------|----------------------------|
| **Input** | Enkeltbilder (JPEG, PNG, BMP, GIF) | Dokumenter (PDF, TIFF, Office, bilder) |
| **API-type** | Synkron (umiddelbar respons) | Asynkron (polling-basert) |
| **Bruksområde** | In-the-wild-bilder, real-time brukeropplevelser | Teksttunge dokumenter, batch-prosessering |
| **Multisiders støtte** | Begrenset (TIFF støttes, men ikke optimalisert) | Opptil 2000 sider per dokument |
| **Layout-analyse** | Tekstlinjer og ord med bounding boxes | Avansert layout (paragrafer, tabeller, strukturer) |
| **Pris** | Per transaksjon (per bilde) | Per side (bedre for multisiders dokumenter) |
| **Integrasjon** | Del av Image Analysis 4.0 (kombineres med andre features) | Frittstående Read-modell (kan kombineres med andre DI-modeller) |
### Vanlige feil og fallgruver
| Problem | Årsak | Løsning |
|---------|-------|---------|
| **Lav nøyaktighet på håndskrift** | Modellen støtter kun håndskrift for utvalgte språk (engelsk best) | Bruk trykt tekst hvis mulig, eller tren custom modell |
| **Tekst ikke detektert** | For lav oppløsning (<50x50 px), blur, dårlig kontrast | Øk oppløsning til min. 150 DPI, forbedre belysning/kontrast |
| **Feil språkdeteksjon** | Blandet språk eller uvanlige tegnsett | Spesifiser `language`-parameter i API-kall |
| **Høy kostnad** | Bruk av v4.0 synkron API for batch-dokumenter | Bruk Document Intelligence Read for multisiders dokumenter |
| **Timeout-feil** | Store PDF-filer med synkron API | Bruk Document Intelligence asynkron API |
| **Feil i v3.2 legacy-kode** | v3.2 har ingen nye oppdateringer | Migrer til v4.0 (synkron) eller Document Intelligence (asynkron) |
### Røde flagg
- **Bruk IKKE Azure Vision OCR for ansiktsgjenkjenning eller biometrisk identifisering** – OCR detekterer ikke ansiktsidentitet.
- **Bruk IKKE OCR for alder- eller kjønnsklassifisering** – Ikke designet for dette.
- **Bruk IKKE OCR for PII-deteksjon uten ekstra lag** – OCR ekstrahere kun tekst; bruk Azure AI Language for PII-identifisering.
- **Bruk IKKE gratisnivå for produksjon** – 4 MB filgrense og 2-siders PDF-begrensning.
- **Vær oppmerksom på confidence scores under 0.80** – Vurder manuell validering eller human-in-the-loop.
## Integrasjon med Microsoft-stakken
### Azure AI Search
**Image Analysis Skill** (v3.2) støtter OCR som del av berikelsespipeline. For v4.0-funksjonalitet, bruk **Web API Custom Skill** med Image Analysis 4.0 REST API.
```json
{
"@odata.type": "#Microsoft.Skills.Vision.ImageAnalysisSkill",
"context": "/document/normalized_images/*",
"visualFeatures": ["read"],
"inputs": [
{
"name": "image",
"source": "/document/normalized_images/*"
}
],
"outputs": [
{
"name": "text",
"targetName": "ocrText"
}
]
}
```
### Power Automate
**AI Builder** tilbyr en **Text Recognition** prebuilt model som bruker Azure Vision OCR under panseret. Kan integreres i Power Automate-flows for automatisering:
- **Bruksområde:** Kvitteringsprosessering, fakturaekstraksjon, formularlesing
- **Fordel:** Low-code/no-code integrasjon
- **Begrensning:** Mindre konfigurerbarhet enn direkte API-tilgang
### Azure Functions / Logic Apps
Bruk Azure Functions eller Logic Apps for å bygge OCR-workflows:
**Eksempel-arkitektur (Logic App):**
1. Trigger: Når blob lastes opp til Azure Storage
2. Action: Kall Azure Vision v4.0 Read API
3. Action: Parse JSON-respons
4. Action: Lagre ekstrahert tekst i Cosmos DB eller SQL Database
5. Action: Send varsling til bruker
### Microsoft Fabric / Synapse
**SynapseML** tilbyr en **ReadImage**-transformator for OCR i Spark-pipelines:
```python
from synapse.ml.cognitive import ReadImage
ri = (ReadImage()
.setLinkedService(ai_service_name)
.setImageUrlCol("url")
.setOutputCol("ocr"))
df_with_ocr = ri.transform(df)
```
### Azure OpenAI / Copilot Studio
Kombiner OCR med LLM for intelligent dokumentforståelse:
1. Ekstrahere tekst med OCR (Vision/Document Intelligence)
2. Send ekstrahert tekst til Azure OpenAI for semantisk analyse, oppsummering, eller Q&A
3. Bruk i Copilot Studio for conversational document understanding
**Eksempel:** "Hva er totalsummen på fakturaen?" → OCR ekstrahere tekst → GPT-4 parse fakturadetaljer → Returner svar.
## Offentlig sektor (Norge)
### GDPR og personvern
- **Data residency:** Azure Vision prosesserer data i samme region som ressursen ble opprettet. For norsk offentlig sektor, bruk **Norway East** eller **West Europe**.
- **Data retention:** Input-bilder og ekstrahert tekst lagres midlertidig (48 timer for operation-location URL), deretter slettet automatisk. Ingen permanent lagring av kundedata i tjenesten.
- **PII-håndtering:** OCR ekstrahere tekst uten å identifisere PII automatisk. Kombiner med **Azure AI Language PII Detection** for å anonymisere persondata.
- **Encryption:** All data krypteres under transit (TLS 1.2) og ved hvile (Azure Storage encryption).
### Arkivering og offentlighetsloven
- **Søkbarhet:** OCR gjør skannet arkivmateriale søkbart, som kreves for offentlig innsyn (Offentlighetsloven § 3).
- **Revisjonsspor:** Bruk Azure Monitor og Log Analytics for å logge alle OCR-operasjoner (hvem, hva, når).
- **Langtidslagring:** Lagre OCR-output i Azure Blob Storage med immutability policies for compliance.
### Universell utforming (WCAG 2.1)
- **Tekstgjøring:** OCR muliggjør skjermleser-tilgang til innhold i bilder og skannet materiale (WCAG 2.1 Level AA).
- **Alt-text generering:** Kombiner OCR med Image Analysis caption-feature for automatisk generering av alt-tekst.
- **Kontrastoptimalisering:** For lav OCR-nøyaktighet på grunn av dårlig kontrast, bruk bildebehandling (f.eks. OpenCV) før OCR.
## Kostnad og lisensiering
### Prismodell (per februar 2026)
**Azure Vision v4.0 Read OCR** (del av Image Analysis 4.0):
| Nivå | Pris (NOK per 1000 transaksjoner) | Gratisnivå |
|------|-------------------------------------|------------|
| **Standard S1** | Ca. 10-15 NOK (avhengig av region og valutakurs) | 5000 transaksjoner/måned gratis |
**Document Intelligence Read Model**:
| Nivå | Pris (NOK per side) | Gratisnivå |
|------|---------------------|------------|
| **Standard S0** | Ca. 0.10-0.15 NOK per side | 500 sider/måned gratis |
**Merknad:** Priser varierer basert på Azure-region og valutakurs. Sjekk [Azure Pricing Calculator](https://azure.microsoft.com/en-us/pricing/calculator/) for oppdaterte priser.
### Kostnadsoptimalisering
| Strategi | Beskrivelse | Estimert besparelse |
|----------|-------------|---------------------|
| **Velg riktig API** | Bruk Document Intelligence for multisiders PDF (per-side prissetting), Vision v4.0 for enkeltbilder (per-transaksjon) | 30-50 % for dokumentbatch |
| **Batch-prosessering** | Prosesser flere dokumenter samtidig med Document Intelligence asynkron API | 20-30 % |
| **Bruk gratisnivå for testing** | 5000 transaksjoner/måned (Vision) eller 500 sider/måned (DI) gratis | 100 % for lavvolum |
| **Optimaliser bildekvalitet** | Reduser re-processing ved å sende bilder med korrekt oppløsning (150-300 DPI) | 10-20 % |
| **Caching** | Lagre OCR-resultater for gjenbruk (unngå re-processing av samme dokument) | 40-60 % |
| **Reserved Capacity** | Kjøp forpliktet kapasitet for forutsigbart høyt volum (kun Enterprise) | 20-40 % |
### Total Cost of Ownership (TCO)
**Eksempel-beregning for arkivdigitalisering (1 million sider/år):**
| Komponent | Kostnad (NOK/år) |
|-----------|------------------|
| Document Intelligence Read (1M sider × 0.12 NOK) | 120 000 |
| Azure Blob Storage (1 TB, LRS) | 2 000 |
| Azure AI Search (S1 tier) | 30 000 |
| Azure Functions (compute for orchestration) | 5 000 |
| **Total TCO** | **157 000 NOK/år** |
## For arkitekten (Cosmo)
### Spørsmål å stille kunden
1. **Type innhold:** Er innholdet enkeltstående bilder (etiketter, skilt) eller multisiders dokumenter (PDF, kontrakter)?
2. **Volum:** Hvor mange sider/bilder må prosesseres per måned? (velg API basert på volum)
3. **Håndskrift:** Kreves støtte for håndskrevet tekst? Hvis ja, hvilket språk?
4. **Responstid:** Er det behov for real-time respons (synkron) eller er batch-prosessering (asynkron) akseptabelt?
5. **Integrasjon:** Skal OCR integreres med AI Search, Power Automate, eller custom applikasjon?
6. **Layout-analyse:** Trengs strukturert output (tabeller, paragrafer) eller er plain text tilstrekkelig?
7. **PII/GDPR:** Inneholder dokumentene persondata? Kreves PII-deteksjon og anonymisering?
8. **Språk:** Hvilket språk er majoriteten av tekstene på? Blandede språk?
9. **Kvalitet:** Hva er kvaliteten på innholdet (skannet, foto, skjermdump)? Har du eksempelbilder?
10. **Downstream-prosessering:** Hva skal skje med ekstrahert tekst? (Søk, analyse, arkivering, LLM-prosessering?)
### Fallgruver å unngå
| Fallgruve | Hvorfor det er et problem | Hvordan unngå |
|-----------|---------------------------|---------------|
| **Bruke v4.0 synkron API for stor PDF-batch** | Timeout-feil, høyere kostnad | Bruk Document Intelligence asynkron API |
| **Ikke validere OCR-nøyaktighet** | Lav confidence score kan gi feil data downstream | Implementer quality gates (confidence > 0.80), human-in-the-loop for kritiske dokumenter |
| **Ignorere PII i OCR-output** | GDPR-brudd ved eksponering av persondata | Kombiner med Azure AI Language PII Detection |
| **Hardkode language-parameter** | Feilaktig språkdeteksjon i multispråklige scenarioer | La tjenesten auto-detektere, eller bruk language detection API først |
| **Ikke teste på reelle data** | Modellytelse varierer med dokumenttype og kvalitet | Kjør pilot med representative eksempler før produksjonssetting |
| **Overse on-premises alternativ** | For on-premises-krav (compliance, air-gapped) finnes Docker-container | Evaluer Read Docker container for on-premises deployment |
### Anbefalinger per modenhetsnivå
| Modenhetsnivå | Anbefaling |
|---------------|------------|
| **Starter (ingen OCR-erfaring)** | Start med Azure Vision v4.0 via Vision Studio for å teste kapabiliteter. Bruk AI Builder i Power Automate for enkel integrasjon. |
| **Utbygger (noe erfaring)** | Implementer Document Intelligence Read for dokumentbatch. Kombiner med Azure AI Search for søk. Bruk Logic Apps for orchestration. |
| **Avansert (enterprise-scale)** | Bygg custom OCR-pipeline med Azure Functions, Durable Functions for asynkron workflow, og Azure Monitor for observability. Vurder custom models for domain-spesifikk OCR. |
| **Ekspert (multi-region, compliance)** | Implementer multi-region deployment for high availability. Bruk Private Endpoints for nettverksisolering. Integrer med Azure Policy for compliance. Kombiner OCR med Azure OpenAI for intelligent document understanding. |
## Kilder og verifisering
### Microsoft Learn-kilder (fra MCP-research)
**Verified (hentet fra Microsoft Learn via MCP):**
1. **OCR Overview**: https://learn.microsoft.com/en-us/azure/ai-services/computer-vision/overview-ocr
2. **OCR for images (version 4.0)**: https://learn.microsoft.com/en-us/azure/ai-services/computer-vision/concept-ocr
3. **Call Azure Vision v3.2 GA Read API**: https://learn.microsoft.com/en-us/azure/ai-services/computer-vision/how-to/call-read-api
4. **Quickstart: Azure Vision v3.2 GA Read (Python)**: https://learn.microsoft.com/en-us/azure/ai-services/computer-vision/quickstarts-sdk/client-library
5. **Quickstart: Azure Vision v3.2 GA Read (REST API)**: https://learn.microsoft.com/en-us/azure/ai-services/computer-vision/quickstarts-sdk/client-library
6. **Data, privacy, and security for OCR**: https://learn.microsoft.com/en-us/azure/ai-foundry/responsible-ai/computer-vision/ocr-data-privacy-security
7. **Transparency note and use cases for OCR**: https://learn.microsoft.com/en-us/azure/ai-foundry/responsible-ai/computer-vision/ocr-transparency-note
8. **Capabilities and limitations of OCR**: https://learn.microsoft.com/en-us/azure/ai-foundry/responsible-ai/computer-vision/ocr-characteristics-and-limitations
9. **Image Analysis cognitive skill (AI Search)**: https://learn.microsoft.com/en-us/azure/search/cognitive-search-skill-image-analysis
10. **Tutorial: Vision with Azure AI services (Synapse)**: https://learn.microsoft.com/en-us/azure/synapse-analytics/machine-learning/tutorial-computer-vision-use-mmlspark
11. **Azure Vision Image Analysis Python SDK**: https://learn.microsoft.com/en-us/python/api/overview/azure/ai-vision-imageanalysis-readme
12. **Document Intelligence Read Model**: https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/prebuilt/read
**Konfidensnivå per seksjon:**
| Seksjon | Konfidensnivå | Kilde |
|---------|---------------|-------|
| Introduksjon | Verified | MCP microsoft_docs_search + microsoft_docs_fetch |
| Kjernekomponenter | Verified | MCP microsoft_docs_fetch (overview-ocr, concept-ocr) |
| Arkitekturmønstre | Baseline | Modellkunnskap + Best practices fra Microsoft Learn |
| Beslutningsveiledning | Verified | MCP microsoft_docs_search (ocr-characteristics-and-limitations) |
| Integrasjon med Microsoft-stakken | Verified | MCP microsoft_docs_search (AI Search skill, Synapse tutorial, code samples) |
| Offentlig sektor (Norge) | Baseline | Modellkunnskap + GDPR/WCAG-standarder |
| Kostnad og lisensiering | Baseline | Modellkunnskap (priser endres hyppig, sjekk Azure Pricing Calculator) |
| For arkitekten (Cosmo) | Baseline | Arkitekturveiledning basert på Microsoft Learn best practices |
**Merknad:** Alle tekniske detaljer om API-er, kapabiliteter, input-krav, språkstøtte, og JSON-responser er verifisert mot Microsoft Learn-dokumentasjon via MCP-research (februar 2026). Prisopplysninger er estimater og bør verifiseres mot Azure Pricing Calculator. Offentlig sektor-spesifikke anbefalinger er basert på norsk regulatorisk kontekst (GDPR, Offentlighetsloven, WCAG 2.1).