server/docs/features/live_ai_assistent.md

1.8 KiB

Feature Spec: Live AI-Assistent i Studio

Filsti: docs/features/live_ai_assistent.md

1. Konsept

En "virtuell co-host" som lytter på innspillingen i sanntid. Når programlederne nevner spesifikke personer eller organisasjoner, slår systemet opp i Kunnskapsgrafen og dytter relevante "Faktoider" til skjermen deres umiddelbart.

2. Arkitektur & Dataflyt

Denne funksjonen krever lav forsinkelse og asynkron prosessering.

  1. Lydkilde (SvelteKit + LiveKit): SvelteKit-appen bruker livekit-client. I tillegg til å sende høykvalitetslyd til de andre deltakerne, rutes en komprimert lydstrøm (via WebSockets eller LiveKit sine egne server-side hooks) til en lokal Rust-tjeneste.
  2. Transkripsjon (Rust + Whisper): Rust-tjenesten mater lyden inn i faster-whisper (eller et tilsvarende raskt API) i små chunks. Den spytter ut en kontinuerlig tekststrøm.
  3. Entity Extraction & Oppslag (Rust + PostgreSQL): Rust-skriptet analyserer tekststrømmen for egennavn (Named Entity Recognition). Den gjør et lynraskt asynkront oppslag i PostgreSQL: SELECT * FROM factoids JOIN actors... WHERE actor.name = $1.
  4. Sanntids-Push (SpacetimeDB): Hvis et treff finnes, dytter Rust-skriptet faktoiden inn i SpacetimeDB som et event: LiveFactoidEvent.
  5. Visning (SvelteKit): Studio-grensesnittet lytter på SpacetimeDB. Når LiveFactoidEvent inntreffer, popper faktoiden lydløst opp i en egen boks på skjermen.

3. Utviklingsfaser (For Claude Code)

  • Fase 1: Ikke bygg live-lyd enda. Bygg funksjonaliteten der grensesnittet lytter på SpacetimeDB, og lag et dummy-script i Rust som dytter test-faktoider inn i SpacetimeDB for å verifisere UI-et.
  • Fase 2: Koble Whisper til et offline lydopptak og kjør NER/oppslag mot PostgreSQL.
  • Fase 3: Koble sammen LiveKit-strømmen og Whisper.