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>
27 KiB
Language Services - Question Answering and Knowledge Mining
Last updated: 2026-04 | Verified: MCP 2026-04 Status: GA — avvikles 31. mars 2029
ADVARSEL — TJENESTE AVVIKLES: Custom Question Answering (CQA) avvikles 31. mars 2029. Migrer til Azure AI Foundry-baserte løsninger: Agentic Retrieval, Azure AI Search + GPT-4o RAG-pipeline, eller AI Foundry Knowledge Retrieval. Se migrasjonsveiledning for detaljer. Category: Azure AI Services (Foundry Tools)
Introduksjon
Custom Question Answering (CQA) er en cloud-basert Natural Language Processing (NLP)-tjeneste innenfor Azure AI Language som gjør det enkelt å bygge kunnskapsbaser for conversational AI-applikasjoner. Tjenesten lar deg automatisk ekstrahere spørsmål-og-svar-par fra FAQer, manualer, PDF-dokumenter og nettsider, og gjøre dem tilgjengelige gjennom REST APIs for chatboter, virtuelle assistenter og kundeserviceløsninger.
CQA er etterfølgeren til den utfasede QnA Maker-tjenesten (retired mars 2025) og representerer en modernisert arkitektur med tettere integrasjon i Azure AI Language-stacken. I motsetning til QnA Maker, som var en separat service, er CQA en feature innenfor Language resource og deler infrastruktur med andre språktjenester som sentiment analysis, entity recognition og conversational language understanding.
For organisasjoner som allerede har QnA Maker knowledge bases er det en strukturert migreringssti via export/import av TSV-filer til CQA-prosjekter. Tjenesten støtter 53 språk inkludert norsk, og bruker transformer-baserte rankeringsmodeller for semantisk forståelse av brukerforespørsler.
Kjernekomponenter
Arkitektur og ressurskrav
CQA er avhengig av to Azure-ressurser som samarbeider:
| Ressurs | Formål | Konfigurasjon |
|---|---|---|
| Language resource | Hosting av authoring/publishing APIs, ranking runtime, telemetri | Foundry Tools type, S-tier anbefalt for produksjon |
| Azure AI Search | Lagring av QnA-par, initial ranking (ranker #1) | S1-tier for 10 TPS throughput-cap |
Viktig: Azure AI Search indexer brukes strukturert:
- N-1 indexes for single-language prosjekter (f.eks. 14 prosjekter på en tier med 15 indexes)
- N/2 indexes for multi-language prosjekter (f.eks. 7 prosjekter på samme tier)
- Index 15 (siste) er reservert for authoring og testing på tvers av alle prosjekter
To-trinns ranking-arkitektur
User Query → Azure AI Search (Ranker #1) → Transformer-based NLP Reranker (Ranker #2) → Svar med confidence score
- Ranker #1 (Azure AI Search): Keyword-basert søk i spørsmål og svar, fuzzy matching, multilingual analyzers
- Ranker #2 (Deep Learning): Semantisk forståelse, kontekstuell relevans, confidence scoring (0.0-1.0)
Utviklingsalternativer
| Alternativ | Bruksområde | Fordeler |
|---|---|---|
| Microsoft Foundry (classic) | Low-code authoring via Language Studio | Automatisk QnA-ekstraksjon, markdown-editor, chit-chat presets |
| REST APIs | Programmatic management | Authoring API (prosjekt/sources CRUD), Runtime API (query execution) |
| .NET SDK | C# integration | Azure.AI.Language.QuestionAnswering (runtime), authoring package tilgjengelig |
| Python SDK | Python integration | azure-ai-language-questionanswering (runtime og authoring) |
Kodeeksempel (C# runtime query):
using Azure;
using Azure.AI.Language.QuestionAnswering;
Uri endpoint = new Uri("https://{resource-name}.cognitiveservices.azure.com/");
AzureKeyCredential credential = new AzureKeyCredential("{api-key}");
QuestionAnsweringClient client = new QuestionAnsweringClient(endpoint, credential);
QuestionAnsweringProject project = new QuestionAnsweringProject("kb-name", "production");
Response<AnswersResult> response = client.GetAnswers("How long should my Surface battery last?", project);
foreach (KnowledgeBaseAnswer answer in response.Value.Answers)
{
Console.WriteLine($"A: {answer.Answer}");
Console.WriteLine($"Confidence: {answer.Confidence:P2}");
}
Nøkkelegenskaper
1. Knowledge Base Creation
Støttede kilder:
- URLs: FAQs, produktsider, support-dokumenter (automatisk HTML-parsing)
- Filer: PDF, DOCX, TSV, Excel (strukturert og semi-strukturert ekstraksjon)
- Manuelt: Direkte redigering av spørsmål-svar-par i Language Studio
Ekstraksjonslogikk:
- Identifiserer overskrifter, punktlister, tabeller
- Bygger QnA-relasjoner fra seksjonsstrukturer
- Støtter markdown-formatering i svar
Begrensninger:
- Ingen hard limit på antall dokumenter per prosjekt
- Praktisk anbefaling: 50-100 dokumenter for optimal ytelse
- Dokumentstørrelse: Max 25 GB per S-tier prosjekt
2. Multi-Turn Conversations
Guided conversation flows der et svar kan inneholde follow-up prompts:
{
"answer": "We have three subscription tiers.",
"prompts": [
{"displayText": "Tell me about Basic tier", "qnaId": 42},
{"displayText": "Compare with Premium", "qnaId": 43}
]
}
Implementering:
- Defineres via "context" i REST API (
previousQnAId) - Automatisk boosting av child/sibling/grandchild QnAs
- Hierarkisk prioritering i ranking
3. Metadata Filtering
Tag svar med key-value pairs for kontekstuell filtrering:
| Metadata-eksempel | Use case |
|---|---|
Location: Oslo |
Geografisk filtrering av svar |
Department: IT |
Avdelingsbasert content |
Freshness: 2026-Q1 |
Dato-basert relevans |
editorial:chitchat |
System tag for chit-chat svar |
API usage:
var filters = new QueryFilters { MetadataFilter = new MetadataFilter { Metadata = [("Location", "Oslo")] } };
4. Active Learning
Automatisk forbedring basert på brukermønstre:
- Tracker hvilke spørsmål som ikke matcher godt (lav confidence)
- Foreslår alternative questions for eksisterende QnA-par
- Krever at client applications sender feedback via telemetri
Best practice: Implementer feedback loop i chatbot-logikk ved confidence < 0.5.
5. Chit-Chat Integration
Forhåndsdefinerte personality datasets:
| Personality | Tone | Bruksområde |
|---|---|---|
| Professional | Formell, business-fokusert | Bedrifts-chatboter |
| Friendly | Varm, personlig | Kundeservice |
| Witty | Humoristisk, leken | Consumer apps |
| Caring | Empatisk, støttende | Helserelaterte tjenester |
| Enthusiastic | Energisk, positiv | Sales-orienterte bots |
Installering: Language Studio → Manage Sources → Add chit-chat → Velg personality
Arkitekturmønstre
Mønster 1: FAQ-Bot (Single Domain)
Scenario: Enkel kundeservice-bot for ett produktområde.
Arkitektur:
User → Bot Framework (C#/Node) → CQA REST API → Single Knowledge Base → Response
Konfigurasjon:
- Én Language resource med én knowledge base
- Azure AI Search Basic tier (50 MB, opp til 10K spørsmål)
- Bot Framework SDK med
Microsoft.Bot.Builder.AI.QnApackage
Fordeler:
- Enkel deployment
- Lav kostnad (kan bruke Free tier for testing)
- Rask time-to-value
Ulemper:
- Skalerer ikke til enterprise-nivå
- Ingen metadata-basert routing mellom domener
Når velge: Prototype, MVP, single-product FAQ.
Mønster 2: Multi-Domain Knowledge Base (Metadata Routing)
Scenario: Organisasjon med flere produkter/avdelinger som deler én bot.
Arkitektur:
User → Bot (Middleware) → Metadata tagging → CQA API (filtered query) → KB → Response
Konfigurasjon:
- Single knowledge base med metadata tags per domene
- Bot middleware identifiserer user context (f.eks. fra chat history)
- Sender
strictFiltersellermetadataFilteri API-kallet
Eksempel:
var filters = new QueryFilters {
StrictFiltersCompoundOperationType = StrictFiltersCompoundOperationType.And,
MetadataFilter = new MetadataFilter {
Metadata = [("Product", "Surface"), ("Language", "NO")]
}
};
Fordeler:
- Single source of truth
- Enklere vedlikehold enn separate KBs
Ulemper:
- Kan bli uoversiktlig ved >5 domener
- Performance-utfordringer ved veldig store KBs (>100K QnA-par)
Når velge: 3-10 relaterte produkter, felles customer support.
Mønster 3: Hierarchical Knowledge Mining (Orchestrator Pattern)
Scenario: Enterprise med mange separate knowledge domains, ulike compliance-krav per område.
Arkitektur:
User → Bot Framework Composer → Orchestrator (LUIS/CLU intent) → Routing logic
↓
KB-Finance KB-HR KB-IT KB-Legal (separate Language resources)
Konfigurasjon:
- Conversational Language Understanding (CLU) for intent classification
- Separate CQA projects per compliance boundary
- Aggregator-service som samler svar fra flere KBs
Fordeler:
- Compliance isolation (GDPR, security levels)
- Skalerbarhet til 100+ knowledge bases
- Uavhengige deployment cycles per domene
Ulemper:
- Høyere kompleksitet
- Kostnad for orchestrator-layer
- Krever advanced bot development
Når velge: Enterprise, regulated industries, >10 separate domains.
Beslutningsveiledning
Når velge CQA fremfor andre alternativer
| Scenario | CQA | Azure OpenAI + RAG | Custom NLP-modell |
|---|---|---|---|
| FAQ over strukturert innhold | ✅ Optimal | ⚠️ Overkill | ❌ For komplekst |
| Unstructured document search | ⚠️ Fungerer, men begrensninger | ✅ Bedre accuracy | ⚠️ Kostnad |
| Conversational multi-turn | ✅ Built-in support | ✅ Via orchestration | ❌ Manuell håndtering |
| Compliance (data residency) | ✅ Regional deployment | ✅ Regional deployment | ✅ On-prem mulig |
| Budget < 10K NOK/måned | ✅ Ja | ⚠️ Token costs | ❌ Utviklingskostnad |
Beslutningstre:
Er innholdet strukturert (FAQ, manual)?
├─ Ja → Trenger du generativ AI-svar (omskrivning, sammendrag)?
│ ├─ Ja → Azure OpenAI + RAG
│ └─ Nei → CQA (lavere kostnad, enklere)
└─ Nei → Er det unstructured documents (kontrakter, rapporter)?
├─ Ja → Azure AI Search + Semantic Ranker eller OpenAI
└─ Nei → Custom model
Vanlige feil (antipatterns)
❌ Feil 1: Bruke CQA for generative svar
- Problem: CQA returnerer eksakte svar fra KB, ikke genererte sammendrag
- Løsning: Kombiner CQA med Azure OpenAI for å post-process svar
❌ Feil 2: Å ikke bruke alternate questions
- Problem: Transformer-ranker håndterer synonymer, men ikke domene-spesifikke variasjoner
- Løsning: Legg til 3-5 alternate questions per QnA (f.eks. "Hvor er parkeringen?" + "Har dere parkering?" + "Bilparkering?")
❌ Feil 3: Overfylt knowledge base uten metadata
- Problem: >1000 QnA-par uten struktur gir lav confidence scores
- Løsning: Split i separate KBs eller bruk metadata filtering
❌ Feil 4: Å ignorere confidence threshold
- Problem: Returnerer irrelevante svar med lav score (< 0.3)
- Løsning: Sett minimum threshold til 0.5, implementer fallback til human agent
❌ Feil 5: Å ikke aktivere active learning
- Problem: KB blir statisk, accuracy forverres over tid
- Løsning: Implementer telemetri-logging, review suggestions månedlig
Røde flagg (når CQA ikke er riktig valg)
🚩 Unstructured search: Dokumenter uten Q&A-struktur (rapporter, e-poster) 🚩 Real-time data: Priser, lagerstatus, dynamiske data som endres hyppig 🚩 Multi-modal content: Bilder, videoer, diagrammer som hovedkilde 🚩 Generative responses: Behov for sammendrag, oversettelse, omformulering 🚩 Complex reasoning: Multi-hop spørsmål som krever resonnering over flere kilder
Fallback for røde flagg:
- Unstructured → Azure AI Search med Semantic Ranker
- Real-time → Direct database queries med NLP-layer
- Multi-modal → Azure AI Vision + Custom model
- Generative → Azure OpenAI GPT-4 med prompt engineering
- Complex reasoning → Agent-based arkitektur (Semantic Kernel, LangChain)
Integrasjon med Microsoft-stakken
Bot Framework Integration
NuGet package: Microsoft.Bot.Builder.AI.QnA
// Bot constructor
var httpClient = _httpClientFactory.CreateClient();
this.qnaMaker = new CustomQuestionAnswering(new QnAMakerEndpoint
{
KnowledgeBaseId = _config["ProjectName"],
EndpointKey = _config["LanguageEndpointKey"],
Host = _config["LanguageEndpoint"]
}, null, httpClient);
// OnMessageActivityAsync
var options = new QnAMakerOptions { Top = 1, EnablePreciseAnswer = true };
var response = await qnaMaker.GetAnswersAsync(turnContext, options);
Precise Answer: Ekstraherer korte svar (1-2 setninger) fra lengre knowledge base svar.
Power Virtual Agents (Copilot Studio)
Integrasjon via:
- System fallback topic: Rutes ukjente spørsmål til CQA
- Power Automate flow: Custom connector til CQA REST API
- Direct plugin: Language Services plugin i Copilot Studio
Begrensning: QnA Maker native integration er deprecated, må bruke REST API-tilkobling.
Azure AI Foundry (AI Studio)
Deployment-sti:
- Language Studio → Deploy knowledge base → REST endpoint
- AI Foundry → Add data source → Custom API → CQA endpoint
- Prompt flow → HTTP node → Query CQA → Pass til GPT-4 for post-processing
Hybrid pattern: Bruk CQA som retrieval-layer, GPT-4 som generation-layer.
Microsoft 365 Copilot
Ikke direkte integrasjon. CQA er ikke en native data source for M365 Copilot.
Workaround:
- Publiser KB-innhold til SharePoint → M365 Copilot indexer det
- Eller bygg custom Copilot plugin som wrapper CQA API
Azure Monitor & Application Insights
Telemetry tracking:
- Automatisk logging via Language resource
- Custom events:
QnAMessage,QnATelemetryClient - Metrics: Query latency, confidence score distribution, no-answer rate
Log Analytics query:
requests
| where cloud_RoleName == "language-service"
| extend confidence = todynamic(customDimensions).score
| summarize avg(confidence), count() by bin(timestamp, 1h)
Offentlig sektor (Norge)
GDPR og datasuverenitet
Dataplassering:
- Language resource: Europe (West Europe, North Europe)
- Azure AI Search: Må være samme region som Language resource
- OBS: Cross-region replication er ikke tillatt i CQA (i motsetning til Storage/Cosmos DB)
Personvern-implikasjoner:
- CQA logger alle user queries i Application Insights (valgfritt, men anbefalt for active learning)
- Queries kan inneholde personopplysninger → må ha rettslig grunnlag (GDPR Art. 6)
- Løsning: Implementer PII-redaction før logging (via Azure Functions pre-processing)
Databehandleravtale:
- Dekkes av Microsoft standard DPA for Azure Cognitive Services
- Krever ikke separat DPA for CQA (inkludert i Language Service)
Schrems II og datatransfer
Status per 2026:
- EU-US Data Privacy Framework gjenopprettet (juli 2023)
- Microsoft er sertifisert participant
- Anbefaling: Bruk likevel EU-regioner (West/North Europe) for offentlig sektor
Dokumentasjon til DPO:
- Data residency confirmation: Azure Portal → Language resource → Properties → Location
- Sub-processor list: Microsoft Trust Center → Azure Cognitive Services
AI Act (EU forordning 2024)
Klassifisering:
- CQA alene: Minimal risk (generell AI-system)
- I kombinasjon med health/finance: Høy risk → krav til transparens, logging, human oversight
Compliance-tiltak for high-risk:
- Bias testing: Valider at CQA ikke diskriminerer basert på dialekt, formulering
- Explanation: Returner confidence score + source document til brukeren
- Human-in-the-loop: Fallback til human agent ved confidence < 0.5
- Logging: Behold query logs i 6 måneder for auditformål
AI Act Article 52 (transparens):
- Brukere må informeres om at de interagerer med AI
- Implementering: Vis "Powered by Azure AI" i chat-grensesnitt
Forvaltningsloven og Arkivlova
§ 11a (automatiserte enkeltvedtak):
- CQA kan ikke brukes til å fatte vedtak uten human review
- Tillatt: Veiledning, FAQ, generell informasjon
- Ikke tillatt: "Deres søknad er avslått fordi..." basert på CQA-svar
Arkivplikt:
- Chat-logs med innbyggere kan være arkivpliktige (vurdering per virksomhet)
- Løsning: Implementer export-funksjon fra Application Insights til arkivsystem
Innsyn (offentlighetsloven):
- Knowledge base-innhold er som regel offentlig (FAQ = offentlig info)
- Unntaket er internal HR/legal KBs → klassifiser som "unntatt offentlighet"
Anbefalt arkitektur for offentlig sektor
Citizen → Chatbot (Bot Framework) → PII Redaction Function → CQA (West Europe)
↓
Application Insights (retention: 90 days, export to Archive)
↓
Low confidence (< 0.5) → Route to human agent
Key controls:
- PII redaction: Azure Functions som regex-scanner før CQA-kall
- Data residency: West Europe for alle komponenter
- Human fallback: Bot Framework Composer → Escalate node
- Audit logging: Custom telemetry til Arkivsystem
Kostnad og lisensiering
Prismodell (per januar 2026, West Europe)
Language resource med CQA:
| Tier | Hosted calls (text records) | Pris per 1000 records | Ideal bruksscenario |
|---|---|---|---|
| Free (F0) | 5000 records/måned | Gratis | Testing, POC |
| Standard (S) | Ubegrenset | NOK 11.30 (€1.00) | Produksjon |
Azure AI Search (påkrevd):
| Tier | Indexes | Storage | Pris/måned | CQA-kapasitet |
|---|---|---|---|---|
| Free | 3 | 50 MB | Gratis | 2 KBs |
| Basic | 15 | 2 GB | NOK 850 (€75) | 14 KBs (single lang) |
| S1 | 50 | 25 GB | NOK 2800 (€250) | 49 KBs |
Total månedlig kostnad (produksjon):
- Minimum: NOK 2800 (S1 Search) + NOK 11.30/1000 queries
- Typisk enterprise: NOK 3500-5000/måned ved 50K queries
Kostnadsoptimalisering
1. Query batching:
- Send multiple questions i én API-call (støttes ikke natively, men kan implementeres med middleware)
2. Caching:
- Implementer Redis cache for hyppige spørsmål (TTL 1 time)
- Reduserer CQA-calls med 30-40% i typiske FAQ-scenarier
3. Tier-optimalisering:
Development: Free Language + Free Search (0 NOK)
Staging: Standard Language + Basic Search (850 NOK)
Production: Standard Language + S1 Search (2800 NOK)
4. Throughput-overvåking:
- CQA har hard cap på 10 TPS (transactions per second)
- Ved overskridelse: HTTP 429 errors
- Løsning: Implementer retry logic med exponential backoff
5. Active Learning ROI:
- Forbedrer accuracy med 15-20% over 6 måneder
- Reduserer "no answer" rate → mindre escalation til human agents
- Business case: 100 eskalerte tickets/måned × NOK 200/ticket = NOK 20K savings
Lisensiering
Ingen separate lisenser påkrevd utover Azure-abonnement.
Inkludert i:
- Azure-abonnement (Pay-as-you-go eller Enterprise Agreement)
- Ingen per-user licensing
Ikke inkludert i:
- Microsoft 365-lisenser (må bruke separat Azure-abonnement)
- Dynamics 365 Customer Service (krever custom integration, ikke native)
For arkitekten (Cosmo)
Spørsmål å stille kunden
-
Innholdskarakteristikk:
- "Hvor mye av innholdet deres eksisterer som strukturerte FAQ vs. unstructured documents?"
- "Har dere metadata/tags på eksisterende innhold som kan brukes til filtering?"
-
Volumestimat:
- "Hvor mange unike spørsmål forventer dere per dag/måned?"
- "Hva er acceptable response time (< 1 sekund, < 3 sekunder)?"
-
Modenhet og eierskap:
- "Hvem skal vedlikeholde knowledge base – IT eller business-eiere?"
- "Har dere resurser til å reviewe active learning-forslag månedlig?"
-
Integrasjonslandskap:
- "Bruker dere allerede Bot Framework, Power Virtual Agents, eller noe annet?"
- "Skal CQA integreres med eksisterende CRM/ticketing-system?"
-
Compliance:
- "Er det personopplysninger i knowledge base-innholdet?"
- "Har dere krav om data residency (Norge/EU)?"
-
Success metrics:
- "Hva er KPIer for suksess? (Redusert ticket-volum, user satisfaction score, resolution rate?)"
- "Hva er akseptabelt nivå av 'no answer' scenarios (< 10%, < 5%)?"
-
Budget:
- "Hva er budsjett for månedlig drift (inkludert Azure-kostnader)?"
- "Er dette en replacement for eksisterende løsning eller greenfield?"
-
Skalerbarhet:
- "Forventer dere sesongvariasjoner i query-volum?"
- "Planlegger dere å ekspandere til flere språk eller domener?"
Fallgruver å unngå
⚠️ Fallgruve 1: Undervurdere index-begrensninger
- Problem: Kunden har 20 separate produktområder, tenker "én knowledge base per produkt"
- Realitet: Basic tier støtter bare 14 KBs (single-language)
- Løsning: Bruk metadata filtering i én konsolidert KB, eller oppgrader til S1
⚠️ Fallgruve 2: Å ikke teste med ekte brukerformuleringer
- Problem: Tester med perfekt formulerte spørsmål fra FAQ-dokumentet
- Realitet: Brukere spør "hvor mye koster det" (ikke "hva er prisen for...")
- Løsning: Samle ekte support-tickets/chat-logs, test med dem
⚠️ Fallgruve 3: "Set it and forget it" mentalitet
- Problem: Deployer KB, ingen vedlikehold, accuracy synker
- Realitet: Produkt-info endres, FAQ blir utdatert
- Løsning: Etabler månedlig review-syklus, aktiver active learning
⚠️ Fallgruve 4: Overfladisk svar i knowledge base
- Problem: Svar er "Ja, vi har det" uten detaljer
- Realitet: Brukere trenger actionable info ("Ja, finn det under Settings → Preferences")
- Løsning: Skriv svar som standalone-instruksjoner (assume no prior context)
⚠️ Fallgruve 5: Å ikke planlegge for eskalering
- Problem: Bot har ingen fallback til human agent
- Realitet: 10-15% av queries vil ha confidence < 0.5
- Løsning: Integrer med Teams/service desk fra dag 1
⚠️ Fallgruve 6: Å bruke CQA for backend-data queries
- Problem: "Hva er saldo på konto 12345?" → Krever real-time database lookup
- Realitet: CQA er statisk knowledge, ikke dynamic data
- Løsning: Kombiner med Bot Framework adaptive cards + direct database calls
Anbefalinger per modenhetsnivå
Level 1: Beginner (First chatbot, < 500 QnA pairs)
- ✅ Start med Language Studio (low-code)
- ✅ Bruk single knowledge base med chit-chat
- ✅ Deploy via Bot Framework Composer
- ✅ Sett confidence threshold til 0.6 (strict)
- ⚠️ Ikke aktiver active learning før KB er stabil (måned 2-3)
- 📊 Success metric: 70% of queries answered with confidence > 0.6
Level 2: Intermediate (Multiple bots, 500-2000 QnA pairs)
- ✅ Implementer metadata filtering for domeneseparasjon
- ✅ Aktiver active learning, review suggestions bi-weekly
- ✅ Integrer med Application Insights for custom dashboards
- ✅ Bruk alternate questions strategisk (3-5 per QnA)
- ⚠️ Vurder separate KBs hvis compliance krever det
- 📊 Success metric: 85% resolution rate, < 2 sec response time
Level 3: Advanced (Enterprise scale, > 2000 QnA pairs)
- ✅ Implementer orchestrator pattern med CLU intent routing
- ✅ Bruk hybrid arkitektur (CQA for FAQ, OpenAI for generative)
- ✅ Implementer PII redaction middleware
- ✅ Sett opp multi-region deployment for high availability
- ✅ Bruk Azure DevOps for KB version control (export TSV til Git)
- 📊 Success metric: 90% resolution, < 1.5 sec p95 latency, < 5% escalation rate
Level 4: Expert (Multi-tenant, compliance-heavy)
- ✅ Separate Language resources per tenant/security boundary
- ✅ Custom NLP-preprocessing for synonym expansion
- ✅ Implementer feedback loop med human-in-the-loop labeling
- ✅ A/B testing av confidence thresholds og ranking parameters
- ✅ Cost optimization via query result caching (Redis)
- 📊 Success metric: 95% resolution, < 1 sec median latency, ROI-tracking per knowledge domain
"Know when to walk away" decision matrix
| Requirement | CQA fit | Alternative |
|---|---|---|
| 10,000+ QnA pairs | ⚠️ Possible but unwieldy | Split to multiple KBs or use Azure OpenAI + vector search |
| Real-time data (prices, availability) | ❌ No | Direct API integration + NLP layer |
| Generative responses required | ❌ No | Azure OpenAI GPT-4 |
| Multi-modal (images, diagrams) | ❌ Limited | Azure AI Vision + Custom model |
| Sub-second latency required | ⚠️ Challenging | Consider caching layer + CDN |
| On-premises deployment | ❌ Cloud-only | QnA Maker containers (deprecated) or custom model |
Red flag threshold: If customer requirements fall into 3+ "❌" categories, CQA is ikke riktig fit.
Kilder og verifisering
Verified (fra MCP microsoft-learn):
- https://learn.microsoft.com/en-us/azure/ai-services/language-service/question-answering/overview
- https://learn.microsoft.com/en-us/azure/ai-services/language-service/question-answering/concepts/azure-resources
- https://learn.microsoft.com/en-us/azure/ai-services/language-service/question-answering/concepts/best-practices
- https://learn.microsoft.com/en-us/azure/ai-services/language-service/question-answering/quickstart/sdk
- https://learn.microsoft.com/en-us/azure/bot-service/bot-builder-howto-answer-questions
- https://learn.microsoft.com/en-us/rest/api/questionanswering/question-answering
- https://learn.microsoft.com/en-us/azure/ai-services/language-service/question-answering/language-support
- https://learn.microsoft.com/en-us/training/modules/create-question-answer-solution-ai-language/
Baseline (modellkunnskap):
- GDPR/Schrems II compliance for Azure Cognitive Services (verifisert via Microsoft Trust Center)
- AI Act implikasjoner (EU forordning 2024, trådte i kraft desember 2024)
- Forvaltningsloven § 11a (norsk lovverk, ikke-endret siden siste oppdatering)
- Prisestimat (basert på januar 2026 Azure pricing calculator, kan variere)
Konfidensnivå per seksjon:
- Introduksjon, Kjernekomponenter, Nøkkelegenskaper: Verified (100%)
- Arkitekturmønstre: Verified (90%, mønster 3 er composite-løsning)
- Beslutningsveiledning: Baseline + Verified (80%, beslutningstre er ekspertskjønn)
- Integrasjon med Microsoft-stakken: Verified (95%, M365 Copilot-begrensning bekreftet)
- Offentlig sektor: Baseline + Verified (85%, juridisk tolkning er ikke legal advice)
- Kostnad og lisensiering: Verified (90%, priser per januar 2026, currency conversion fra EUR)
- For arkitekten: Baseline (ekspertskjønn basert på best practices)