cartwright
AI & Providers

AI & Providers — oversigt

Cartwright's AI-arkitektur — provider-agnostisk admin copilot, per-intent routing, og hvordan du flipper switch til lokal Gemma uden at miste én eneste sikkerhedsmekanisme.

Cartwright's admin har en fuld AI-copilot med 37 MCP-tools, confirmation-gates, audit-log og scope-enforcement — alt drevet af streamText fra Vercel AI SDK. Det eneste sted hvor modellen blev valgt var hardcoded til Claude.

I dag er Cartwright provider-agnostisk. Samme tools, samme audit-trail, samme confirmation-gates — med modellen valgt pr. use case.

Pitch i én sætning: Skift aiProvider = "local" i /admin/integrations og Cartwright's admin-copilot kører mod dit eget Ollama-endpoint — samme tool-registry, samme audit-trail, samme confirmation-gates, nul cloud-roundtrips.

De tre providers

ProviderHvornårHvad
Anthropic (Claude)Default · cloud-hostedBedste kvalitet, kræver API-key, betaler per token
Local (Ollama + Gemma)Self-hosted · privacy-firstGratis, kører på din egen maskine, ingen data forlader dit netværk
AutoBegge configuredPrefer local, fallback til Anthropic on-error

Per-intent routing

Cartwright router AI-kald baseret på intent:

IntentHvor det brugesProvider-valg
chatAdmin copilot (/admin/ai), customer AI-stylistFølger aiProvider-setting
generationLong-form generation (fremtidig)Følger aiProvider-setting
vibeTheme-generator, SEO-generators (structured output)ALTID Anthropic — invalid JSON breaker brand-setup

Det er ikke et hack — det er en bevidst beslutning. Local-modeller (Gemma 3) er gode til konversation og forklaringer, men ikke pålidelige nok endnu til structured output med 7-felt Zod-schemas. Når Gemma 5 lander og kan håndtere det, fjerner vi vibe-undtagelsen.

Same security model, different provider

Det her er det vigtigste princip i hele AI-laget:

  • Confirmation tokens — write-tools kræver server-issued bekræftelse, uanset om Claude eller Gemma kalder dem
  • Scope-enforcementinvokeTool() checker tools mod scope-listen før dispatch, identisk for begge providers
  • Audit-log — hvert tool-call skrives med provider + model + modality så DPO kan eftervise præcis hvilken AI der gjorde hvad
  • Tool-allowlist — local Gemma er capped til en subset af tools baseret på model-størrelse (4B → 10 read-only tools, 12B → +3 low-risk writes, 27B+ → alle 37)

Hvad du får ud af det

  1. Privacy as default, ikke premium feature — self-hosted free tier giver fuld lokal AI
  2. Cost-controlaiProvider = "local" = nul cloud-omkostning
  3. GDPR-værdi — audit-log bekræfter at data ikke har forladt EU/dit netværk
  4. Vej frem — capability matrix gør at nye modeller (Gemma 5, Llama 5, DeepSeek-X) er én fil at lægge ind

On this page