# RAG Query Cost Optimization

**Last updated:** 2026-06-19
**Status:** GA
**Category:** Cost Optimization & FinOps for AI

---

## Introduksjon

Retrieval Augmented Generation (RAG) representerer en av de mest kostnadsintensive delene av AI-applikasjoner i produksjon. Mens utvikling og testing av RAG-løsninger kan virke rimelig, eskalerer kostnadene raskt når systemet møter produksjonsvolumer med hundrevis eller tusenvis av queries daglig. Hver query utløser en pipeline med minimum to LLM-kall (intent generation og response generation), embedding-operasjoner, search-queries mot Azure AI Search, og potensielt semantic ranking. For organisasjoner som bygger chat-løsninger eller copilots på Microsoft-stakken, er query-kostnader ofte den største driftskostnaden.

Optimalisering av RAG query-kostnader handler ikke bare om å redusere regningen. Det handler om å bygge sustainable AI-løsninger som kan skalere uten å eksplodere budsjettet. En typisk RAG-query i Azure OpenAI On Your Data kan forbruke mellom 4 000 og 6 000 tokens totalt, avhengig av modell og konfigurasjon. Med GPT-4, som koster betydelig mer enn GPT-3.5-Turbo, kan dette raskt bli en betydelig post i IT-budsjettet. Samtidig må man balansere kostnadsreduksjon mot kvalitet – aggressive optimaliseringer kan føre til dårligere svar og lavere brukertilfredshet.

Dette dokumentet dekker hele spekteret av kostnadsdrivere i RAG-pipelines: token-forbruk i LLM-kall, Azure AI Search-tier-kostnader, semantic ranking-avgifter, embedding-operasjoner, og infrastrukturkostnader. Du vil lære konkrete teknikker for å redusere kostnader med opptil 60-80% uten å kompromittere svarkvalitet, samt hvordan du bygger kostnadsbevisste arkitekturer fra start.

## Kjernekomponenter

### RAG Query Pipeline Cost Breakdown

En typisk Azure OpenAI On Your Data query gjennomløper følgende kostnadselementer:

| Komponent | Kostnadselement | Typisk andel av totalkostnad | Optimaliserings-potensial |
|-----------|-----------------|------------------------------|---------------------------|
| **Intent Generation** | LLM tokens (input + output) | 15-20% | Middels (kan elimineres i enkelte scenarios) |
| **Embedding Operations** | Azure OpenAI embeddings (text-embedding-ada-002) | 5-10% | Lav (nødvendig for vector search) |
| **Azure AI Search Query** | Search tier (QPS, replicas, partitions) | 20-30% | Høy (tier-optimalisering, query reduction) |
| **Semantic Ranking** | Per-query semantic ranking fee | 10-15% | Høy (bruk kun når nødvendig) |
| **Response Generation** | LLM tokens (input + output) | 35-45% | Høy (chunk reduction, token optimization) |
| **Network/Storage** | Bandwidth, blob storage for caching | <5% | Lav |

### Token Consumption per Model (Azure OpenAI On Your Data)

Basert på Microsoft Learn-data for standard konfigurasjon (5 retrieved documents, strictness=3, chunk size=1024):

| Model | Generation Prompt | Intent Prompt | Response Output | Intent Output | **Total Avg** |
|-------|-------------------|---------------|-----------------|---------------|---------------|
| **gpt-35-turbo-16k** | 4 297 | 1 366 | 111 | 25 | **5 799** |
| **gpt-4-0613** | 3 997 | 1 385 | 118 | 18 | **5 518** |
| **gpt-4-1106-preview** | 4 538 | 811 | 119 | 27 | **5 495** |
| **gpt-35-turbo-1106** | 4 854 | 1 372 | 110 | 26 | **6 362** |

**Verified (Microsoft Learn):** Disse tallene er hentet fra offisiell Microsoft-dokumentasjon basert på testing med 191 samtaler, 250 spørsmål, 10 tokens per spørsmål i snitt, og 4 samtale-turns per samtale.

### Azure AI Search Tier Costs (Estimated NOK/month)

