23 KiB
Grounding and Knowledge Injection Techniques
Last updated: 2026-06-24 Status: GA Category: Prompt Engineering & LLM Optimization
Introduksjon
Grounding og knowledge injection er fundamentale teknikker for å sikre at store språkmodeller (LLMs) genererer nøyaktige, faktabaserte og troverdige svar. Uten grounding vil en LLM kun stole på sin treningskunnskap, som har en cutoff-dato og ikke inkluderer proprietær eller domene-spesifikk informasjon. Dette fører ofte til "hallucinations" – påstander som høres troverdige ut, men som er feilaktige eller ufullstendige.
Grounding innebærer å gi modellen tilgang til ekstern, pålitelig informasjon som den kan trekke sine svar fra. Denne informasjonen kalles "grounding data" eller "grounding sources". Når grounding kombineres med Retrieval-Augmented Generation (RAG), oppnår du et system der modellen henter relevant kontekst fra dokumenter, databaser eller andre kilder før den genererer et svar. Resultatet er svar som er forankret i verifiserbar kunnskap, med mulighet for kildehenvisninger og sporbarhet.
Knowledge injection går hånd i hånd med grounding – det handler om hvordan du strukturerer og presenterer denne kunnskapen i promptet. Jo nærmere grounding-dataen er den ønskede svarformen, desto mindre arbeid må modellen gjøre, og desto lavere er risikoen for feil. Microsoft tilbyr flere verktøy og tjenester for grounding: Azure OpenAI "On Your Data", Copilot Studio knowledge sources, Azure AI Search, og Groundedness Detection i Azure AI Content Safety.
Kjernekomponenter
RAG-arkitektur (Retrieval-Augmented Generation)
RAG er grunnstenen i moderne grounding-systemer. En typisk RAG-workflow består av:
| Steg | Komponent | Beskrivelse |
|---|---|---|
| 1. Indeksering | Data Pipeline | Dokumenter chunkes, berikes med metadata, og vektoriseres via embedding-modeller (f.eks. text-embedding-ada-002) |
| 2. Query formulation | Orchestrator | Brukerens spørsmål transformeres til søkequeries (både keyword og semantisk søk) |
| 3. Retrieval | Vector Store / Search Engine | Azure AI Search, Azure Cosmos DB, eller annen vector database returnerer top-N relevante chunks |
| 4. Context injection | Prompt Construction | Retrieved chunks injiseres i system message eller user prompt som grounding context |
| 5. Generation | LLM (GPT-4, GPT-5) | Modellen genererer svar basert på både sin kunnskap og grounding-dataen |
| 6. Verification | Groundedness Detection | Azure AI Content Safety validerer at svaret er konsistent med kildene |
Grounding Sources i Microsoft-stakken
| Kilde | Beskrivelse | Plattform | Autentisering |
|---|---|---|---|
| Azure AI Search | Hybrid search (keyword + vector), semantic ranking | Azure OpenAI "On Your Data" | Managed Identity, API Key |
| SharePoint Online | Moderne SharePoint-sider, dokument-libraries | Copilot Studio, Microsoft 365 Copilot | Microsoft Graph, Entra ID |
| Microsoft Graph | E-post, kalender, OneDrive, Teams-meldinger | Copilot Studio (Tenant Graph Grounding) | Delegated permissions |
| Copilot Connectors | Tredjeparts-systemer (ServiceNow, Salesforce, osv.) | Copilot Studio | OAuth 2.0 via connector |
| Custom Data Sources | Egne APIs, SQL-databaser, Cosmos DB | Custom orchestrators (Semantic Kernel, LangChain) | Custom authentication |
| Web Search (Bing) | Bing Search API for sanntidsinformasjon | Azure AI Agents, Copilot Studio | API Key |
Grounding Techniques
1. Inline Grounding (Prompt-level)
Grounding-data injiseres direkte i promptet:
System: You are an AI assistant. Answer ONLY using the provided context.
Context:
---
[DOCUMENT 1]: Microsoft Foundry is a unified platform for building, testing,
and deploying generative AI applications. Released: Nov 2024.
[DOCUMENT 2]: Azure OpenAI Service offers GPT-4, GPT-4 Turbo, and o-series models...
---
User: What is Microsoft Foundry?
Fordeler: Enkel å implementere, full kontroll over context. Ulemper: Token-grense begrenser mengde data, krever manuell orkestrering.
2. Azure OpenAI "On Your Data"
Azure OpenAI kan hente grounding data direkte fra Azure AI Search eller Azure Blob Storage:
completion = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "What are health benefits?"}],
extra_body={
"data_sources": [{
"type": "azure_search",
"parameters": {
"endpoint": "https://my-search.search.windows.net",
"index_name": "health-plans-index",
"authentication": {"type": "api_key", "key": "***"}
}
}]
}
)
Fordeler: Zero-code RAG, automatisk chunking og retrieval. Ulemper: Mindre kontroll over retrieval-logikk, støtter kun Azure-tjenester.
3. Copilot Studio Knowledge Sources
Copilot Studio støtter flere knowledge sources:
- SharePoint sites (automatisk indeksering av moderne sider og dokumenter)
- Public websites (URL-based crawling)
- Custom files (opplasting av PDF, Word, PowerPoint – maks 500 filer, 512 MB per fil)
- Copilot Connectors (ServiceNow, Salesforce, Confluence, osv.)
- Web Search (Bing Search API for sanntidsdata)
Tenant Graph Grounding: Med Microsoft 365 Copilot-lisens får du tilgang til forbedret retrieval fra SharePoint via Microsoft Graph, inkludert metadata-filtrering og semantisk søk.
4. Custom Orchestrator med Semantic Kernel
For full kontroll, implementer egen RAG-pipeline:
from azure.search.documents import SearchClient
from openai import AzureOpenAI
# Steg 1: Retrieve
search_results = search_client.search(
search_text=query,
top=5,
select="content,metadata"
)
# Steg 2: Format context
context = "\n".join([doc["content"] for doc in search_results])
# Steg 3: Inject and generate
response = openai_client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": f"Answer using this context:\n{context}"},
{"role": "user", "content": query}
]
)
Arkitekturmønstre
Mønster 1: Single-Tenant RAG med Orchestrator
Beskrivelse: Én orchestrator henter grounding data fra én eller flere datastores per tenant. LLM-kall inneholder kun data som brukeren har tilgang til.
Arkitektur:
User → App → Identity Provider → Orchestrator → [Vector DB, SQL, Blob Storage] → LLM
Fordeler:
- Full kontroll over retrieval og sikkerhet
- Enkel å auditere og logge datahenting
- Støtter custom filtering og security trimming
Ulemper:
- Krever egen infrastruktur for orchestrator
- Mer kompleks å vedlikeholde enn "On Your Data"
Bruk når: Du har sensitive data, trenger audit-logging, eller har komplekse autorisasjonsregler.
Mønster 2: Multitenant RAG med API-abstraksjon
Beskrivelse: En API-layer innkapsler dataaksess-logikk og sikrer at hver tenant kun får tilgang til sine egne data. Orchestrator kaller API-laget i stedet for å snakke direkte med datastores.
Arkitektur:
User → App → Identity Provider → Orchestrator → API Layer → [Shared DB, Tenant-specific DB] → LLM
Tenant Isolation Strategies:
| Strategi | Beskrivelse | Fordeler | Ulemper |
|---|---|---|---|
| Store-per-tenant | Hver tenant har egen database/search index | Sterk isolasjon, enkel kostnadstildeling | Høy overhead, skalerer ikke til tusenvis av tenants |
| Multitenant store | Felles database, tenant-ID som partition key | Kostnadseffektivt, skalerer godt | Krever security trimming, risiko for "noisy neighbor" |
| Shared store | Felles data for alle tenants (f.eks. offentlig dokumentasjon) | Kostnadseffektivt | Ikke egnet for proprietær data |
Fordeler:
- Enkel å validere og teste sikkerhet (all logikk i API-laget)
- Støtter row-level security og custom filtering
- Audit-logging på ett sted
Ulemper:
- Ekstra lag øker latency
- Krever vedlikehold av API-kode
Bruk når: Du har multitenant SaaS-løsning med strengt definerte autorisasjonsregler.
Mønster 3: Hybrid Grounding (Web + Private Data)
Beskrivelse: Kombiner private datastores med web search for å dekke både proprietær kunnskap og sanntidsdata.
Arkitektur:
User → Orchestrator → [Private Data (RAG)] + [Bing Search API] → LLM
Eksempel-use case:
- Private data: Interne policydokumenter, produktmanualer
- Web search: Siste nyheter, konkurranseinformasjon, oppdaterte priser
Fordeler:
- Best of both worlds: proprietær + sanntidsdata
- Reduserer hallucinations på time-sensitive spørsmål
Ulemper:
- Bing-kall kan øke kostnader
- Cross-geo dataflow (Bing-data forlater enterprise boundary)
- Må håndtere to ulike kildekategorier i responsen
Bruk når: Applikasjonen trenger både intern kunnskap og sanntidsdata (f.eks. chatbot for kundeservice).
Beslutningsveiledning
Når skal du bruke grounding?
| Scenario | Anbefaling | Verktøy |
|---|---|---|
| Faktabaserte spørsmål (produktdetaljer, policydokumenter) | ✅ Påkrevd | Azure AI Search + RAG |
| Sanntidsdata (valutakurser, nyheter) | ✅ Påkrevd | Web Search (Bing) |
| Kreativ tekst (markedsføringstekst, historier) | ⚠️ Valgfritt | Baseline LLM (uten grounding) |
| Sensitive data (medisinske journaler, juridiske dokumenter) | ✅ Påkrevd + Groundedness Detection | Azure AI Search + Content Safety |
| Offentlig kunnskap (Wikipedia-lignende) | ⚠️ LLM kan håndtere uten grounding | Baseline LLM eller Web Search |
Grounding Technique Decision Tree
START: Trenger du grounding?
│
├─ Ja → Er dataen sensitiv eller subject to compliance?
│ ├─ Ja → Bruk Azure AI Search + Private endpoints + Groundedness Detection
│ └─ Nei → Er dataen intern eller proprietær?
│ ├─ Ja → Azure OpenAI "On Your Data" eller Custom RAG
│ └─ Nei → Web Search (Bing) eller Public datasets
│
└─ Nei → Baseline LLM (GPT-4, GPT-5)
Vanlige feil og hvordan unngå dem
| Feil | Symptom | Løsning |
|---|---|---|
| For mye context | Token limit exceeded, høye kostnader | Chunk data bedre, bruk top-K filtering (f.eks. top-5 chunks) |
| Irrelevant context | Modellen gir svar basert på feil kilder | Forbedre retrieval (hybrid search, semantic ranking) |
| Manglende citations | Kan ikke verifisere kilder | Instruer modellen: "Include inline citations as [1], [2]" |
| Ungrounded responses | Modellen "hallusinerer" fakta | Bruk Groundedness Detection, instruer "Answer ONLY from provided context" |
| Security leakage | Modellen lekker data fra andre tenants | Implementer API-layer med security trimming, test grundig |
Røde flagg (når du IKKE skal bruke grounding)
- ❌ Kreativ skriving der fakta ikke er kritisk (f.eks. sci-fi-historier)
- ❌ Brainstorming-sesjoner der modellen skal generere nye idéer
- ❌ Når grounding-data er utdatert (da blir svaret verre enn baseline LLM)
- ❌ Når retrieval-kvaliteten er dårlig (irrelevante chunks gir dårligere svar)
Integrasjon med Microsoft-stakken
Azure OpenAI "On Your Data"
Setup-steg:
- Opprett Azure AI Search-instans
- Indekser dokumenter (manuelt eller via Azure Data Factory)
- Konfigurer Azure OpenAI med data source:
{
"dataSources": [{
"type": "AzureCognitiveSearch",
"parameters": {
"endpoint": "https://my-search.search.windows.net",
"indexName": "my-index",
"key": "***",
"semanticConfiguration": "default",
"queryType": "semantic",
"inScope": true,
"strictness": 3
}
}]
}
Parametre å tune:
strictness(1-5): Hvor strengt modellen skal holde seg til kildene (5 = strengest)top_n_documents: Antall chunks å inkludere (default: 5)inScope: Hvistrue, svarer modellen kun basert på sources (anbefalt for kritiske use cases)
Copilot Studio Knowledge Configuration
SharePoint som knowledge source:
- Gå til agent → Knowledge → Add SharePoint
- Velg sites/libraries (modern SharePoint pages only)
- Enable Tenant Graph Grounding (krever M365 Copilot-lisens)
- Konfigurer metadata filters (f.eks. "only files modified last 30 days")
Web Search (Bing):
- Advanced → Generative answers → Web Search
- Velg mellom:
- Open web search (hele Bing-index)
- Custom search (avgrens til spesifikke domener)
- Konfigurer user location (for regionsspesifikke resultater)
Azure AI Content Safety: Groundedness Detection
Validering av grounded responses:
conn.request("POST", "/contentsafety/text:detectGroundedness?api-version=2024-09-15-preview",
payload={
"domain": "Generic",
"task": "QnA",
"qna": {"query": "What is the interest rate?"},
"text": "The interest rate is 5%.",
"groundingSources": ["As of July 2024, the interest rate is 4.5%."],
"reasoning": True
}
)
Output: Groundedness score (boolean), reasoning (why ungrounded), correction suggestions.
Bruk i produksjon:
- Kjør post-generation for kritiske use cases (medisin, jus, finans)
- Log ungrounded responses for videre analyse
- Bruk correction feature for automatisk retting
Offentlig sektor (Norge)
GDPR og datasuverenitet
Grounding data klassifisert som personopplysninger:
- ✅ Azure AI Search i Norge-region (Norway East, Norway West) – datalagring i Norge
- ✅ Azure OpenAI – prosessering i EU/Norge (avhengig av deployment)
- ⚠️ Bing Search API – data sendes til Bing (USA), ikke dekket av DPA (Data Protection Addendum)
- ❌ Tredjepartsconnectors – vurder DPIA (Data Protection Impact Assessment) per connector
Schrems II compliance:
- Bruk Azure-tjenester i EU/Norge-regioner
- Unngå Bing Search for personopplysninger
- Dokumenter dataflyt i DPIA
AI Act (EU AI-forordningen)
Grounding som risikoreduserende tiltak:
- Høyrisiko-systemer (f.eks. HR-beslutninger, offentlig forvaltning) → Påkrevd grounding + audit logs
- Begrenset risiko (chatbots) → Anbefalt grounding for transparens
- Lav risiko (kreativ AI) → Valgfritt
Dokumentasjonskrav:
- Logg hvilke grounding sources som ble brukt per respons
- Implementer citation tracking (inline citations i svar)
- Oppbevar audit logs i minimum 6 måneder (anbefalt: 2 år)
Forvaltningsloven og begrunnelsesplikt
§ 24-25 (begrunnelse av enkeltvedtak):
- Automatiserte vedtak må kunne spores tilbake til grounding sources
- Inline citations sikrer transparens: "Ifølge [1], er kravet..."
- Lag system for å eksportere full reasoning chain (query → retrieval → LLM response)
Eksempel:
User: Er jeg kvalifisert for stønad X?
Response: Ja, du oppfyller kriteriene ifølge [1] fordi du har bodd i Norge i over 3 år [2].
Sources:
[1] Stønadsdokument v2.3 (2025-01-15), side 4
[2] Folkeregisteret: Registrert bosatt siden 2021-06-01
Kostnad og lisensiering
Azure OpenAI "On Your Data" kostnadselementer
| Komponent | Prisfaktor | Estimat (NOK/måned) |
|---|---|---|
| Azure OpenAI tokens | Input + output tokens (GPT-4: ~0.35 NOK/1K tokens) | Varierer med volum |
| Azure AI Search | Storage (per GB) + queries (per 1000) | 500-5000 NOK (avhengig av tier) |
| Embedding modell | text-embedding-ada-002 (~0.001 NOK/1K tokens) | 100-500 NOK |
| Bing Search API | Per query (~0.50 NOK/query) | 500-2000 NOK (100-400 queries/dag) |
| Egress traffic | Data ut av Azure-region | Typisk neglisjerbart |
Total estimert kostnad (medium bruk): 2000-8000 NOK/måned
Optimaliseringstips
| Tiltak | Besparelse | Trade-off |
|---|---|---|
| Reduser chunk size | -20-30% token cost | Kan miste kontekst |
| Bruk GPT-4o mini i stedet for GPT-4 | -90% per token | Lavere kvalitet på komplekse oppgaver |
| Cache embeddings | -50% embedding cost | Krever egen cache-løsning |
| Batch queries | -10-15% search cost | Høyere latency |
| Bruk "strictness" parameter | Reduserer unødvendige LLM-kall | Kan øke "jeg vet ikke"-svar |
Copilot Studio lisensiering
Grounding inkludert i lisens:
- Microsoft 365 Copilot-lisens: SharePoint + Microsoft Graph grounding er zero-rated (ingen Copilot Credit usage)
- Copilot Studio standalone: Grounding teller mot Copilot Credits (kompleksitet-basert)
Grounding som teller mot credits:
- Custom connectors (Power Platform connectors)
- External APIs
- Complex multi-step retrieval
Anbefaling: For store organisasjoner, kombiner M365 Copilot-lisens (for SharePoint/Graph) med Copilot Studio for custom logic.
For arkitekten (Cosmo)
Spørsmål å stille kunden
-
Datakilde og sensitivitet:
- Hvor ligger dataen som skal brukes til grounding? (SharePoint, SQL, Blob Storage, on-prem?)
- Inneholder dataen personopplysninger eller sensitive forretningsdata?
- Kreves det audit-logging av datahenting?
-
Multitenancy og autorisasjon:
- Er dette en multitenant-løsning?
- Hvilke autorisasjonsregler gjelder? (rolle-basert, dokument-basert, tenant-basert?)
- Skal brukere kun se data de har tilgang til i kildesystemet?
-
Datakvalitet og aktualitet:
- Hvor ofte oppdateres dataen? (sanntid, daglig, ukentlig?)
- Hva er akseptabel "staleness" på grounding data?
- Finnes det en "source of truth" for dataen?
-
Teknisk modenhet:
- Har organisasjonen eksisterende RAG-erfaring?
- Kan de vedlikeholde en custom orchestrator, eller trenger de managed solution?
- Hvilket team skal eie embeddings-generering og indeksering?
-
Compliance og risiko:
- Er dette et høyrisiko-system under AI Act?
- Kreves det DPIA?
- Må svaret kunne spores tilbake til eksakt kilde (inline citations)?
-
Volum og kostnad:
- Hvor mange queries per dag forventes?
- Hva er akseptabel responstid? (< 2s, < 5s, < 10s?)
- Hva er budsjettet for grounding-infrastruktur?
-
Fallback-strategi:
- Hva skal skje hvis retrieval feiler? (default svar, feilmelding, fallback til baseline LLM?)
- Skal modellen kunne si "jeg vet ikke" hvis dataen mangler?
-
Citation og transparens:
- Skal brukerne se hvilke kilder som ble brukt?
- Kreves det inline citations i svaret?
- Skal metadata (f.eks. publish-dato) vises?
Fallgruver å unngå
| Fallgruve | Konsekvens | Mitigering |
|---|---|---|
| Dårlig chunking-strategi | Irrelevante chunks, dårlig retrieval | Bruk semantic chunking (512-1024 tokens), overlapp 10-20% |
| Manglende metadata | Kan ikke filtrere på dato, forfatter, sensitivitet | Berik chunks med metadata under indeksering |
| Ingen citation tracking | Kan ikke verifisere kilder | Krev inline citations i system prompt |
| Overpopulert context | Token limit overskrides, høye kostnader | Bruk top-K filtering, prioriter nyeste/mest relevante |
| Manglende security trimming | Data leakage mellom tenants | Implementer API-layer, test grundig |
| Statiske embeddings | Retrieval basert på utdatert semantikk | Re-index regelmessig (f.eks. månedlig) |
| Ingen groundedness validation | Hallucinations går uoppdaget | Bruk Azure AI Content Safety Groundedness Detection |
Anbefalinger per modenhetsnivå
Nivå 1: Pilot/Proof-of-Concept
- Verktøy: Azure OpenAI "On Your Data" + Azure AI Search
- Grounding: Inline grounding via system prompt
- Datakilde: Statiske dokumenter i Blob Storage (< 100 dokumenter)
- Fokus: Proof of concept, iterere på prompt design
- Kostnad: < 2000 NOK/måned
Nivå 2: Produksjon (begrenset skala)
- Verktøy: Copilot Studio med SharePoint knowledge sources
- Grounding: "On Your Data" eller Copilot Studio built-in RAG
- Datakilde: SharePoint (< 5000 dokumenter), evt. custom files
- Fokus: Brukeropplevelse, citation tracking, groundedness detection
- Kostnad: 5000-15000 NOK/måned (inkl. Copilot Studio-lisens)
Nivå 3: Enterprise (full skala)
- Verktøy: Custom orchestrator (Semantic Kernel/LangChain) + Azure AI Search
- Grounding: Hybrid (private data + web search)
- Datakilde: Multitenant SQL/Cosmos DB, API-layer for security trimming
- Fokus: Skalerbarhet, multitenant security, audit logging, compliance
- Kostnad: 20000-100000+ NOK/måned (avhengig av volum)
Nivå 4: Spesialisert (høyrisiko, regulert)
- Verktøy: Custom RAG + Groundedness Detection + audit pipeline
- Grounding: Store-per-tenant, inline citations, reasoning tracking
- Datakilde: On-prem integration (Azure Arc), private endpoints
- Fokus: GDPR, AI Act compliance, full auditability, eksplonerbar reasoning
- Kostnad: 100000+ NOK/måned (inkl. compliance overhead)
Kilder og verifisering
MCP-kilder (Verified):
- Microsoft Learn: Prompt Engineering Techniques – Groundedness context, citation best practices
- Microsoft Learn: Groundedness Detection Filter – RAG definition, ungroundedness detection
- Microsoft Learn: Secure Multitenant RAG – Tenant isolation, API-layer, security trimming
- Microsoft Learn: Copilot Studio Knowledge Sources – SharePoint, connectors, tenant graph grounding
- Microsoft Learn: Web Search in Copilot Studio – Bing integration, privacy considerations
- Microsoft Learn: Azure AI Agents (Bing Grounding) – Web grounding workflow
Konfidensnivå per seksjon:
| Seksjon | Konfidensnivå | Kilde |
|---|---|---|
| Introduksjon | Verified | MCP: Prompt Engineering, Groundedness Detection |
| RAG-arkitektur | Verified | MCP: Secure Multitenant RAG |
| Grounding Sources | Verified | MCP: Copilot Studio, Azure AI Search |
| Arkitekturmønstre | Verified | MCP: Secure Multitenant RAG |
| Azure OpenAI "On Your Data" | Verified | MCP: Prompt Engineering (code samples) |
| Copilot Studio | Verified | MCP: Knowledge Sources, Web Search |
| Groundedness Detection | Verified | MCP: Content Filter Groundedness |
| GDPR/AI Act | Baseline | Modellkunnskap (januar 2025) + etablert praksis |
| Kostnad | Baseline | Modellkunnskap + Azure pricing (januar 2025) |
| Spørsmål til kunden | Baseline | Arkitekturpraksis |
Disclaimer: Kostnadsestimater er basert på januar 2025-priser og kan endres. Verifiser alltid med Azure Pricing Calculator for nøyaktige tall.