Gå til innhold

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
PartitionKey: "CaseAnalysis"
RowKey: "{saksnummer}-{journalPostId}"  (skråstrek sanitert til bindestrek)

Operasjoner⚓︎

Cache hit:

  1. Slå opp metadata i Table Storage
  2. Hent innhold fra Blob Storage
  3. Inkrementer HitCount
  4. Returner svar med metadata

Cache write:

  1. Last opp svar til Blob Storage ({sanitized-key}.txt)
  2. Opprett/oppdater metadata i Table Storage

Cache invalidering:

  1. Slett blob-innhold
  2. Slett metadata-rad

Feilhåndtering⚓︎

Cache-feil bryter aldri funksjonaliteten:

  • TryGetCachedResultAsync returnerer null ved feil (cache miss)
  • CacheResultAsync logger feil men kaster ikke unntak
  • InvalidateCacheForSakAsync ignorerer 404-feil (ingenting å invalidere)