Systemarkitektur⚓︎
Oversikt⚓︎
graph TB
Saksbehandler[Saksbehandler<br/>kai-app] --> Api[Kai API<br/>ASP.NET Core]
Api --> Db[(PostgreSQL<br/>saker, regelresultater)]
Api -->|sak-chat| Foundry[Azure AI Foundry]
Worker[Kai Worker<br/>TickerQ] --> Db
Worker --> Mimir[Mimir<br/>Databricks gold]
Worker --> Websak[WebSak API<br/>arkiv]
Worker --> CU[Azure Content Understanding<br/>dokumentekstraksjon]
Worker --> Regelmotor[Regelmotor<br/>deterministisk + hybrid + judgment]
Regelmotor --> Foundry
Regelmotor --> Db
Saksbehandleren møter Kai i webflaten. Alt tungt arbeid — oppdaging av nye saker,
henting og ekstraksjon av dokumenter, kjøring av regler — skjer asynkront i
workeren og lander som strukturerte Regelresultat-rader i Postgres. API-et leser
fra samme base, og serverer i tillegg sak-chat: POST /cases/{caseKey}/chat bygger
en systemprompt av sakens kontekst og strømmer svaret fra Azure AI Foundry.
Teknologier⚓︎
| Komponent | Teknologi |
|---|---|
| Runtime | .NET 10 |
| Arkitektur | Clean architecture (Domain → Application → Infrastructure → hosts) |
| Persistens | Azure Database for PostgreSQL (psql-kai-platform-{test,prod}), EF Core |
| Regelmotor | DB-forfattede regler og workflow, seedet fra YAML ved oppstart |
| Dokumentekstraksjon | Azure Content Understanding, versjonerte analyzer-definisjoner |
| LLM | Azure AI Foundry; deployment settes per host og miljø, ikke ett fast valg |
| Scheduling | TickerQ, Postgres-backet (TickerQ.EntityFrameworkCore) |
| Dokumentlagring | Azure Blob Storage |
| Saksdata | Databricks (Mimir), daglig replikasynk |
| Arkiv | Enova WebSak API |
| Frontend | React (apps/kai-app) |
| Orkestrering (lokal) | .NET Aspire |
| CI/CD | Azure DevOps Pipelines |
| Infrastruktur | Terraform |
Prosjekter⚓︎
Solution: Kai.slnx.
| Prosjekt | Ansvar |
|---|---|
Enova.Kai.Domain |
Entiteter, verdiobjekter, domenetjenester. Ingen infra-avhengigheter. |
Enova.Kai.Application |
Use-cases, porter, regel- og workflow-definisjoner under Rules/. |
Enova.Kai.Infrastructure |
Adaptere mot Azure og eksterne systemer, samt persistens og seeding. |
Enova.Kai.Api |
HTTP-vert for webflaten. |
Enova.Kai.Worker |
Bakgrunnsprosessering og planlagte jobber. |
Enova.Kai.AppHost |
Aspire-orkestrering for lokal kjøring. |
Enova.Kai.ServiceDefaults |
Delte Aspire-defaults. |
Arkitekturlag⚓︎
- Runtime-arkitektur — interaktivt diagram over hosts, state og oppstrøms. Les mer
- Regelkjøring — deterministiske regler, hybridregler og KI-vurderingsregler. Les mer
- Domenemodell — aggregater, eierskap av begreper og historien fra sak til beslutning. Les mer
- Bakgrunnsjobber — asynkron dokumenthenting, ekstraksjon og regelkjøring. Les mer
- CU-analyzere — versjonerte Content Understanding-definisjoner. Les mer
- Kildesystemer — Mimir, WebSak og hvordan data flyter inn. Les mer
- Observabilitet — logging, tracing og metrikker. Les mer
- Teststrategi — testnivåene og hva de dekker. Les mer
Historikk⚓︎
Kai v1 var en Teams-chatbot bygget på Microsoft Agents Framework. Den ble erstattet av regelmotoren og webflaten, og koden ble fjernet fra repoet 2026-09-02 (AB#21274). Hva som bevisst ikke ble videreført står i Ikke videreført fra v1.