Caching⚓︎
Oversikt⚓︎
QueryCacheService cacher LLM-analysesvar for å unngå gjentatte (dyre) LLM-kall for samme sak.
Arkitektur⚓︎
Cachen bruker to Azure Storage-tjenester:
| Komponent | Tjeneste | Formål |
|---|---|---|
| Metadata | Azure Table Storage (querycache) |
Tidsstempler, trefftelling, blob-referanse |
| Innhold | Azure Blob Storage (casecache) |
Selve analysesvaret (kan være stort) |
Hvorfor to tjenester?
Azure Table Storage har en feltgrense på 64 KB. Analysesvar fra LLM kan være langt større, så innholdet lagres i Blob Storage mens metadata (med referanse til blob) lagres i Table Storage.
Cache-nøkkel⚓︎
Nøkkelen er sammensatt av saksnummer og journalpostnummer:
| Text Only | |
|---|---|
Operasjoner⚓︎
Cache hit:
- Slå opp metadata i Table Storage
- Hent innhold fra Blob Storage
- Inkrementer
HitCount - Returner svar med metadata
Cache write:
- Last opp svar til Blob Storage (
{sanitized-key}.txt) - Opprett/oppdater metadata i Table Storage
Cache invalidering:
- Slett blob-innhold
- Slett metadata-rad
Feilhåndtering⚓︎
Cache-feil bryter aldri funksjonaliteten:
TryGetCachedResultAsyncreturnerernullved feil (cache miss)CacheResultAsynclogger feil men kaster ikke unntakInvalidateCacheForSakAsyncignorerer 404-feil (ingenting å invalidere)