Gå til innhold

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.