| Tier | Partitions | Replicas | QPS Capacity | Storage | ~NOK/month | Best For |
|------|------------|----------|--------------|---------|------------|----------|
| **Basic** | 1 | 3 | Moderate | 2 GB | 1 200 | Proof-of-concept, lav trafikk |
| **S1** | 12 | 12 | High | 25 GB/partition | 2 800 | Produksjon, moderate volumer |
| **S2** | 12 | 12 | Very High | 100 GB/partition | 11 200 | High-volume produksjon |
| **S3** | 12 | 12 | Enterprise | 200 GB/partition | 22 400 | Enterprise-skala |

**Baseline (Modellkunnskap):** Prisene er omregnet fra USD til NOK (1 USD ≈ 11 NOK, februar 2026) og er veiledende.

**NY prismodell — Serverless (Preview, MCP 2026-06):** Azure AI Search tilbyr nå to prismodeller: **Dedicated** (provisioned, fast pris per Search Unit — tabellen over) og **Serverless (Preview)** — forbruksbasert (Compute Units/time + per-GB/mnd lagring), ingen compute-kost ved idle. Best for sporadiske/variable workloads; en kontinuerlig provisjonert Basic/S1 kan være dyrere enn Serverless ved bursty trafikk. Per juni 2026 er Serverless i preview (kun West Central US, Switzerland North, Japan East), støtter ikke migrering til/fra dedicated, og er ikke anbefalt for produksjon ennå.

### Semantic Ranking Costs

**Verified (Microsoft Learn):** Semantic ranking er en premium-funksjon som påløper ekstra kostnader per query. Kostnaden er progressiv og varierer basert på volum:

- **Første 1000 queries/måned:** Inkludert i Basic tier eller høyere
- **Påfølgende queries:** Per-query avgift (se Azure pricing calculator for eksakte tall)

Semantic ranking forbedrer relevansscore betydelig, men kan øke query-kostnaden med 15-25% for høyvolumapplikasjoner.

## Arkitekturmønstre

### 1. Lean Retrieval Pipeline

**Prinsipp:** Reduser antall tokens sendt til LLM ved å optimalisere retrieval-parametere og chunk-størrelser.

**Implementering:**
- **Juster `topNDocuments`:** Start med 3 i stedet for default 5. Test om svarkvaliteten holder seg.
- **Optimaliser chunk size:** Bruk 512 eller 768 tokens i stedet for 1024 for faktabaserte datasets.
- **Øk `strictness`:** Sett til 4 eller 5 for å filtrere bort irrelevante dokumenter.
- **Limit responses to data:** Alltid `inScope=true` for å redusere prompt-lengde.

**Kostnadsreduksjon:** 25-40% reduksjon i token-forbruk per query.

**Trade-off:** Kan misse kontekstuell informasjon i komplekse spørsmål. Krever testing.

**Eksempel (Python API):**
```python
{
    "data_sources": [{
        "type": "AzureCognitiveSearch",
        "parameters": {
            "endpoint": SEARCH_ENDPOINT,
            "indexName": INDEX_NAME,
            "topNDocuments": 3,  # Redusert fra 5
            "strictness": 4,      # Økt fra 3
            "inScope": true
        }
    }],
    "messages": [{"role": "user", "content": "Hva er SLA for tjenesten?"}]
}
```

### 2. Cached RAG (Cache-Aside Pattern)

**Prinsipp:** Bruk caching for å unngå gjentatte LLM-kall og search-operasjoner for identiske eller semantisk like queries.

**Implementering:**
- **Query hash caching:** Hash user query og returner cachet svar hvis match.
- **Semantic cache:** Bruk embedding similarity for å finne lignende tidligere queries (threshold ~0.95).
- **Azure Redis Cache:** Lagre (query_hash → response) med TTL basert på data freshness-krav.
- **Enrichment caching:** Bruk Azure AI Search enrichment cache for å gjenbruke chunking/embedding-resultater.

**Kostnadsreduksjon:** 50-70% for applikasjoner med repeterende spørsmål (FAQ, support bots).

**Arkitektur:**
```
User Query → Hash → Redis Lookup → [Cache Hit: Return]
                                 → [Cache Miss: RAG Pipeline → Cache Result]
```

