Answer quality

Minaya is deliberately conservative: it would rather say it does not know than invent an answer. This page covers the guardrails and what to do when answers are wrong in either direction.

Grounding

The model is instructed to answer only from retrieved context, never to speculate, and never to infer that something exists because a related thing does. If a product or service is not named in your content, Minaya does not know about it.

Retrieval thresholds

Two checks decide whether a question counts as answerable:

  • Chunk floor — individual chunks below a similarity threshold are discarded.
  • Best-match floor — the single best chunk must clear a higher bar, or the question is treated as uncovered.

The second matters most. Without it, a pile of mediocre matches looks like evidence and invites the model to fill gaps.

Both are tunable per deployment:

RETRIEVAL_SIMILARITY_THRESHOLD=0.25
RETRIEVAL_TOP_MATCH_THRESHOLD=0.3

The useful range differs between embedding providers. OpenAI and Cloudflare score the same pair of texts differently, so tune against your own logs rather than copying values.

Tuning from logs

Every question logs what retrieval found:

Query: "do you ship to canada?" — 10 retrieved [0.593, 0.589, 0.586],
  10 above 0.25, best=0.593 (needs >= 0.3) → answering from context

If legitimate questions are being refused, look at the best= values for those questions and lower RETRIEVAL_TOP_MATCH_THRESHOLD just below where they cluster. If Minaya answers things it should not, raise it.

Suggested questions

Up to four one-click prompts, shown above the message box until the visitor asks something. Use the questions you answer most — they tell a visitor what Minaya is for, which is more useful than an empty box.

They disappear once the conversation starts, and a returning visitor with history never sees them.

These replaced topic keywords, which refused any message that did not contain a listed word. That blocked legitimate questions — “when will my order arrive?” contains no obvious keyword yet is clearly on-topic. Retrieval already declines off-topic questions: when nothing relevant is found, your fallback is returned.

The fallback message

Shown when a question is uncovered. Write it as a helpful redirect, and include a real contact route:

Sorry, I don't have information about that. You can reach our team
at support@example.com and they'll be glad to help.

Blunt fallbacks are softened automatically so the widget never reads as curt, but writing a warm one yourself is better.

Common problems

SymptomLikely cause
“I don't have that information” for content you know existsThe page was not crawled, or the content is client-rendered. Check the chunk count and see Crawling.
Answers are vague or genericRetrieval is matching weakly. Add a focused text source phrased the way visitors ask.
Refuses questions it should answerThresholds too high, or keywords too narrow.
Answers went stale after a site updateRe-crawl the source; chunks are not refreshed automatically.