Skip to content
All work

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
Links
Live demoCode on request

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

  1. 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.
  2. 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.
  3. 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

EnglishBilling / refundPriority: HighUpsetconfidence 83%

Help articles found (hybrid search, top results)

  1. [1] Refund policy §2
  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

Next project

Atlas