RAG answers with source citations
Every answer Kelu generates includes links back to the exact source — policy page, runbook, wiki article, or ticket. Teams and customers verify, click through, and trust.
What powers every answer
A production-grade RAG stack you do not have to build yourself
RAG Pipeline
Each question is rewritten, then searched two ways at once: by meaning and by exact words.
- LLM query rewrite and expansion before retrieval
- Dense vector embeddings for semantic concept matching
- Full-text keyword search for exact technical terms
- Reciprocal rank fusion merges the two result lists
- Cross-encoder re-ranking puts the best passages first
- One question searches every source in the knowledge base
Answer Quality
Numbered markers link each part of the answer to the page it came from.
- Numbered [1], [2] citations that link to the source page
- Suggested starter questions and related articles
- Confidence scoring and low-confidence abstention
- Says it doesn't know instead of guessing
- Structured output for markdown, code, and tables
Conversational Memory
Follow-up questions are read together with what came before.
- Multi-turn conversation state across turns
- Pronoun resolution and contextual follow-up understanding
- The conversation stays across pages until the tab closes
One RAG pipeline, every channel
The same AI Chat engine powers your embeddable support widget, your Slack bot, your Teams integration, your employee portal, and your Chat API. Update a knowledge source and every channel reflects the change after the source’s next sync.
- Embeddable widget with full style override support
- React and JavaScript SDKs on npm
- POST /chat API for server-side or mobile callers
- Slack and Microsoft Teams bots with citation links
{
"query": "How do I rate-limit the API?",
"thread_id": "9b1f..."
}data: {"delta": "Use the X-RateLimit-* headers...", "done": false}
data: {
"done": true,
"thread_id": "9b1f...",
"citations": [
{
"index": 1,
"title": "Rate Limiting Guide",
"url": "https://docs.example.com/rate-limits",
"excerpt": "All API calls are subject to..."
}
]
}Answers that show where they came from
Answers come only from your content, and stream in on the widget and the chat API.
Numbered markers point to the source
Numbered [n] markers link each part of the answer to the page and section it came from.
Refuses to speculate
When the passages it found don't answer the question, Kelu says it doesn't know instead of guessing.
Optional PII masking
Switch it on to hide emails, phone numbers, card numbers and more in your content and in widget and API questions.
Got questions?
Frequently Asked Questions
Common questions about Kelu AI Chat
By default, Kelu answers with OpenAI models. The retrieval and reranking layer is model-agnostic. On any plan you can bring your own key for OpenAI, Anthropic, Google Gemini, Amazon Bedrock, an OpenAI-compatible vendor, or your own model server.
After retrieval, each source chunk is tracked with its URL and page title. The LLM is prompted to cite sources inline. The final stream frame includes a structured citations array with URL, title, and excerpt for each source used.
When your sources do not cover the question, Kelu says it cannot answer rather than hallucinating. A customization's guardrail instructions can tell it where to point users instead — typically a support channel.
Yes. The Chat API supports server-sent events (SSE) streaming. The widget uses streaming by default for a fast perceived response time.
Each thread_id maps to a conversation. Kelu sends the most recent turns to the model and drops older ones to stay within its limit. Conversations do not expire after inactivity.
Ship AI chat on your knowledge today
Connect a knowledge source and embed the widget in under 5 minutes.
Free to start · No credit card required