**Verified (Microsoft Learn):** Enrichment caching er en built-in Azure AI Search-funksjon som lagrer mellomresultater fra AI enrichment-pipelines. Selv om caching medfører storage-kostnader, reduserer det den kumulative kostnaden for AI enrichment betydelig.

### 3. Tiered Retrieval (Hybrid Cost-Quality)

**Prinsipp:** Bruk billige modeller for intent detection og enkel retrieval, reserve dyre modeller for komplekse svar.

**Implementering:**
- **Tier 1 (Keyword Search):** Gratis utover search tier-kostnad. Bruk for enkle faktaspørsmål.
- **Tier 2 (Vector Search):** Påløper embedding-kostnader. Bruk for semantisk søk.
- **Tier 3 (Hybrid + Semantic):** Dyreste, men beste kvalitet. Reserve for kritiske queries.
- **Model routing:** Bruk GPT-3.5-Turbo for 80% av queries, GPT-4 for komplekse/kritiske queries.

**Kostnadsreduksjon:** 40-60% ved å bruke riktig search type og modell per query-type.

**Beslutningslogikk:**
```python
if is_simple_fact_query(user_query):
    search_type = "keyword"
    model = "gpt-35-turbo"
elif is_semantic_query(user_query):
    search_type = "vector"
    model = "gpt-35-turbo"
else:  # Complex reasoning
    search_type = "hybrid_semantic"
    model = "gpt-4"
```

### 4. Agentic Retrieval (Cost-Aware)

**Status: GA-split (MCP 2026-06)** — Deler av agentic retrieval er **generelt tilgjengelig i `2026-04-01` REST API** (programmatisk tilgang). Azure-portalen og Microsoft Foundry-portalen gir fortsatt **kun preview-tilgang** til alle agentic retrieval-funksjoner. Pipelinen er også kunnskapslaget bak **Foundry IQ** i Foundry-portalen. *(Verified MCP 2026-06)*

**Prinsipp:** Azure AI Search Agentic Retrieval bruker LLM til å generere fokuserte subqueries som kjøres parallelt, hver semantisk rerangert. Dette kan være dyrt, men også mer effektivt enn multiple sekvensielle queries.

