Support AI
A multi-tenant support platform: AI classifies tickets from email and WhatsApp, finds the right help articles and drafts cited replies, and a human approves anything risky.
One-click demo logins on the login page: owner, manager or agent.
- Role
- Solo build: AI pipeline, backend, web app
- Year
- Mar 2026
- Stack
- Python, FastAPI, PostgreSQL + pgvector, Redis, Next.js, LiteLLM + NVIDIA NIM, Claude, Docker + Caddy

The problem
"Ticket in, GPT answer out" isn't safe for a real business. The AI can be wrong, leak one company's data to another and run up costs, and nobody can tell whether a prompt change helped.
How it works
What I built
- 01Tenant-aware hybrid RAG: 20 vector and 20 keyword candidates merged with RRF, re-ranked, the top 5 used, with validated citations and a semantic cache.
- 02A triage pipeline (language, spam, category, priority, sentiment) where code makes the final call with confidence thresholds. Cheap steps run on a small fast model, writing on a stronger one (Nemotron on NVIDIA NIM live; Claude Haiku and Sonnet also supported). Refunds need a manager's approval.
- 03Production plumbing: an outbox and idempotent workers, cost tracing per AI call, versioned prompts, an eval lab (F1, recall@5, MRR, faithfulness), replay, SLA escalation and signed webhooks.
Try it yourself
Write a message as a customer would, in English or Hinglish, or pick one. Watch what the AI decides, what it cites, and when a person has to say yes.
Or try
Triage · fast model
Help articles found (hybrid search, top results)
- [1] Refund policy §2
- [2] Damaged orders §1
Draft reply · writing model
Hi, sorry about this. Damaged items are refunded in full within 5 working days of the return pickup. [1] Share a photo of the damage; a replacement or refund is offered. [2] Your refund of ₹3,499 is being processed.
Waiting for a manager: refund ₹3,499 is over the ₹2,000 limit.
Runs in your browser with sample data. It follows the real product's rules; it isn't connected to it.
The result
Live at p2.kanav.space: a seeded demo company with one-click logins (owner, manager, agent), 29 web pages and JWT auth with five roles. In production on a VPS with Docker Compose behind Caddy (automatic HTTPS, per-IP rate limits), CI on GitHub Actions and a nightly demo reset. Real AI through a self-hosted LiteLLM gateway: Nemotron models on NVIDIA NIM first, Groq and Cloudflare Workers AI as automatic fallbacks; the Claude API is supported too. It reads customers' screenshots too: a vision model pulls the error codes and on-screen text into triage and the cited reply.
- backend tests passing
- 207
- backend tests passing
- web pages in the app
- 29
- web pages in the app
- roles, from owner to viewer
- 5
- roles, from owner to viewer