Skip to content

Support Assistant Widget

The Ask button on this site — and on packs.yantrikdb.com — is yantrikdb-assistant: a support widget that answers only from a mounted YantrikDB pack. Try it; ask it something the docs don’t cover and watch it decline instead of improvising.

Most documentation chatbots answer everything, because a retrieval system that always returns something always has something to answer from. This one refuses when nothing clears the pack’s own similarity floor — and the refusal happens before any model is called, so it costs nothing and a visitor cannot argue it into answering.

That one property makes the rest trustworthy, and it makes refusals the most useful thing the assistant produces: a refused question is a documentation gap, stated by a real visitor, without anyone filing anything. The admin panel turns those refusals into an authoring queue.

Sources stream before the first token: the visitor watches the answer being written out of records they can see — the honest ordering for a product whose claim is that the knowledge is in the pack, not the model.

The model itself is given no tools — it receives retrieved records as text and produces text. Nothing it outputs can execute anywhere.

Two files, no framework, no build step, scoped so it cannot collide with the host page’s styles:

One tag, with everything configurable as attributes:

<script src="https://yantrikdb.com/widget/widget.js"
data-endpoint="https://assistant.yoursite.com"
data-theme="auto"
data-accent="#f6a623"
data-title="Ask Acme"
data-suggestions="How do I install? | What does it cost?"
defer></script>

data-theme follows the visitor’s light/dark preference (or pins one); data-accent takes any CSS color — the text color on the accent is computed from luminance so a pale brand stays legible; copy, placement, radius and font are attributes too. Finer control is a CSS variable override on .ast, which never leaks into (or out of) the host page’s cascade.

The widget talks to a small server that mounts your pack and calls whatever chat endpoint you configure (Ollama or OpenAI-compatible — point it at a local model and visitor questions never leave your infrastructure). It records every turn — a refusal is a content gap whether or not anyone rates it — and ships an admin panel with the gap queue, full transcripts, ratings, and retention controls. No IPs, no cookies, no identity: question text is what improves a pack, and nothing else is collected.

The server package is headed to PyPI as yantrikdb-assistant. Until then, the widget you can take today is the one running on this page.