**Prismodell:**
- **Free plan (default):** månedlig gratis token-kvote inkludert (eksakt mengde oppgis ikke lenger i dokumentasjonen — se [Azure AI Search pricing](https://azure.microsoft.com/pricing/details/search))
- **Standard plan:** pay-as-you-go etter at gratis kvota er brukt
- **Azure OpenAI faktureres separat** (alltid pay-as-you-go) for input/output-tokens i query planning + answer synthesis

**Kostnadseksempel (Verified - Microsoft Learn):**
- **2000 agentic retrievals** med 3 subqueries per plan:
  - Reranking: ~$3.30 (150M tokens @ $0.022/token)
  - Input tokens (query planning): $0.60 (4M tokens @ $0.15/M)
  - Output tokens (query planning): $0.42 (700K tokens @ $0.60/M)
  - **Total:** ~$4.32 per 2000 queries = $0.00216 per query

**Når bruke:**
- Komplekse multi-facet spørsmål som ville krevd multiple manual queries.
- Når answer quality er kritisk og kostnaden kan rettferdiggjøres.

**Cost control:**
- 50M gratis tokens/mnd dekker typisk moderat bruk i utviklings- og testmiljøer.
- Sett `reasoning_effort` til `minimal` eller `low` (ikke `medium`).
- Begrens antall subqueries per plan.

## Beslutningsveiledning

### Når bruke hvilken search type?

| Search Type | Kostnad | Kvalitet | Best For | Unngå Når |
|-------------|---------|----------|----------|-----------|
| **Keyword** | Lavest | God for eksakte match | FAQ, produkt-IDs, enkle fakta | Semantisk forståelse nødvendig |
| **Semantic** | Moderat (+15-25%) | Bedre relevans | Kontekstuelle spørsmål, lignende begreper | Budsjettbegrensninger, høy QPS |
| **Vector** | Moderat (embedding cost) | Beste semantic match | Cross-lingual, similarity search | Small datasets, keyword-baserte behov |
| **Hybrid** | Høy (embedding + compute) | Balansert presisjon og recall | Generelle RAG-applikasjoner | Budsjettkritiske scenarios |
| **Hybrid + Semantic** | Høyest | Best overall | Enterprise-kritiske applikasjoner | Høyvolum, lavbudsjett |

### Runtime Parameter Tuning for Cost Reduction

| Parameter | Default | Cost-Optimized | Quality-Optimized | Impact |
|-----------|---------|----------------|-------------------|--------|
| `topNDocuments` | 5 | 3 | 10 | Høy: Direkte token reduction |
| `strictness` | 3 | 4-5 | 1-2 | Moderat: Filtrerer chunks |
| `chunk_size` | 1024 | 512-768 | 1536 | Høy: Påvirker token/chunk |
| `inScope` | true | true | false | Moderat: Reduserer prompt complexity |
| `max_tokens` (response) | 800 | 400 | 1500 | Høy: Direkte output cost |

### Vanlige Feil

1. **Over-retrieval:** Hente 10+ dokumenter når 3 holder. **Fix:** Start med 3, øk kun hvis nødvendig.
2. **Semantic ranking always-on:** Bruke semantic ranking for alle queries. **Fix:** Enable kun for complex queries.
3. **Large chunk sizes:** Bruke 1536 tokens for enkle FAQ. **Fix:** Test 512 tokens for faktabaserte datasets.
4. **No caching:** Kjøre full RAG pipeline for identiske queries. **Fix:** Implementer Redis cache.
5. **Wrong model choice:** Bruke GPT-4 for alle queries. **Fix:** Route 80% til GPT-3.5-Turbo.
6. **Ignoring conversation history:** Sende full history i hver query. **Fix:** Truncate til siste 2-3 turns.

### Røde Flagg

- **Token explosion:** Queries som konsumerer >8000 tokens regelmessig.
- **Low cache hit rate:** <20% cache hits i FAQ/support scenarios.
- **High semantic ranking costs:** Semantic ranking brukt i >70% av queries.
- **Oversized search tier:** S3 tier for <1000 queries/dag.
- **No query monitoring:** Manglende Cost Management dashboards.

## Integrasjon med Microsoft-stakken

### Azure OpenAI On Your Data

**Verified (Microsoft Learn):** Azure OpenAI On Your Data er den native RAG-løsningen i Microsoft-stakken. Kostnadsoptimalisering krever forståelse av hele pipeline:

1. **Intent Generation (LLM call 1):**
   - Reformulerer user query til search intents.
   - Kan **elimineres** ved å bruke direct query-to-search mapping for enkle use cases.
   - Kostnadsreduksjon: ~20% ved å skippe intent generation for FAQ-bots.

2. **Retrieval (Azure AI Search):**
   - Keyword/vector/semantic/hybrid search.
   - Kostnad avhenger av tier, QPS, og search type.

3. **Response Generation (LLM call 2):**
   - Største token consumer (35-45% av total).
   - Optimaliser via chunk reduction og system message truncation.

### Azure AI Search Optimization

**Verified (Microsoft Learn):** Kostnadsoptimalisering for Azure AI Search:

- **Tier-riktig sizing:** Basic for POC/dev, S1 for produksjon, S2+ for enterprise. Ikke overprovisjon.
- **Partition optimization:** Øk partitions kun når index size krever det, ikke for QPS.
- **Replica optimization:** Øk replicas kun ved høy QPS eller HA-krav.
- **Autoscaling:** Implementer code for å scale up/down basert på workload patterns.
- **Region placement:** Velg region med høyere storage per partition (April/May 2024 upgrade).
- **Vector compression:** Bruk scalar quantization for å redusere vector storage med opptil 92.5%.

**Verified (Microsoft Learn):** Vector compression techniques i Azure AI Search kan kutte vector-kostnader med opptil 92.5% via scalar/binary quantization uten betydelig kvalitetstap.

### Azure Container Apps Load Balancing

**Verified (Microsoft Learn):** For å unngå throttling (429 errors) og quota limits:

- **Multi-region deployment:** Deploy Azure OpenAI resources i flere regioner.
- **Container Apps load balancer:** Bruk Azure Container Apps som load balancer foran multiple Azure OpenAI endpoints.
- **Retry logic:** Automatic retry til annen resource ved throttling.
- **TPM quota management:** Start med 30K TPM per instance, juster basert på behov.

**Arkitektur:**
```
User → Container App LB → [Azure OpenAI Region 1]
                        → [Azure OpenAI Region 2]
                        → [Azure OpenAI Region 3]
```

### Prompt Flow & Azure Machine Learning

**Verified (Microsoft Learn):** Azure ML Pipelines gir granular kontroll over RAG workflow:

- **Custom chunking strategies:** Implementer dokumentspesifikk chunking for bedre token efficiency.
- **Pipeline components:** Data chunking, embeddings generation, test data creation, evaluation.
- **Cost tracking:** Logg token usage per pipeline step for granular cost analysis.

### Copilot Studio Integration

**Verified (Microsoft Learn):** Deploy til Copilot Studio (preview) for multi-channel support:

- **Single deployment cost:** Deploy én gang, bruk i Teams, web, Dynamics 365.
- **Tenant-level caching:** Potensial for cross-user cache hits.
- **Built-in analytics:** Track query volume og cost per channel.

## Offentlig sektor (Norge)

### GDPR og Datasuverenitet

- **Data residency:** Velg Norway East/West regions for Azure AI Search og Azure OpenAI for å holde data innenfor EU/EØS.
- **Logging constraints:** Query logging for cost analysis må følge GDPR-krav for PII-data i queries.
- **Caching compliance:** Cached responses må følge samme retention policies som original data.

### Budsjettprosesser

- **Årlig budsjettcyklus:** Implementer cost forecasting basert på forventet query volume.
- **Cost allocation:** Tag resources per avdeling/prosjekt for intern budsjettallokering.
- **CapEx vs OpEx:** RAG query-kostnader er typisk OpEx (pay-as-you-go). Vurder reserved instances for forutsigbare workloads.

### Anskaffelsesprosesser

- **Ramme-avtaler:** Bruk statlige rammeavtaler for Azure-tjenester (SSA-avtaler).
- **Cost transparency:** Dokumenter kostnadsdrivere for å rettferdiggjøre AI-investeringer i politiske prosesser.
- **Vendor lock-in mitigation:** Design for portability mellom search providers (Azure AI Search, Elasticsearch, etc.).

## Kostnad og lisensiering

### Azure OpenAI Pricing (Estimated NOK)

**Baseline (Modellkunnskap):** Priser per 1M tokens (omregnet til NOK, februar 2026):

| Model | Input (NOK/1M tokens) | Output (NOK/1M tokens) | Best For |
|-------|----------------------|------------------------|----------|
| **gpt-35-turbo** | 5.5 | 17 | Høyvolum, cost-sensitive |
| **gpt-35-turbo-16k** | 33 | 44 | Moderate volumer, lenger context |
| **gpt-4-0613** | 330 | 660 | Kompleks reasoning, lav volum |
| **gpt-4-turbo** | 110 | 330 | Balansert cost/quality |
| **gpt-4o** | 55 | 165 | Multimodal (text only i On Your Data) |

### Embeddings Pricing

**Verified (Microsoft Learn):** text-embedding-ada-002 (kun supported model for On Your Data vector search):
- **Cost:** ~1.1 NOK per 1M tokens
- **Use case:** Vector search, semantic similarity
- **Optimization:** Cache embeddings for static documents, ikke regenerer.

### Azure AI Search Pricing Summary

**Verified (Microsoft Learn):**
- **Fixed cost:** Search tier (Basic: ~1200 NOK/mnd, S1: ~2800 NOK/mnd, S2: ~11200 NOK/mnd)
- **Variable cost:** Semantic ranking per query (progressiv pricing etter 1000 queries/mnd)
- **No query-based charges:** Ikke per-query kostnad for keyword/vector search utover tier-kostnad.

### Optimaliseringstips

1. **Model switching:** Bruk GPT-3.5-Turbo for 80% av queries, spare 70-80% på LLM-kostnader.
2. **Batch processing:** Hvis mulig, batch lignende queries for å redusere overhead.
3. **Reserved capacity:** Vurder reserved capacity for Azure OpenAI ved forutsigbare workloads (20-40% rabatt).
4. **Spot instances:** Ikke tilgjengelig for Azure OpenAI, men kan brukes for surrounding infrastructure.
5. **Data lifecycle:** Slett gamle indexes/caches for å redusere storage costs.

### Total Cost of Ownership (TCO) Eksempel

**Scenario:** 10 000 queries/måned, hybrid search, GPT-3.5-Turbo

| Komponent | Beregning | NOK/måned |
|-----------|-----------|-----------|
| Azure AI Search (S1) | 1 tier | 2 800 |
| LLM tokens (avg 5800/query) | 10K queries × 5800 tokens × 0.011 NOK/1K | 638 |
| Embeddings | 10K queries × 50 tokens × 0.0011 NOK/1K | 0.55 |
| Semantic ranking | 9K queries @ ~0.5 NOK/query | 4 500 |
| Storage (caching) | 50 GB @ 2 NOK/GB | 100 |
| **Total** | | **8 038** |

**Optimalisert scenario (samme kvalitet):**

| Endring | Besparelse |
|---------|------------|
| Caching (50% hit rate) | -4 269 NOK (50% av LLM + semantic) |
| Keyword search for 30% av queries | -1 350 NOK |
| Reduser topNDocuments til 3 | -191 NOK |
| **Ny total** | **2 228 NOK/måned** |
| **Besparelse** | **72%** |

## For arkitekten (Cosmo)

### Spørsmål å Stille Kunden

1. **Query volume:** "Hvor mange queries forventer dere per dag/måned i produksjon? Hva er peak vs. average?"
2. **Query complexity:** "Er spørsmålene typisk enkle fakta-oppslag, eller komplekse multi-hop reasoning?"
3. **Data characteristics:** "Hvor ofte endres datakilden? Kan vi cache aggressivt?"
4. **Quality requirements:** "Hva er akseptabel presisjon? Kan vi trade noe kvalitet for kostnad?"
5. **Budget constraints:** "Hva er månedsbudsjettet for RAG-kostnader? Er dette CapEx eller OpEx?"
6. **Compliance:** "Må data holdes i Norge/EU? Kan vi cache queries med PII?"
7. **SLA:** "Hva er akseptabel latency? Kan vi bruke async processing?"
8. **Monitoring:** "Har dere eksisterende Cost Management dashboards? Hvem eier budsjettet?"

### Fallgruver å Unngå

1. **Premature optimization:** Ikke optimaliser før du har baseline-metrics. Mål først, optimaliser deretter.
2. **Over-caching:** Caching av stale data kan gi feil svar. Sett riktig TTL basert på data freshness.
3. **Under-provisioned search:** Basic tier for produksjon fører til throttling og dårlig UX.
4. **Ignoring conversation history costs:** Lange samtaler kan eksplodere token usage. Truncate aggressivt.
5. **No cost attribution:** Manglende tagging gjør det umulig å spore kostnader per team/prosjekt.
6. **Wrong embedding model:** Bruk av andre embeddings enn text-embedding-ada-002 støttes ikke av On Your Data.
7. **Semantic ranking everywhere:** Bruk kun semantic ranking når keyword/vector search er utilstrekkelig.
8. **No monitoring:** Deploy uten Azure Monitor dashboards for cost/performance.

### Anbefalinger per Modenhetsnivå

**Nivå 1: Proof of Concept**
- Bruk Basic tier for Azure AI Search.
- GPT-3.5-Turbo for alle queries.
- Keyword search kun.
- Ingen caching (kompleksitet ikke verdt det).
- **Forventet kostnad:** 1 500-3 000 NOK/måned for <1000 queries.

**Nivå 2: Pilot/MVP**
- Oppgrader til S1 tier.
- Implementer enkel Redis cache for FAQ.
- Hybrid search for semantic queries.
- GPT-3.5-Turbo som default, GPT-4 for <10% komplekse queries.
- Azure Monitor dashboards.
- **Forventet kostnad:** 5 000-15 000 NOK/måned for 5K-20K queries.

**Nivå 3: Produksjon**
- S1/S2 tier basert på load testing.
- Semantic cache (embedding similarity).
- Tiered retrieval (keyword/vector/semantic based on query type).
- Model routing (GPT-3.5/GPT-4).
- Autoscaling for search replicas.
- Cost attribution per team.
- **Forventet kostnad:** 20 000-100 000 NOK/måned for 50K-500K queries.

**Nivå 4: Enterprise Scale**
- Multi-region deployment med load balancing.
- Advanced caching strategies (query rewriting, semantic cache).
- Agentic retrieval for komplekse scenarios.
- Reserved capacity for Azure OpenAI.
- Real-time cost anomaly detection.
- FinOps team ownership.
- **Forventet kostnad:** 100 000-1 000 000+ NOK/måned for millions of queries.

### Arkitekturmønster per Scenario

**Scenario A: FAQ Bot (høy repetisjon)**
- **Search:** Keyword only
- **Caching:** Aggressive (Redis, 80%+ hit rate)
- **Model:** GPT-3.5-Turbo
- **Cost reduction:** 60-80%

**Scenario B: Dokumentasjonssøk (moderat repetisjon)**
- **Search:** Hybrid (vector + keyword)
- **Caching:** Semantic cache (50% hit rate)
- **Model:** GPT-3.5-Turbo (90%), GPT-4 (10%)
- **Cost reduction:** 40-60%

**Scenario C: Kompleks analyse (lav repetisjon)**
- **Search:** Hybrid + Semantic
- **Caching:** Minimal (data freshness kritisk)
- **Model:** GPT-4 majority, GPT-4o for multimodal
- **Cost reduction:** 20-30% (via parameter tuning)

## Kilder og verifisering

### Microsoft Learn Sources

**Verified:**
1. [Plan and manage costs of an Azure AI Search service](https://learn.microsoft.com/en-us/azure/search/search-sku-manage-costs) - Comprehensive cost minimization strategies, tier pricing, indexing optimization.
2. [Azure OpenAI On Your Data - Token usage estimation](https://learn.microsoft.com/en-us/azure/foundry-classic/openai/concepts/use-your-data) - Exact token consumption per model, RAG pipeline breakdown, parameter impacts.
3. [RAG chunking phase - Understand chunking economics](https://learn.microsoft.com/en-us/azure/architecture/ai-ml/guide/rag/rag-chunking-phase) - Cache-Aside pattern, cost factors for chunking strategies.
4. [Agentic retrieval in Azure AI Search - Pricing example](https://learn.microsoft.com/en-us/azure/search/agentic-retrieval-overview) - Detailed cost calculation for agentic retrieval with subqueries.
5. [Tips for better performance in Azure AI Search](https://learn.microsoft.com/en-us/azure/search/search-performance-tips) - Query design optimization, search tier switching, cost-performance balance.
6. [Retrieval-augmented Generation (RAG) in Azure AI Search](https://learn.microsoft.com/en-us/azure/search/retrieval-augmented-generation-overview) - RAG challenges, solution patterns, security, performance optimization.
7. [Scale OpenAI chat with Azure Container Apps](https://learn.microsoft.com/en-us/azure/developer/python/get-started-app-chat-scaling-with-azure-container-apps) - Load balancing architecture, TPM quota management, throttling mitigation.

**Baseline (Modellkunnskap):**
- NOK pricing conversions (USD to NOK estimates)
- FinOps best practices for cloud cost optimization
- General RAG architecture patterns

### Konfidensnivå per Seksjon

| Seksjon | Konfidens | Kilde |
|---------|-----------|-------|
| Token consumption table | **Verified** | Microsoft Learn official data |
| Azure AI Search tier costs | **Baseline** | Converted from USD pricing |
| Semantic ranking costs | **Verified** | Microsoft Learn |
| RAG pipeline breakdown | **Verified** | Microsoft Learn |
| Caching patterns | **Verified** | Microsoft Learn (Cache-Aside) |
| Vector compression | **Verified** | Microsoft Learn (92.5% reduction) |
| Agentic retrieval costs | **Verified** | Microsoft Learn example calculation |
| Model routing patterns | **Baseline** | Industry best practices |
| FinOps recommendations | **Baseline** | General cloud FinOps |

---

**Oppdateringsfrekvens:** Dette dokumentet bør oppdateres kvartalsvis eller ved store endringer i Azure pricing/features.
