Gå til hovedinnhold

Teknisk arkitektur

Denne siden beskriver hvordan Revizo AI er satt sammen: hvilke komponenter som inngår, hvor grensene mellom tillitssoner går, og hvordan én chat-forespørsel beveger seg gjennom systemet. Den forutsetter kjennskap til Revizos generelle sikkerhetsarkitektur.


Designprinsipp: modellen er en adapter, ikke en autoritet​

Det viktigste å forstå er hvor beslutningene tas.

AnsvarHvemHvordan
Hvem brukeren er, og hvilken organisasjonClerk-sesjon → RevizoLeses server-side i withTenant. Aldri fra brukerens tekst eller modellens svar.
Om AI får brukesRevizoOrganisasjonens AI-innstillinger, kvoter og hastighetsgrenser sjekkes før modellen kalles.
Hvilke verktøy som finnesRevizoFast katalog definert i kode. Modellen kan ikke legge til eller endre verktøy.
Hvilket verktøy som skal brukes, og med hvilke argumenterClaudeModellens oppgave. Argumentene er forslag.
Om verktøyet får kjøre, og på hvilke dataRevizoHver verktøyhåndterer får tenantId og userId fra sesjonen og filtrerer på dem.
Om noe sendes ut av organisasjonenBrukerenBekreftelseskort i grensesnittet.

Konsekvensen: selv om modellen skulle bli manipulert til å foreslå et oppslag på en fremmed klient-ID, kjører oppslaget med den innloggede organisasjonens ID som filter og returnerer ingenting.


Komponenter og tillitssoner​

Sone 1 — Klient​

Nettleseren sender meldingen, siden brukeren står på, eventuelt aktivt selskap og åpen oppgave, og eventuelle skjermbilder (maks 4 per melding). Klienten har ingen egen tilgang til modellen; alt går via Revizos API.

Sone 2 — Identitet​

Clerk utsteder sesjonen. Revizo leser tenantId, userId og rolle fra den på serveren. Ingen av disse verdiene kan overstyres fra klienten.

Sone 3 — Kontrollplan​

Hele chat-endepunktet ligger i Revizos Next.js-applikasjon på Vercel (region fra1). Alle kontrollpunkter i figuren kjører her, i denne rekkefølgen, før og etter modellkallet. Se Sikkerhetskontroller for hver enkelt.

Sone 4 — Dataplan​

Postgres hos Supabase i Frankfurt. Alle oppslag verktøyene gjør, og all lagring av samtaler, minner og forbruk, skjer her med tenant_id som filter.

Sone 5 — AI-underdatabehandlere​

Anthropic mottar systemprompt, samtale, kontekst og verktøykatalog for én forespørsel, og returnerer tekst og/eller verktøyforslag. OpenAI mottar brukerens spørsmålstekst for vektorisering mot Revizos egen hjelpetekst; ingen regnskapsdata inngår i det kallet. Begge er i USA, under EU standardkontrakter, og bruker ikke API-data til modelltrening. Se Datatilgang.

Sone 6 — Utgående sideeffekter​

E-post til eksterne kontakter går via Resend, og bare etter at brukeren har bekreftet på et kort. Lovdata-oppslag er lesing av offentlig lovtekst.


Én forespørsel, steg for steg​


Modeller og parametre​

ParameterVerdi
Chat-modellclaude-sonnet-4-6 (Anthropic)
Maks verktøyrunder per forespørsel5
Maks svarlengde1 024 tokens (2 048 ved rutinebeskrivelse)
Prompt-cachingEphemeral, per forespørsel — ingen vedvarende cache hos leverandør
Embeddingstext-embedding-3-small (OpenAI), kun spørsmålstekst
Stemmemodusgpt-realtime (OpenAI), WebRTC, kun når organisasjonen har aktivert tale
Hastighetsgrense10 forespørsler per minutt per bruker
MånedskvoteKonfigurerbar per organisasjon (tokens og antall chatter)
Tidsavbrudd60 sekunder per forespørsel

Andre AI-innganger enn chat​

Chat er den mest brukte inngangen, men ikke den eneste. Alle går gjennom samme policy-sjekk og samme verktøykatalog.

InngangModellVerktøytilgangSlås av med
Tekstchat (Smart Panel, AI-side, oppgavepanel)ClaudeFull katalog, filtrert på organisasjonens tilgangerAI-chat
StemmemodusOpenAI RealtimeKuratert delmengde (klienter, oppgaver, påminnelser, navigasjon, Smart Match)Stemmemodus
Dokumentanalyse (uttrekk av oppgavebeskrivelse fra vedlegg)ClaudeIngen verktøy — kun tekst-til-HTML, sanitert server-sideAI-dokumentanalyse
MCP-server (eksterne agenter som Claude Desktop, Cursor)Kundens egen agentEgen verktøykatalog, autentisert med API-nøkkel opprettet av administratorSlett API-nøkkelen

MCP-serveren er dokumentert separat: MCP-server for AI-agenter.


Hva som ikke finnes​

For å unngå misforståelser i arkitekturgjennomganger:

  • Ingen direkte databasetilgang for modellen. Claude får aldri en tilkobling, en SQL-streng eller et ORM-objekt. Den får JSON-resultater fra navngitte verktøy.
  • Ingen egen AI-infrastruktur hos Revizo. Vi hoster ikke modeller selv. Modellkall går til Anthropic og OpenAI via deres API.
  • Ingen finjustering på kundedata. Modellene er leverandørens standardmodeller. Revizo trener eller finjusterer ikke på samtaler.
  • Ingen vedvarende tilstand hos leverandør. Prompt-cache er knyttet til den enkelte forespørselen. Samtalehistorikk lagres hos Revizo, i organisasjonens egen tenant, og sendes med på nytt ved hver melding.

Sist oppdatert: september 2026