Back to overview

Ask it

RAG & chat with answers you can audit

Retrieval-augmented generation grounded in your content. Every answer streams back with inline citations to the exact source passage. Relevance gates, an optional groundedness check and a deterministic refusal cover the case where the answer isn't in your data.

  • Grounded answers with real citations

    Retrieval metadata flows end-to-end: every cited chunk carries its source, title, URL and score out to the UI as source chips, so a reader can click through to the passage the model used. It is provider-agnostic, because the citations come from your retrieval and not from a vendor's citation API.

  • Pluggable reranker

    Pick the reranker that fits your budget: an LLM reranker, a local cross-encoder or a managed service like Cohere. All of them sit behind a fail-open interface, so a reranker outage does not break search.

  • Relevance gate & honest refusal

    A configurable similarity floor drops weak matches. When nothing clears the bar, the chat short-circuits to a localized “this isn't covered here” answer without calling the LLM.

  • Optional groundedness check

    Turn on a post-generation faithfulness audit, and any answer the check can't support gets a low-confidence caveat appended.

  • Embedded vector store, streamed responses

    Use the built-in Lucene KNN vector store or your engine's own vectors, fused with keyword search via RRF. Answers stream token-by-token over SSE.

Stream a grounded, cited answer with the React SDK
import { useTuringChat } from "@viglet/turing-react-sdk";

function Assistant() {
  const { messages, send } = useTuringChat({ agent: "support" });
  // each assistant message carries .sources[] (the cited passages)
  return <ChatThread messages={messages} onSend={send} />;
}

Questions teams ask

Where do the citations come from?
From your own retrieval, not from a model vendor's citation feature. Each passage the answer used carries its source, title, URL and score to the UI, so citations work the same with every LLM provider.
What happens when the answer is not in my content?
If no passage clears the similarity floor, the chat answers that the topic is not covered here, in the visitor's language, without calling the LLM. A strict grounding mode keeps an agent from answering outside the retrieved content at all.
Can I do RAG without embeddings?
Yes, for structured content. In vectorless mode, a question is turned into filters over the fields you declared and answered with citations from the matching records, with no embeddings to compute or store.
Which rerankers can I use?
An LLM reranker, a local cross-encoder or Cohere's managed reranker. They sit behind a fail-open interface: if the reranker is down, results come back in retrieval order instead of failing.
Go deeperTuring vs a DIY LangChain RAG stackWhat you would otherwise build and run yourself, side by side with Algolia, Coveo and Elasticsearch.