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.
| Ansvar | Hvem | Hvordan |
|---|---|---|
| Hvem brukeren er, og hvilken organisasjon | Clerk-sesjon → Revizo | Leses server-side i withTenant. Aldri fra brukerens tekst eller modellens svar. |
| Om AI får brukes | Revizo | Organisasjonens AI-innstillinger, kvoter og hastighetsgrenser sjekkes før modellen kalles. |
| Hvilke verktøy som finnes | Revizo | Fast katalog definert i kode. Modellen kan ikke legge til eller endre verktøy. |
| Hvilket verktøy som skal brukes, og med hvilke argumenter | Claude | Modellens oppgave. Argumentene er forslag. |
| Om verktøyet får kjøre, og på hvilke data | Revizo | Hver verktøyhåndterer får tenantId og userId fra sesjonen og filtrerer på dem. |
| Om noe sendes ut av organisasjonen | Brukeren | Bekreftelseskort 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
| Parameter | Verdi |
|---|---|
| Chat-modell | claude-sonnet-4-6 (Anthropic) |
| Maks verktøyrunder per forespørsel | 5 |
| Maks svarlengde | 1 024 tokens (2 048 ved rutinebeskrivelse) |
| Prompt-caching | Ephemeral, per forespørsel — ingen vedvarende cache hos leverandør |
| Embeddings | text-embedding-3-small (OpenAI), kun spørsmålstekst |
| Stemmemodus | gpt-realtime (OpenAI), WebRTC, kun når organisasjonen har aktivert tale |
| Hastighetsgrense | 10 forespørsler per minutt per bruker |
| Månedskvote | Konfigurerbar per organisasjon (tokens og antall chatter) |
| Tidsavbrudd | 60 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.
| Inngang | Modell | Verktøytilgang | Slås av med |
|---|---|---|---|
| Tekstchat (Smart Panel, AI-side, oppgavepanel) | Claude | Full katalog, filtrert på organisasjonens tilganger | AI-chat |
| Stemmemodus | OpenAI Realtime | Kuratert delmengde (klienter, oppgaver, påminnelser, navigasjon, Smart Match) | Stemmemodus |
| Dokumentanalyse (uttrekk av oppgavebeskrivelse fra vedlegg) | Claude | Ingen verktøy — kun tekst-til-HTML, sanitert server-side | AI-dokumentanalyse |
| MCP-server (eksterne agenter som Claude Desktop, Cursor) | Kundens egen agent | Egen verktøykatalog, autentisert med API-nøkkel opprettet av administrator | Slett 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