The challenge
Text chatbots were being ignored on the client's customers' sites. The brief was an assistant that feels present — voice, a face, immediate responses — but never hallucinates about company policy, and can be re-skinned per enterprise without forking the code.
What we built
- RAG pipeline — Document ingestion, chunking and embedding into a vector index per tenant, with retrieval feeding a constrained generation step and source citations.
- Browser-based voice — Speech-to-text and text-to-speech in the browser with barge-in, so a user can interrupt the assistant naturally.
- 3D character in Three.js — A rendered character with idle, listening and speaking states synchronised to audio, running at frame rate on ordinary laptops.
- Multi-tenant enterprise deployment — Per-enterprise knowledge bases, branding and behaviour from one Angular + Node codebase; embeddable as a widget.
How we worked
Prototype the voice loop and character first — the risky part — then harden retrieval quality with a question bank per tenant before any enterprise went live.
Outcome
An assistant that runs 24/7 on customer sites and gets used, with answers traceable to source documents. Live demo available.

