HelpBot
Multi-tenant RAG chatbot built from a business's own documents.
100% grounded 2026
Overview
A generic chatbot cannot tell a customer what your return policy is, because it has never read it. The businesses that most need support automation are the ones least able to build it: an online shop fielding the same questions on WhatsApp all day, with no budget for a 24-hour support desk.
Uploaded documents are split into chunks, embedded with Gemini, and stored as vectors in Postgres. A visitor question is embedded the same way, matched by cosine similarity against that one bot's chunks, and only those chunks reach the language model. The owner pastes a single script tag into their site. Because it is multi-tenant, the real work is isolation: row level security on every table, plus a separate server-only path for the public widget, since anonymous visitors have no Supabase session for RLS to act on.
Key features
Answers carry their sources
Every reply ships the document chunks it was built from, so an owner can confirm the bot is quoting their policy rather than improvising.
Refuses instead of inventing
When nothing similar enough is retrieved the bot says so without calling the model at all, which also stops an empty bot from burning quota.
Isolation enforced twice
RLS covers every table, and the public widget goes through a service-role client whose key never leaves the server and which filters on chatbot_id explicitly.
Grounding measured, not claimed
An eval script puts 14 questions through the real Supabase and Gemini pipeline and scores retrieval hit rate, faithfulness and refusal consistency.
Screens