docs(architect): weekly KB update — 106 files refreshed (2026-04)
Updates across all 5 skills: ms-ai-advisor, ms-ai-engineering, ms-ai-governance, ms-ai-security, ms-ai-infrastructure. Key changes: - Language Services (Custom Text Classification, Text Analytics, QnA): retirement warning 2029-03-31, migration guides to Foundry/GPT-4o - Agentic Retrieval: 50M free reasoning tokens/month (Public Preview) - Computer Use: Claude Sonnet 4.5 (preview) + OpenAI CUA models - Agent Registry: Risks column (M365 E7), user-shared/org-published types - Declarative agents: schema v1.5 → v1.6, Store validation requirements - MLflow 3: 13 built-in LLM judges, production monitoring, Genie Code - AG-UI HITL: ApprovalRequiredAIFunction (C#) + @tool(approval_mode) (Python) - Entra ID Ignite 2025: Agent ID Admin/Developer RBAC roles, Conditional Access - Security Copilot: 400 SCU/month per 1000 M365 E5 licenses, auto-provisioned - Fast Transcription API: phrase lists, 14-language multi-lingual transcription - Azure Monitor Workbooks: Bicep support, RBAC specifics - Power Platform Copilot: data residency (Norway/Europe → EU DB, Bing → USA) - RAG security-rbac: 4-approach table (GA + 3 preview access control methods) - IaC MLOps: Well-Architected OE:05 principles, Bicep/Terraform patterns - Translator: image file batch translation Preview (JPEG/PNG/BMP/WebP) All 106 files: Last updated 2026-04 | Verified: MCP 2026-04 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
dda86449fa
commit
ff6a50d14f
104 changed files with 1986 additions and 520 deletions
|
|
@ -1,6 +1,6 @@
|
|||
# Agentic RAG Patterns — Agent-styrt retrieval
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04 | Verified: MCP 2026-04
|
||||
**Status:** GA (Semantic Kernel), Preview (Azure AI Search agentic retrieval)
|
||||
**Category:** RAG Architecture & Semantic Search
|
||||
|
||||
|
|
@ -285,3 +285,24 @@ agent = chat_client.as_agent(
|
|||
| AI Agent Design Patterns | **Verified** | [learn.microsoft.com](https://learn.microsoft.com/en-us/azure/architecture/ai-ml/guide/ai-agent-design-patterns) |
|
||||
| Semantic Kernel Agent Orchestration | **Verified** | [learn.microsoft.com](https://learn.microsoft.com/en-us/semantic-kernel/frameworks/agent/agent-orchestration/) |
|
||||
| Multi-agent performance (34% accuracy) | **Baseline** | Community source (ragaboutit.com) |
|
||||
|
||||
|
||||
### Azure AI Search Agentic Retrieval (Public Preview — oppdatert 2026-04)
|
||||
|
||||
Azure AI Search agentic retrieval er en managed multi-query pipeline for komplekse spørsmål i chat og copilot-apper:
|
||||
|
||||
**Funksjonalitet:**
|
||||
- LLM (gpt-4o/4.1/5-serien) bryter ned komplekse queries til fokuserte subqueries
|
||||
- Subqueries kjøres **parallelt** med semantisk reranking per query
|
||||
- Resultater slås sammen til ett grounding data-sett med query plan og source documents
|
||||
- Leser inn chat history for kontekstuell query planning
|
||||
|
||||
**Prising:**
|
||||
- Free plan: **50 millioner gratis reasoning tokens/mnd** (alle tiers)
|
||||
- Standard plan: pay-as-you-go etter fri kvote
|
||||
- Avhenger av semantic ranker (premium feature)
|
||||
|
||||
**Arkitektur:** Knowledge Base + Knowledge Source(s) + Azure OpenAI LLM + Azure AI Search index
|
||||
|
||||
**AI Agent Design Patterns (Azure Architecture Center):**
|
||||
Agentic RAG plasseres i et spektrum fra single model call → single agent with tools → multi-agent orchestration. Start med laveste nødvendige kompleksitetsnivå. Mønstre: sequential (pipeline), parallel fanout, supervisor, og autonomous loop. Multi-agent krever koordineringsoverhead og økt latency — bruk kun når single-agent RAG ikke er tilstrekkelig.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Azure AI Search - Configuration and Deployment
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04 | Verified: MCP 2026-04
|
||||
**Status:** GA
|
||||
**Category:** RAG Architecture & Semantic Search
|
||||
|
||||
|
|
@ -34,6 +34,10 @@ For offentlig sektor er Azure AI Search spesielt relevant fordi den støtter dat
|
|||
- **Semantic Ranker:** Kun Standard og høyere (S1+)
|
||||
- **Private Link:** Standard (S1+), Storage Optimized
|
||||
|
||||
|
||||
|
||||
> **SKU-oppdatering 2026-04:** Search services opprettet etter 3. april 2024 har større partisjoner og høyere vector kvoter på nesten alle tiers. Basic støtter 3 replicas for SLA. Standard (S1-S3) er standard valg. S3 HD er hosting mode for mange små indekser (multitenancy). Storage Optimized (L1/L2) gir lavere pris/TB for sjeldent oppdaterte, store indekser — med høyere query latency. Tier-bytte er nå mulig mellom Basic og Standard (S1/S2/S3) uten å gjenoppbygge indeksen fra scratch i mange tilfeller.
|
||||
|
||||
### Indekseringsstrategier
|
||||
|
||||
Azure AI Search støtter tre indekseringsmodeller:
|
||||
|
|
@ -462,3 +466,15 @@ Azure AI Search prises per **search unit** (SU = 1 partition × 1 replica).
|
|||
---
|
||||
|
||||
**For Cosmo:** Denne referansen brukes når kunden snakker om "RAG-implementasjon", "søkeløsning", "Azure AI Search setup", eller spør om SKU-valg. Kombiner med **RAG Core Patterns** for arkitekturveiledning og **Hybrid Search - Full-Text and Vector Combined** for query-optimalisering.
|
||||
|
||||
|
||||
### Hybrid Search (oppdatert 2026-04)
|
||||
|
||||
Hybrid search kombinerer full-text search og vector search i én enkelt forespørsel mot en søkeindeks med både tekstlig og vektorisert innhold:
|
||||
- Kjører full-text og vector search **parallelt**
|
||||
- Merger resultater med **Reciprocal Rank Fusion (RRF)**
|
||||
- Støtter filtrering, faceting, sortering, scoring profiles og semantic ranking i én request
|
||||
- `maxTextRecallSize` (preview) kontrollerer antall BM25-resultater inn til RRF-ranker (default 1000, max 10000)
|
||||
- Benchmark testing viser at hybrid retrieval med semantic ranker gir signifikant bedre søkerelevans enn enkelt-modalitet
|
||||
|
||||
**Query-struktur:** `search` for full-text, `vectorQueries` for vector (kan ha flere), valgfri `queryType=semantic` for L2-reranking.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Citation Tracking and Source Attribution
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04 | Verified: MCP 2026-04
|
||||
**Status:** GA (classic RAG), Preview (agentic retrieval)
|
||||
**Category:** RAG Architecture & Semantic Search
|
||||
|
||||
|
|
@ -292,3 +292,14 @@ result = groundedness_eval(
|
|||
- Norsk lovgivning (Forvaltningsloven, Offentleglova, Arkivloven)
|
||||
- Kostnadsoptimerings-anbefalinger
|
||||
- Modenhetsnivå-tabellen
|
||||
|
||||
|
||||
### Agentic Retrieval — Citation Tracking (oppdatert 2026-04)
|
||||
|
||||
Azure AI Search agentic retrieval (preview) returnerer et tre-delt svar som gjør citation tracking robust:
|
||||
|
||||
1. **Merged content** — samlet grounding data for LLM
|
||||
2. **Source references** — kildereferanser for inspeksjon og citation
|
||||
3. **Activity plan** — query execution-detaljer (subqueries, sources, parameters)
|
||||
|
||||
Agentic retrieval bruker LLM til å rive ned komplekse queries til subqueries som kjøres parallelt, med semantisk reranking av hvert delresultat. Dette gir bedre grounding data enn klassisk RAG for komplekse spørsmål. Source references med full provenance tracking støtter transparenskrav i norsk offentlig sektor.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Contextual Retrieval — Kontekstuell berikelse av chunks
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04 | Verified: MCP 2026-04
|
||||
**Status:** GA (custom skill pattern), Preview (agentic retrieval)
|
||||
**Category:** RAG Architecture & Semantic Search
|
||||
|
||||
|
|
@ -282,3 +282,18 @@ Hvis contextual retrieval reduserer irrelevante LLM-kall med 30%:
|
|||
| Custom skill interface (Azure AI Search) | **Verified** | [learn.microsoft.com](https://learn.microsoft.com/en-us/azure/search/cognitive-search-custom-skill-interface) |
|
||||
| Custom skill example (Python) | **Verified** | [learn.microsoft.com](https://learn.microsoft.com/en-us/previous-versions/azure/search/cognitive-search-custom-skill-python) |
|
||||
| Retrieval failure benchmarks | **Baseline** | Anthropic research, validert av Microsoft |
|
||||
|
||||
|
||||
### Custom Skill Interface (oppdatert 2026-04)
|
||||
|
||||
Custom skills integreres i Azure AI Search enrichment pipeline via `#Microsoft.Skills.Custom.WebApiSkill`.
|
||||
|
||||
**Interface-krav:**
|
||||
- HTTPS endpoint (Azure Functions, containers, eller annen Azure-hosted tjeneste)
|
||||
- Aksepterer JSON batch: `{"values": [{"recordId": "...", "data": {...}}, ...]}`
|
||||
- Returnerer JSON batch: `{"values": [{"recordId": "...", "data": {...}, "errors": [], "warnings": []}]}`
|
||||
- Timeout: default 30s, maks 230s (`PT230S`)
|
||||
- Autentisering: API-key i URI/header, eller managed identity med `authResourceId`
|
||||
|
||||
**Kontekstuell berikelse via custom skill:**
|
||||
Custom skills brukes for contextual retrieval der hver chunk berikes med kontekst fra omliggende tekst (f.eks. "Dette er fra kapittel 3 om sikkerhet..."). Custom skill kaller LLM med original dokument + chunk, og returnerer kontekstualisert chunk for bedre embedding-kvalitet.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# GraphRAG - Knowledge Graphs and Relationship Extraction
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04 | Verified: MCP 2026-04
|
||||
**Status:** Preview
|
||||
**Category:** RAG Architecture & Semantic Search
|
||||
|
||||
|
|
@ -23,7 +23,7 @@ GraphRAG-systemet består av flere integrerte lag som sammen muliggjør relasjon
|
|||
| Komponent | Beskrivelse | Microsoft-teknologi |
|
||||
|-----------|-------------|---------------------|
|
||||
| **Entity Extraction** | Identifiserer og trekker ut navngitte entiteter (personer, organisasjoner, lokasjoner) fra tekst | Azure AI Language Service (NER v3), GenAI Prompt skill |
|
||||
| **Relationship Graphs** | Representerer entiteter som nodes og relasjoner som edges i en graph-struktur | Azure Cosmos DB (graph API), Kusto Query Language (KQL) graph semantics |
|
||||
| **Relationship Graphs** | Representerer entiteter som nodes og relasjoner som edges i en graph-struktur | Azure Cosmos DB (graph API), Microsoft Fabric Graph (Labeled Property Graph — LPG model, Public Preview), Kusto Query Language (KQL) graph semantics |
|
||||
| **Graph Indexing** | Lagrer og indekserer graph-strukturen for effektiv traversal og søk | Azure Cosmos DB indexing, Azure AI Search (hybrid indexing) |
|
||||
| **Traversal Queries** | Søkemekanismer for å navigere graph-strukturen (pattern matching, shortest path, neighborhood search) | KQL `graph-match`, `graph-shortest-paths`, Labeled Property Graphs (LPG) |
|
||||
| **Entity Linking** | Forbinder ekstraherte entiteter med eksisterende knowledge bases (f.eks. Wikipedia) for normalisering og anrikning | Azure AI Language Entity Linking skill |
|
||||
|
|
@ -39,6 +39,8 @@ Entity extraction-prosessen transformerer ustrukturert tekst til strukturerte en
|
|||
|
||||
### Graph Database Modeller
|
||||
|
||||
> **Microsoft Fabric Graph (Preview):** Fabric Graph bruker Labeled Property Graph (LPG)-modellen for rask traversal og analytics. RDF-formatet støttes ikke. LPG egner seg for enterprise analytics og fraud detection der semantisk web-integrasjon ikke er nødvendig.
|
||||
|
||||
Microsoft Fabric og Azure støtter **Labeled Property Graphs (LPG)** som standard graph-modell:
|
||||
|
||||
- **Nodes (entiteter)**: Har labels (typer), properties (attributter) og unique IDs
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Hybrid Search - Full-Text and Vector Combined
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04 | Verified: MCP 2026-04
|
||||
**Status:** GA
|
||||
**Category:** RAG Architecture & Semantic Search
|
||||
|
||||
|
|
@ -223,3 +223,27 @@ Bruk `debug: "vector"` eller `debug: "semantic"` i API-kallet for å pakke ut su
|
|||
### Baseline (modellkunnskap)
|
||||
- Kostnadsoptimerings-tips basert på generell Azure-erfaring
|
||||
- Offentlig sektor-anbefalinger basert på norsk kontekst
|
||||
|
||||
|
||||
### Hybrid Search — Konfigurasjon og Tuning (oppdatert 2026-04)
|
||||
|
||||
**Anbefalt startpunkt:** Balanced hybrid med `k=30-50`, `top=10-20`, semantic ranking etter relevans-test.
|
||||
|
||||
**maxTextRecallSize (preview):** Kontrollerer BM25-bidrag til RRF
|
||||
- Default: 1000, Max: 10000
|
||||
- Reduser hvis vector dominerer; øk for store indekser der default ikke gir nok dekning
|
||||
- `countAndFacetMode: "countRetrievableResults"` scope-r teller til maxTextRecallSize-vinduet
|
||||
|
||||
**Ytelsesmønstre:**
|
||||
- Recall-first: øk `maxTextRecallSize` gradvis
|
||||
- Precision-first: lav `k` og `top`, unngå unødvendig semantic ranker
|
||||
|
||||
**Filter-moduser i hybrid:**
|
||||
- `preFilter` (default) — filtrerer FØR query, reduserer søkerom for begge subqueries
|
||||
- `postFilter` — filtrerer ETTER, men kan gi <50 docs til semantic ranker
|
||||
- `strictPostFilter` (preview) — strengeste modus, ikke anbefalt med semantic ranker
|
||||
- `filterOverride` (preview) — per-vectorQuery filter, overstyrer globalt filter
|
||||
|
||||
**SDK-støtte:** Python (`azure-search-documents`), C# (`Azure.Search.Documents`), Java, JavaScript.
|
||||
|
||||
**API-versjoner:** `2025-09-01` (stable), `2025-11-01-preview` (maxTextRecallSize, filterOverride, etc.)
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Metadata Management and Filtered Search
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04 | Verified: MCP 2026-04
|
||||
**Status:** GA
|
||||
**Category:** RAG Architecture & Semantic Search
|
||||
|
||||
|
|
@ -523,3 +523,28 @@ $filter=personalDataCategories/any(c: c eq 'Helseopplysninger') and legalBasis n
|
|||
|
||||
**For Cosmo:**
|
||||
Metadata management er ofte undervurdert i RAG-prosjekter. Kunder fokuserer på embeddings og vector search, men glemmer at 70% av queries i produksjon inneholder strukturerte filter-kriterier ("bare fra min avdeling", "kun siste år", "høyeste klassifikasjon"). Design metadata-schema tidlig, test med reelle cardinality-tall, og prioritér normalizers og security trimming fra dag 1. I offentlig sektor er compliance non-negotiable — bygg audit trail og retention policies inn fra start.
|
||||
|
||||
|
||||
### OData Filter Syntax (oppdatert 2026-04)
|
||||
|
||||
Azure AI Search bruker OData `$filter`-syntaks for metadata-filtrering:
|
||||
|
||||
**Operatorer:**
|
||||
- Sammenligning: `eq`, `ne`, `gt`, `lt`, `ge`, `le`
|
||||
- Logisk: `and`, `or`, `not` (høyest presedens: `not` > sammenlignings-ops > `and` > `or`)
|
||||
- Samling: `any()`, `all()` for collection-felt
|
||||
- Geo-spatial: `geo.distance()`, `geo.intersects()`
|
||||
- Full-text i filter: `search.ismatch()`, `search.ismatchscoring()`
|
||||
- Effektiv liste-matching: `search.in(field, "val1,val2", ",")`
|
||||
|
||||
**Viktig:** `search.in()` teller som én klausul (bedre enn lange OR-kjeder for filter size limits).
|
||||
|
||||
**Eksempel — sikkerhetstrimming:**
|
||||
```odata
|
||||
$filter=search.in(UserGroup, "GroupA,GroupB", ",")
|
||||
```
|
||||
|
||||
**Hybrid search med filter:**
|
||||
- `preFilter` (default) — anvendes FØR query execution, reduserer søkerom
|
||||
- `postFilter` — anvendes ETTER, trimmer resultater (bedre med semantic ranker)
|
||||
- `filterOverride` (preview) — per-vectorQuery filter som overstyrer globalt filter
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Multi-Index Federation and Cross-Search
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04 | Verified: MCP 2026-04
|
||||
**Status:** GA (single-index), Not supported (native cross-index)
|
||||
**Category:** RAG Architecture & Semantic Search
|
||||
|
||||
|
|
@ -16,6 +16,10 @@ For scenarioer der data logisk tilhører separate indekser (ulike skjemaer, comp
|
|||
|
||||
**Viktig funn:** Microsofts offisielle FAQ sier eksplisitt: *"Can I search across multiple indexes? No. A query is always scoped to a single index."*
|
||||
|
||||
**Multi-region støtte:** Azure AI Search er en single-region service, men du kan oppnå høyere reliability ved å deploye identiske search services i flere regioner. Data synkroniseres via push eller pull (indexer) APIer. Load balancing håndteres av Azure Front Door, Traffic Manager, eller Application Gateway. Data residency: innhold lagres i regionen du velger, uten kryssregional dataflyt uten eksplisitt autorisasjon.
|
||||
|
||||
**Multi-vector fields (Preview):** Azure AI Search støtter nå multiple vektorer i ett dokumentfelt via `Collection(Edm.ComplexType)` — opp til 100 vektorer per dokument. Nyttig for multimodal data og lange dokumenter. `perDocumentVectorLimit`-parameteren kontrollerer antall matchende vektorer per dokument i query-resultater.
|
||||
|
||||
## Kjernekomponenter
|
||||
|
||||
### Hvorfor Azure AI Search ikke støtter cross-index queries
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# Multimodal RAG — Bilder, tabeller og dokumenter i RAG
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04 | Verified: MCP 2026-04
|
||||
**Status:** GA (Document Intelligence, Content Understanding), Preview (multimodal embeddings)
|
||||
**Category:** RAG Architecture & Semantic Search
|
||||
|
||||
|
|
@ -309,3 +309,17 @@ chartFormat=markdown
|
|||
| Multimodal RAG with Vision (ISE DevBlog) | **Verified** | [devblogs.microsoft.com](https://devblogs.microsoft.com/ise/multimodal-rag-with-vision/) |
|
||||
| RAG Time Journey 4: Advanced Multimodal Indexing | **Verified** | [techcommunity.microsoft.com](https://techcommunity.microsoft.com/blog/azure-ai-foundry-blog/rag-time-journey-4-advanced-multimodal-indexing/4397300) |
|
||||
| Azure-Samples/multimodal-rag-code-execution | **Baseline** | [github.com](https://github.com/Azure-Samples/multimodal-rag-code-execution) |
|
||||
|
||||
|
||||
### Azure AI Search Multimodal Pipeline (oppdatert 2026-04)
|
||||
|
||||
Azure AI Search multimodal pipeline (GA) støtter nå en fullstendig 5-stegs prosess:
|
||||
1. **Ekstraksjon** — Document Extraction, Document Layout, eller Content Understanding skill
|
||||
2. **Tekst-chunking** — Text Split skill for håndterbare biter
|
||||
3. **Bildebeskriving** — GenAI Prompt skill verbaliserer bilder via LLM
|
||||
4. **Embedding** — Azure OpenAI, Microsoft Foundry, eller Azure Vision embedding
|
||||
5. **Bildestoring** — Knowledge store lagrer ekstraherte bilder for annotation i klientapp
|
||||
|
||||
Hybrid queries kombinerer full-text search, vector search, og semantic ranking for å svare på spørsmål der svaret befinner seg i et innebygd diagram i en PDF.
|
||||
|
||||
**Querytidsstøtte:** GenAI Prompt skill-baserte pipelines støtter hybrid queries over tekst og verbaliserte bilder. For bilde-til-vektor-queries (søk med bilde som input), bruk Azure Vision multimodal embedding skill med en tilsvarende vectorizer.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# RAG Caching and Performance Optimization
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04 | Verified: MCP 2026-04
|
||||
**Status:** GA
|
||||
**Category:** RAG Architecture & Semantic Search
|
||||
|
||||
|
|
@ -503,3 +503,23 @@ cache_key = f"user:{user_id}:tenant:{tenant_id}:query_hash:{hash(prompt)}"
|
|||
**Totalt antall kilder:** 9 unike Microsoft Learn URLer
|
||||
**MCP calls:** 6 (4 docs_search + 2 docs_fetch + 1 code_sample_search)
|
||||
**Sist verifisert:** 2026-02-03
|
||||
|
||||
|
||||
### Azure Managed Redis — Arkitektur (oppdatert 2026-04)
|
||||
|
||||
Azure Managed Redis (basert på Redis Enterprise) er anbefalt for AI-workloads vs. Azure Cache for Redis (community edition):
|
||||
|
||||
| Egenskap | Azure Cache for Redis | Azure Managed Redis |
|
||||
|---------|----------------------|---------------------|
|
||||
| Threading | Single-threaded | Multi-threaded (Redis Enterprise) |
|
||||
| Arkitektur | Primary + replica (2 nodes) | Multiple shards per node, distributed primaries |
|
||||
| Performance | Begrenset av single thread | Nær-lineær skalering med vCPUs |
|
||||
| Clustering | Valgfritt | Alltid aktivert (OSS, Enterprise, eller Non-Clustered policy) |
|
||||
| Active geo-replication | Nei | Ja |
|
||||
|
||||
**Cluster policies:**
|
||||
- **OSS policy** — anbefalt for de fleste. Klienten kobles direkte til shards, laveste latency, best throughput
|
||||
- **Enterprise policy** — enkelt endpoint, bakoverkompatibelt, men enkelt-node proxy kan bli bottleneck. Påkrevd for RediSearch
|
||||
- **Non-Clustered** — kun ≤25 GB, for migrering fra ikke-shardede miljøer
|
||||
|
||||
**Flash Optimized tier:** 20% RAM + 80% NVMe Flash. Optimal for read-heavy workloads med subset av hot keys.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# RAG Core Patterns and Architecture
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04 | Verified: MCP 2026-04
|
||||
**Status:** GA
|
||||
**Category:** RAG Architecture & Semantic Search
|
||||
|
||||
|
|
@ -417,3 +417,25 @@ results = search_client.search(
|
|||
---
|
||||
|
||||
**For Cosmo:** Når kunde spør om RAG, start med "Naive vs Advanced vs Agentic"-beslutningstreet. Identifiser data source, query complexity, og latency-krav først. Hvis offentlig sektor: alltid spør om GDPR/Schrems II/AI Act compliance før du foreslår arkitektur. Hvis customer mangler evaluation strategy: stopp og definer retrieval recall/precision targets før du går videre med implementation.
|
||||
|
||||
|
||||
### Hybrid Search — Kjernemønster (oppdatert 2026-04)
|
||||
|
||||
Hybrid search er standardmønsteret for RAG i Azure AI Search:
|
||||
|
||||
```json
|
||||
{
|
||||
"search": "historisk hotell nær restauranter",
|
||||
"vectorQueries": [{"kind": "vector", "vector": [...], "k": 50, "fields": "DescriptionVector"}],
|
||||
"queryType": "semantic",
|
||||
"semanticConfiguration": "my-semantic-config"
|
||||
}
|
||||
```
|
||||
|
||||
**Hvorfor hybrid:**
|
||||
- Vector search: finner konseptuelt like dokumenter uten nøyaktige nøkkelord-treff
|
||||
- Full-text search: presis matching for produktkoder, navn, datoer
|
||||
- RRF merger: normaliserer scores fra BM25 og HNSW/eKNN
|
||||
- Semantic ranker (L2): re-ranker opp til 50 resultater med maskinlesningsforståelse
|
||||
|
||||
**Best practice:** Sett `k=50` ved bruk av semantic ranker.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Document Preprocessing and Pipeline Automation
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04 | Verified: MCP 2026-04
|
||||
**Status:** GA
|
||||
**Category:** RAG Architecture & Semantic Search
|
||||
|
||||
|
|
@ -776,3 +776,15 @@ Images (JPEG/PNG)?
|
|||
**Totalt antall MCP-kilder:** 3 docs_search calls + 2 docs_fetch calls = **5 MCP-kall**
|
||||
**Totalt antall unike URLer:** 8 Microsoft Learn-artikler + 4 GitHub-repos = **12 kilder**
|
||||
**Konfidensnivå totalt:** 95% Verified (fra MCP), 5% Baseline (norske forhold og priser)
|
||||
|
||||
|
||||
### Kognitiv søk — bildeprosessering (oppdatert 2026-04)
|
||||
|
||||
Azure AI Search støtter tre tilnærminger til bildeinnhold i RAG:
|
||||
1. **Vektorisering** — Azure Vision genererer bildere presentasjoner som søkbare vektorer
|
||||
2. **Verbalisering** — GenAI Prompt skill sender bilde til LLM-chat-modell for naturlig tekstbeskrivelse (bedre for RAG-grounding)
|
||||
3. **Analyse/OCR** — Image Analysis skill (tags, description) og OCR skill (tekst fra bilder)
|
||||
|
||||
`imageAction: generateNormalizedImages` er påkrevd for bildebehandling. Maks 1000 bilder ekstraheres per dokument. Kostnader påløper ved `imageAction != none`.
|
||||
|
||||
**Skillset tutorial (oppdatert):** Skillsets bygges med OCR, språkdeteksjon, entity recognition og key phrase extraction i pipeline. Output field mappings mapper enriched document tree til søkeindeksfelt.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# RAG Hallucination Mitigation Strategies
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04 | Verified: MCP 2026-04
|
||||
**Status:** GA
|
||||
**Category:** RAG Architecture & Semantic Search
|
||||
|
||||
|
|
@ -400,3 +400,22 @@ Hvis AI-systemet gir feil informasjon som fører til skade:
|
|||
|
||||
**Sist verifisert:** 2026-02-03
|
||||
**Neste revisjon:** 2026-05 (eller ved oppdatering av Azure AI Content Safety API)
|
||||
|
||||
|
||||
### Azure AI Content Safety — Groundedness Detection (oppdatert 2026-04)
|
||||
|
||||
**Breaking change:** API-feltnavn er endret:
|
||||
- `correction` → `mitigating` (deteksjons-modus)
|
||||
- `correctedText` → `correctionText` (output-felt med korrigert tekst)
|
||||
|
||||
**Deteksjonsmoduser:**
|
||||
- **Non-Reasoning mode** — rask binær deteksjon (grounded/ungrounded), lav latency for produksjon
|
||||
- **Reasoning mode** — detaljerte forklaringer på ungrounded segmenter, bruk under utvikling/debugging
|
||||
|
||||
**Domenestøtte:** `MEDICAL` (medisinsk/vitenskapelig) og `GENERIC` (generelt formål)
|
||||
|
||||
**Task typer:** `Summarization` og `QnA`
|
||||
|
||||
**Grounding correction (preview):** API kan automatisk korrigere ikke-grounded tekst basert på dine grounding sources. Respons inkluderer `correctionText`-felt med korrigert innhold.
|
||||
|
||||
**Begrensninger:** Kun engelsk tekst støttes. Tilgjengelig i utvalgte Azure-regioner.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Iterative RAG and Multi-Turn Refinement
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04 | Verified: MCP 2026-04
|
||||
**Status:** GA
|
||||
**Category:** RAG Architecture & Semantic Search
|
||||
|
||||
|
|
@ -439,3 +439,25 @@ public async Task ApplyRetentionPolicyAsync()
|
|||
**Forfatter:** Cosmo Skyberg (AI Architect)
|
||||
**For:** KTG Microsoft AI Architect Plugin
|
||||
**MCP Research:** microsoft-learn (4 searches, 2 fetches), microsoft-code-samples (1 search)
|
||||
|
||||
|
||||
### .NET AI IChatClient-interface (oppdatert 2026-04)
|
||||
|
||||
`IChatClient` er .NET-standarden for interaksjon med AI chat services (Microsoft.Extensions.AI). Støtter stateless og stateful samtaler, tool calling, streaming, caching, og OpenTelemetry.
|
||||
|
||||
```csharp
|
||||
// Stateful iterativ RAG med IChatClient
|
||||
List<ChatMessage> history = [];
|
||||
while (true) {
|
||||
history.Add(new(ChatRole.User, userInput));
|
||||
ChatResponse response = await client.GetResponseAsync(history);
|
||||
history.AddMessages(response); // akkumulerer kontekst
|
||||
}
|
||||
```
|
||||
|
||||
**Viktige egenskaper:**
|
||||
- `ConversationId` støtter stateful tjenester (slipper å sende full historikk)
|
||||
- `FunctionInvokingChatClient` gir automatisk tool invocation for agentic loops
|
||||
- `DistributedCachingChatClient` wrapper cacher identiske historikker
|
||||
- `ChatHistoryTruncationReducer` / `ChatHistorySummarizationReducer` håndterer context window limits
|
||||
- Pipeline-komposisjon: `ChatClientBuilder` stacker cache, tool invocation, og telemetri
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Query Understanding and Expansion
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04 | Verified: MCP 2026-04
|
||||
**Status:** GA
|
||||
**Category:** RAG Architecture & Semantic Search
|
||||
|
||||
|
|
@ -576,3 +576,22 @@ Multi-Query RAG med 3 varianter = ~3x søkekostnad + 1 LLM-kall for generering.
|
|||
- **ROI-tall (15-30% precision improvement):** Baseline — industry benchmarks, ikke Microsoft-spesifikk data
|
||||
|
||||
**Totalt antall kilder:** 7 Microsoft Learn URLer (Verified) + 1 GitHub repo (Verified) = 8 kilder
|
||||
|
||||
|
||||
### Simple Query Syntax for RAG (oppdatert 2026-04)
|
||||
|
||||
Azure AI Search simple query syntax er default parser for full-text søk i RAG:
|
||||
|
||||
**Boolske operatorer (tegn-basert):**
|
||||
- `+` — AND (påkrevd term)
|
||||
- `|` — OR (alternativ term)
|
||||
- `-` — NOT (ekskluder term) — `searchMode=all` anbefales for presis NOT-atferd
|
||||
|
||||
**Prefix queries:** `lingui*` — matcher "linguistic", "linguini" etc.
|
||||
|
||||
**Phrase search:** `"eksakt frase"` — krever eksakt ordrekkefølge
|
||||
|
||||
**Begrensninger:** Ingen fuzzy search, ingen suffix/infix wildcard (bruk full Lucene syntax for det).
|
||||
|
||||
**Bruk i RAG query expansion:**
|
||||
Simple syntax egner seg for keyword-delen av hybrid queries. For agentic RAG bruker LLM query planning til å generere fokuserte subqueries som kombinerer full-text + vector search parallelt.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# RAG Security - RBAC, Filtering, and Access Control
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04 | Verified: MCP 2026-04
|
||||
**Status:** Preview (native ACL/RBAC), GA (security filters)
|
||||
**Category:** RAG Architecture & Semantic Search
|
||||
|
||||
|
|
@ -531,3 +531,24 @@ Authorization: Bearer <user-token>
|
|||
**GA features:** Security filters (alle API-versjoner)
|
||||
|
||||
**Note:** Preview features kan endre seg. Konsulter alltid nyeste dokumentasjon før produksjon.
|
||||
|
||||
|
||||
### Dokumentnivå-tilgangskontroll — oppdatering 2026-04
|
||||
|
||||
**4 tilnærminger (oppdatert):**
|
||||
|
||||
| Tilnærming | Status | Beskrivelse |
|
||||
|-----------|--------|-------------|
|
||||
| **Security filters** | GA | String-sammenligning med `search.in()` — API-agnostisk |
|
||||
| **POSIX-like ACL/RBAC scopes** | Preview | Microsoft Entra ID-autentisering mot dokument-ACLer (ADLS Gen2) |
|
||||
| **Microsoft Purview sensitivity labels** | Preview | Entra-token + Purview policy enforced ved query-tid |
|
||||
| **SharePoint M365 ACLs** | Preview | SharePoint-tilganger ekstraheres av indexer og håndheves ved søk |
|
||||
|
||||
**ADLS Gen2 ACL/RBAC (preview):**
|
||||
- RBAC: container-nivå (grov tilgangskontroll for alle dokumenter i container)
|
||||
- ACL: fil/mappe-nivå (finkornet per-dokument tilgangskontroll)
|
||||
- ABAC: **ikke støttet** i Azure AI Search
|
||||
- Tilgangsevaluering: RBAC sjekkes først, deretter ACL. Tilgang gis om én av dem tillater det
|
||||
- Permissions synkroniseres ved: første full indexer-kjøring, nye dokumenter, eller manuell trigger via `/resync` (preview)
|
||||
|
||||
**Query-enforcement:** `x-ms-query-source-authorization`-header med Entra-token aktiverer automatisk trimming.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Semantic Ranker and Reranking Models
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04 | Verified: MCP 2026-04
|
||||
**Status:** GA (core), Preview (query rewrite, prerelease models)
|
||||
**Category:** RAG Architecture & Semantic Search
|
||||
|
||||
|
|
@ -276,3 +276,25 @@ Preview-funksjon (2025) som integrerer iterativ søk med semantic ranking.
|
|||
### Baseline (modellkunnskap)
|
||||
- Cross-encoder-eksempler basert på Sentence Transformers-dokumentasjon
|
||||
- Offentlig sektor-anbefalinger basert på norsk kontekst
|
||||
|
||||
|
||||
### Semantic Ranker i Hybrid Search (oppdatert 2026-04)
|
||||
|
||||
Semantic ranker (L2 reranking) fungerer optimalt i hybrid search-kontekst:
|
||||
|
||||
- Aksepterer opp til **50 resultater** fra RRF-merger som input
|
||||
- Bruker maskinlesningsforståelse (MRC) for å re-ranke basert på semantisk relevans
|
||||
- `@search.rerankerScore` erstatter `@search.score` som primær rankingmetrikk
|
||||
- Valgfritt: `captions` (ekstraktiv) og `answers` (ekstraktiv) fra verbatim tekst
|
||||
|
||||
**Konfigurasjon:**
|
||||
```json
|
||||
{
|
||||
"queryType": "semantic",
|
||||
"semanticConfiguration": "min-konfig",
|
||||
"captions": "extractive",
|
||||
"answers": "extractive"
|
||||
}
|
||||
```
|
||||
|
||||
**Viktig:** Sett `k=50` i vectorQueries — semantic ranker trenger tilstrekkelig input. Pre-filtre som er for strenge kan redusere antall input-dokumenter og svekke reranking-kvaliteten.
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Vector Indexing - Techniques and Configuration
|
||||
|
||||
**Last updated:** 2026-02
|
||||
**Last updated:** 2026-04 | Verified: MCP 2026-04
|
||||
**Status:** GA (Hybrid search), Preview (Scalar quantization)
|
||||
**Category:** RAG Architecture & Semantic Search
|
||||
|
||||
|
|
@ -410,3 +410,18 @@ Azure AI Search krever ingen spesifikk Microsoft 365-lisens, men:
|
|||
- [Semantic ranking in Azure AI Search](https://learn.microsoft.com/en-us/azure/search/semantic-search-overview) — **Verified** (2025-11)
|
||||
|
||||
**Konfidensnivå:** Verified (90%) — All info basert på offisiell Microsoft-dokumentasjon og prising per feb 2026.
|
||||
|
||||
|
||||
### Vector Indexing i Hybrid Search-kontekst (oppdatert 2026-04)
|
||||
|
||||
Vector fields og tekstfelt coeksisterer i hybrid search-indekser:
|
||||
|
||||
- **HNSW** (Hierarchical Navigable Small World) — standard ANN-algoritme, `efSearch` og `maxConnections` tunable
|
||||
- **eKNN** (exhaustive K-Nearest Neighbors) — fullstendig søk, brukes med `"exhaustive": true` i query
|
||||
- **Multi-vector fields (preview)** — `Collection(Edm.ComplexType)` støtter opp til 100 vektorer per dokument
|
||||
- `perDocumentVectorLimit: 1` — én vektor per dokument i resultater
|
||||
- `perDocumentVectorLimit: 0` — ubegrenset (alle matchende vektorer)
|
||||
- Nyttig for multimodal data (scene embeddings i video, fragmenter i lange dokumenter)
|
||||
|
||||
**Tuning ved overbelastning:**
|
||||
Reduser `efSearch` (f.eks. 800 → 128-192) og `maxConnections` (64 → 32) FØR du skalerer ut med flere replicas. Hybrid queries med aggressive vector-innstillinger + semantic ranker øker CPU/minne-press betydelig.
|
||||
Loading…
Add table
Add a link
Reference in a new issue