Components
Kair Voice is built from a web app, an API and five background workers. A condensed does / does-not view of every part lives in the repo atdocs/ONE_PAGER.md.
API
The Rust backend. Handles all HTTP requests, authentication, session management, and job dispatch. Runs on port 8000. All routes live under
/api.Web App
The SvelteKit frontend. Moderators and admins use this to manage sessions, view transcripts, and configure the system.
Transcription Worker
A background process that picks up audio jobs from the queue and produces transcripts. Can use a local Whisper model or the Foresight inference cluster.
Summarisation Worker
Produces a human-readable summary of the session using an LLM. Summaries are user-triggered, not automatic. The same worker also drains the summary-evaluation queue, scoring completed summaries for health.
HiRAG Worker
Indexes the transcript into a knowledge graph (Neo4j). Powers the “ask questions across sessions” feature.
Document Worker
Extracts text from uploaded documents, chunks it by page, summarises it, and hands it to HiRAG indexing. Documents are session-scoped or workspace-scoped (Content Library).
Moderator Agent Worker
Reads a rolling window of a live session’s transcript on an interval and surfaces divergence, convergence and discussion intensity to the moderator dashboard. Run a single replica.